In a few of the previous articles, I made a reference to a robot that I found in my garage. Although I'm not done with that work, I did want to start talking about it, because I already have a lot of things to report.
Finding an old robot
When I was originally building this site, I was thinking about whether I had any existing robots that I could use to start experimenting with robotics before I decided to buy something a bit more expensive. One thing I remembered while doing research was that around four or five years ago, I had bought something called Vector from the company Anki.
At the time, it was a little bit fun, but frankly, I got bored of it. I bought it for my son, and we played with it a little bit, but I would say after a few hours we got bored with it and put it back in the box, and we forgot about it for a long time. But I did have some good memories of it because Vector is a cute robot, so when I was looking at robots, it just popped up in my mind.
So I decided to go to the garage and take a look around, and after searching for about an hour or two, I actually found the box. I wasn't too sure that it was actually going to work, but I plugged it in, and lo and behold, it turned on.
I was able to get it working pretty quickly, although the first thing I did was, of course, ask Claude, "What can I do with this robot?" That's basically how I've been doing all my robotics lately, because it's a lot faster, especially for prototyping. It turns out that there's a way to set Vector up using something called wire-pod, where you can have free control over much of the robot.
What Vector looks like
But before I talk about that, I want to give a few more details about this robot, in case you haven't seen it before. It's tiny and almost looks like a little truck, kind of a cube shape, and there's a lift on the front, like a forklift would use to lift something up. It has a square screen. I think there are different colors, but the one I have is pure black, and the screen is dark with green eyes. It's kind of expressive. Vector darts his eyes around and makes little expressions. It has two treads, sort of like a little tank. It's also very small and fits easily in the palm of your hand. I think it was originally made for desk use, in other words something you put on your desk that moves around.
The forklift works together with a cube. One came with it, and I think you might be able to buy others and play even more with it. It can lift the cube up and put it back down, but honestly that was one of the things that was not very fun to play with. It couldn't do much in terms of advanced games or anything, so I wasn't really motivated to use the cube again, and I left it in the box.
Sensors and hardware
After a little bit of research and experimentation, I realized that Vector actually has a lot inside of it in terms of sensors and other hardware. Obviously it can move using the two treads, but it also has a camera with a wide-angle lens.
In addition, it has something called ToF, which stands for time of flight. It's a sensor that works a bit like how bats use sonar to sense how far away something is. It's pretty simple, but it does give a feel for how far away an object is right in front. I think it only goes to about a meter, but it can tell you that even when it's dark.
It also has cliff sensors. I'm not sure how many there are, but they're used to make sure it doesn't fall off the table. I've seen those usually work, although I did have it fall once when I first started using it again the other day.
Vector also has a speaker, and makes these cute sounds even when it's sitting there charging. It even has a voice, which I think is generated on board. And it has a touch sensor, which is used for when you pet it, although I'm not really using that in my experiments.
CPU-wise, I think it's pretty good, at least given the cost, which was around $200 or $300 back then. It has a Qualcomm Snapdragon quad-core, which I guess is relatively beefy, and you can do some logic on there. It's not going to run advanced vision algorithms, and it's not going to run ROS, the Robot Operating System set of tools, but it will do some pretty cool stuff. So Vector really has a lot in a small package, and believe it or not they actually still sell it. There's a long history with what happened to that company, though I'm not going to go into that now.
Taking control with wire-pod
The good news is it looks like somebody, probably a third party, made something that lets you control it dynamically via wireless. It's called "wire-pod". I asked Claude to help me configure it, and within an hour, Claude had it set up so I could send commands to it. I'm still using the OS that was on it, so there are limitations.
Oh, and I forgot to mention, there are four microphones, which can be used to tell the direction of a sound, at least by the built-in logic. Unfortunately, it looks like you can't use those with the existing OS.
Nevertheless, you can access the camera, and of course you can make it move. You can make it speak, and you can even drop in your own sound files and make it speak in any kind of voice. The onboard voice is okay, kind of a cute, robotic-sounding voice. So the hardware is actually surprisingly powerful.
There are some basic things it lacks, for example lidar, which is used for mapping. And the CPU is nothing super advanced like a Jetson or one of the later Raspberry Pis, but it's beefy enough to at least communicate with your machine and communicate with all the sensors.
In my case, I'm using Claude on a MacBook Air, which is actually pretty beefy. It has a good amount of memory and a nice GPU. It's obviously not an NVIDIA, but the built-in GPU is powerful. So I'm able to use that in combination with Claude to run some advanced vision models. One thing I just started working on today is using photographs to derive guesses at depth, and using that to figure out where Vector is in my house.
Mapping the room
At this point, I'm not doing anything very specific in terms of goals. I have a few things in mind, but the main thing is experimenting with mapping the room and being able to navigate. I've been trying a few different things, some ideas I had myself and some that Claude gave me. The idea I mentioned about getting depth from pictures is something I found when I was doing research about robotics.
So far, I would say it's been mixed results. I've mapped out maybe 70 or 80% of the room I'm in, which is technically a bedroom, though I use it more as a den or workroom. It's able to get around, and it's able to find its charger.
That's another thing that's great about Vector, by the way, compared to many other robots. It has a charger, and it's able to charge itself, within limitations. If it's close enough, some basic logic built into the OS kicks in to find the charger, go back and charge itself. It works pretty well, and that makes iteration much faster and easier, since I don't have to keep charging it manually.
There are problems once in a while where something crashes, or for whatever reason I have to restart it manually, or it gets stuck and I have to pick it up and put it back. That's not a big deal. It's light, so it's not a big inconvenience. For the most part, it's a pretty convenient platform for experimenting. Like I said, there's no lidar, so it's difficult to do really good mapping, at least so far, but I'm going to keep experimenting.
Cords, dark rooms and false alarms
One thing I've run into is that it once got stuck on a cord, a power cord going to my air filter, and it got propped up at an angle. It's able to tell when it's tilted (I think it has a sensor inside), and sometimes it can use its forklift to tip back over and right itself. That worked part of the time, but there were at least one or two times when it couldn't, and it was essentially stuck. I set it up so it'll say "Please help me" or "I'm stuck," which is kind of cute.
Another thing I added is for when the lights are off. It needs a certain amount of light, and it can tell from the camera, so it'll say "Please turn on the light," which is kind of neat. That's actually happened to me a few times when I forgot to leave the light on.
Because of the cord problem, Claude and I added some logic to try to stay away from cords, which is a good idea, but of course there are problems with that, because sometimes it has false positives. For example, if it's moving near a closed door, there's a dark area at the bottom, and I've seen it misdetect that as a cord several times because visually it's similar.
Working with Claude
It runs about 15 to 20 minutes on the battery, which is not great, but it's good enough, and since it can charge itself, I'm able to iterate back and forth. Claude is pretty good at finding things that are broken, giving at least mediocre suggestions to improve, trying them, and going out for another run after charging is done. So within a day, if I'm at home on a weekend, I could do maybe 15 or 20 runs, which is pretty good.
Then I read all the results that Claude gives me and give feedback and ideas, like what about this or what about that. That really helps make progress. Claude's great, but it's not yet smart enough, at least the model I'm using right now, which is mostly Opus, to figure everything out itself. But I'm able to give feedback, and that definitely seems to help.
Although I'm not a roboticist per se, I do have some historical experience, and I've played with these sorts of algorithms here and there over time. So I have some ideas that I'm feeding back in, and I'm also researching modern robotics at the same time, using that knowledge to inform my decisions and the ideas I give to Claude. So it's been pretty good so far.
At this point, it's still not able to effectively move around my house, which is one of my goals, and learning to map the room was a little slower than I expected. That's why I'm going to try some other ideas.
Long-term plans
I do have some long-term plans. One of them, for example, is to search for lost items. Let's say I lost an earring, a pencil, a sock or whatever. In theory, I think it should be able to go around the house, find that object and report back, which is a pretty interesting use case. I don't know if it's actually going to be helpful, but in theory I could see it doing that, at least for things sitting on the floor with a recognizable shape.
I'm using some software libraries for this. One of them is called YOLO, and there's YOLO-World, which is a variation of it. They look at images and determine what sort of objects are inside them, like image recognition. It's pretty advanced technology, and I don't think you'd run it on Vector itself, but I'm able to run it on my Mac. Claude is smart enough to configure that, link it up and iterate on it. So I'm able to use it to help with mapping, and in theory, to help with finding objects in my room or my house.
One of the other things motivating me to get back to robotics recently is my cat. I feel bad sometimes, since we're all busy and can't always play with him. So I want to program the robot to follow my cat, Roland, around the house and play with him. Vector can talk, make sounds, move his lift up and down and make faces. There's a lot Vector can do, and even though his movement isn't that fast, I think in theory he could be a pretty good playmate for Roland. That's one of my longer-term goals.
To do that effectively, I would need to program Vector so that he goes around my house and into different rooms. Maybe even if a door is closed, he could make a sound to get it opened, or even knock on the door. Roland does that himself in his own way, by meowing.
None of these are going to be super useful to me, in the sense of "Wow, it found a long-lost item for me." But I think they're cool because they are real-world use cases, and they're actually difficult to implement. That's what makes them satisfying to work on.
A robot with a lot inside
The amazing thing is that I found this robot in my garage (a robot that I had gotten bored of years ago), yet it ended up having an amazing amount of stuff on board, and it's so easy to plug into Claude and experiment using prompts. It's not perfect and makes a lot of mistakes, but it does iterate and communicate really well.
I'm also starting to make, through Claude, a Vector-controlling website that runs locally. It shows the status, the pictures it took, the map it's made so far and all this other data, and it lets you send actions to it.
I don't know how long this experimentation is going to take, but I do have some tentative plans to eventually release this stuff, probably open source on GitHub, maybe in a few weeks or months. We'll see how far I can get, because my goal is that when I release it, nobody will need Claude. Claude is a good helper, but ultimately I have the code, and the code should run on its own without AI. So I'm hoping to get it to map rooms in anybody's house, and then maybe find objects, follow a cat or whatever.
Anyway, those are some thoughts and a status update on what I've been doing so far with Vector. I hope to post an update again in a few weeks. Thanks for reading!