Hooray robots!

A number of people have asked me about building the robot sketched in yesterday’s strip. You’re definitely welcome to, and I’d love to see the results.

There are a couple engineering details that might trip you up. Rotating the webcam is one of them — I don’t make this explicit, but the idea in the blueprint was that there would be a servo inside the robot rotating the retaining magnets, which could be powered off the main battery. In practice, it might be better to put the servo on the outside and power it off the webcam battery — or, if you can find one cheap, simply use an omnidirectional camera.

The reason this is necessary is that I don’t think the internal robot, which is holding the webcam, will spin easily on hard surfaces. This is also the reason the robot uses Mechanum wheels instead of a simpler and cheaper design with a powered wheel on each side and castors or bearings on the front and back. If anyone has any ideas for making the robot spin more easily, I’d love to see them. Or perhaps you can try building the simpler design and see how quickly and reliably it can turn. If it works, it eliminates about half the cost of the project.

If anyone sends in any interesting material on this, I’ll be happy to put it up on a wiki somewhere so other people can tweak the design and develop a how-to. As far as I know, no one has built a robot quite like the one in the comic, so it’d be a great project.

Possible additional feature: cover the robot with little flaps or ridges, add some tweaks to protect the camera, and it becomes amphibious.

Edit: I’ve covered a few additional questions, including why the camera isn’t inside the ball, in this comment.

260 thoughts on “Hooray robots!

  1. Well I am intrigued. Quite a few days late for the think tank, but I might get my friends to help me build this.(we need a summer project anyways)

    The only thing I would change about the design is I might counter balance the camera with some arms reaching down the sides of the ball. It seems like the most sound thing to do, design wise.

    Like

  2. I still think that putting the camera inside is more feasible. Since if you’re planning to have the hamster ball indoors, I do not believe that it will get any noticeable amount of sticky blobs on it to seriously impede the camera. I also do not think that it will get badly scratched that quickly either, provided if you use a hard plastic. In the case that it does get dirty/scratched, just clean/polish it.
    I’m also not very optimistic about having it maneuvering over rugged terrain/ water. A spherical robot should be left to roll around on the carpet in a living room.

    Like

  3. I just wanted to let you know that I turn your comics into paper lanterns and hang them from strings stretching across just below my ceiling. Thank you for giving me something worthy enough to cut with scissors and look at every day.

    Like

  4. what if the ball were partially filled with a near-total vacuum, and its structural and mechanical components weighed, say, half that of than equivalent volume of air? throw in some air/ballast tanks, compressors, and a mess of air jets in addition to several of those gyroscopic thingies…

    than it could get places a hamster, guinea pig or ferret couldn’t, and you’d have a good reason for putting it in a sphere.

    Like

  5. I was looking at the design for the wheels, and either I’m not understanding the capabilities of those types of wheels or I’m correct in assuming that they’re in the wrong place for it to be able to move correctly…

    instead of having them at a lower point in the sphere, instead move them up to the equator of the sphere. That way when it rolls forward or back, there won’t be any massive friction on the left/right wheels. doing this also opens up the lower region to be used for weights to keep the computer and camera right side up.

    now I’m a dummy, and you’ve probably already thought about this but, I thought I’d put that out there as an idea…

    Like

  6. if you kept the four wheels at the bottom, it could move in all directions in 2 dimensions, but not turn. if you added one or two more wheels at the equator of the sphere, wouldn’t that spin the sphere? also, as several people have suggested, why not make a set of arms to keep the webcam on?

    Like

  7. Looking for a practical (ie. cheap) way to do something like this, using the guts of an RF car work for control instead of a (expensive) EEE comp.
    Would the idea of attaching two halves of the ball as wheels be functional or would it just spin the centre block instead of the halves/wheels?

    Like

  8. I am in the process of putting something together… I have the advantage of working at a school with a snazzy injection molding press, so I blew out a 12.5″dia. Ball that bayonet-locks together, in a scratch-resistant thermoplastic. I’m not at the stage of having a camera or anything (though I did find a neat bluetooth, battery powered webcam, though the resolution is very low). I am using a small Parallax Javelin processor and two servos currently. The drive uses a low center of mass to pull two small rubber wheels into contact with the ball. They are at 180′ to each other, on a 60′ pitch to the ball and a urethane cupped ball bearing front and back to keep it centered.

    Maybe I’ll get some time this weekend to slap it all together and take some video / pictures.

    Like

  9. … In addition, this thermoplastic I am working with is very hard, and scratch resistant. I have six sample materials set up that I am testing coatings on (standard DuPont Teflon derivatives) that shed debris like dust and even enamel paint, which might offer an acceptable solution for mounting the webcam inside the ball? Cognex has some machine vision software I am experimenting with. (my background is Industrial Automation, so I’m using technology I’m familiar with)

    Like

  10. Have you considered combining this with the simple GPS script you wrote? Even without the integrated webcam, there’s just something about walking around with a robot following you and giving you directions that’s very interesting?

    Like

  11. Rolling robots! I’m a big fan. I built one with a friend a few years ago. You can check out the deets here:

    http://www.circuitcellar.com/archives/viewable/Bingham200/index.html

    Kevin<-It’s very cool that you’re working on making spherical shells. At the time I was too lazy to make my own plastic shell. And they’re difficult to find (hamster spheres didn’t seem to cut it). Just a word of caution about using fluoro-polymer coatings though, they tend to become electro-statically charged, and I wasn’t aware of optically clear teflon?

    Best of luck to all!

    Like

  12. I realize that quite a few people have addressed the wheels and I know this post is a bit (really) late, but instead of four mecanum or four omni wheels, I’m fairly certain that with the proper arrangement, full rotation and translation can be achieved with only three omni wheels, as featured in a display for the new FIRST controller system at the championships in Atlanta.

    Like

  13. First, I’m no mechanical engineer. I can’t make or code these things. However, there are a few problems I could probably address.

    First, mount the camera inside the ball as close to vertical equator as possible. The curve there is no easier to look through than at any other point in the sphere, but it solves a few little quirks, like odd angles in viewing, and where to put the camera so that it doesn’t interfere with the motion.

    Second, the important thing is the machine itself. the ball is just a casing and can be replaced when necessary. Keep a few on hand, and just swap them out when the video is no longer clean enough to be any fun. Don’t overcomplicate a simple thing, m’friends.

    Now, this solves a couple of primary problems, let’s fix a secondary. The camera mounting is stable and secure, though being fixed to the machine will give it more bounce. How do we fix this, you ask? We handle it the same way we would cars, the same way we would cd lense machinery. Put it on a shock absorber. Heck, egg crate foam would serve as a stop-gap for this purpose.

    Good luck.

    Like

  14. If anybody revisits this thread so long after its heyday, I would suggest air bearings for the camera on top the sphere. Mount the camera on a yarmulke-shaped hovercraft that fits on the top of the sphere like a yarmulke. Use a magnetic coupling, such as those used to stir things in chemistry labs, to turn a fan, supplying air to the hover plenum. There would still be a need for magnets to prevent the whole thing from sliding gracefully off the top of the sphere, but at least grime would not be an issue, as there aren’t ball bearings. With an appropriate border fringe/skirt, rough sphere surfaces could be compatible.

    Like

  15. Mecanums? why not just omni-directional wheels? with the set up in the comic, the robot would move at a weird angle. 45 degrees the the x-axis as drawn. with using omnis, coding would be so easy as compared to mecanums. and like you said, price drop. I focus on drive systems in robotics. the only downside to omni’s as opposed to mecanums would be drift. if something were to bump it, it would tend to drift on certain axis.

    Like

  16. Perhaps a great plastic ball with some textured rubber stops for extra friction, and a round “cap”, if you will, which has a omni-directional mechanical ball, much like one of those things in a mouse pointer. The whole thing would be balanced by a gyroscope (don’t ask me how), and the camera would be up top. The command center would be inside, remote control optional. And this brings up the issue of cooling… it probably couldn’t run for very long periods… but I’m sure it would be only a few short steps to make it amphibious.

    Like

  17. have no desire to build a rolling robot, so I’m not sure I should
    comment. I also have no image-processing experience.
    I think keeping the camera outside the ball will introduce more
    problems than it solves. It may be worth it if it looks “cute.” From
    the drawing in the cartoon, I don’t think the camera on top looks
    very “cute” at all.
    I think it would be interesting if the electronic “hamster” could
    move around without the ball as well. (the design depicted relies on
    the ball)
    Suggestions for mitigating the imperfect ball problem:

    1. several “dumb” sensors. They will encounter the same problems as
    the camera. They should be cheaper, and can be made into a crude
    omni-directional camera. You can even point some at the floor to
    watch for tape (or any contrasting) lines indicating stairs or other
    rooms.
    2. High contrast: ignore all the “grey”. Dark scuff marks may cause
    extra trouble, however.
    3. Lenses. Blur out the ball by making your bot far-sighted.

    PS: I don’t know if this Blag is moderated, or just doesn’t like my
    browser.
    Edit: Ironicly, the captcha does not show up in my graphical
    browser. *shrug*

    Like

  18. To resolve the spinning issue, you could set up a motor inside the ball with its axis aligned vertically, attached to a small flywheel. Conservation of momentum should allow you to rotate the robot by spinning the flywheel. The precision of your turning should be about as good as the precision of your motor, which is generally terrible. But boy would it look cool.

    Like

  19. The thing I find disheartening in the comments is that we seem to move away from the concept of a mostly-sealed and thus mostly-indestructible robot. For example, looking at this, amongst my first thoughts about the uses of this bot was: “I could punt this down a manhole, expect it to survive, and have it carry out diagnostics”. However, the further we move from a sealed system, the more impractical such an idea becomes, and indeed the webcam itself is a massive liability.

    Like

  20. Ditch the webcam and go for sensors that read non-visual input. As humans, we focus too much on seeing. Hamsters navigate by smell, which is why it doesn’t matter to them how scratched the hamster ball gets. How about sonar, instead of a camera? It can read much more sensitive data.

    Like

  21. Re: Steve Baker: As an example, this drive mechanism is used in the Tyco Terrain Twister.

    http://www.rcmania.com/reviews/tyco-terrain-twister/index.php

    Re: Jason: I think you have a good idea with the NASA robots.
    According to PopSci Sept. 08, page 28, they are inflatable with photovoltaic shells and fit into compartments on the new rover, Mars Research Laboratory. These also have cameras that pop out of the axle to get a look outside.
    According to Wikipedia, however, the rover is called Mars Science Laboratory and there is no mention of the scouts.
    EDIT: I believe this is similar to what Matthew Ellis links above.

    Re: Kannon:
    >Also, because my electric motor knowlege is a bit rusty, is there a motor that
    >you could easily use in a system that the shells could rotate easily with the
    >motor unpowered, and use the motor to either add speed, or as a brake?
    You can use a standard DC motor with an H-bridge for this. http://en.wikipedia.org/wiki/H-bridge

    My ideas:
    1. Take a sphere with vents in it, covered in spikes in an even pattern. Put the guts inside here. Take a sphere of elastic material and put it over the spikes. Then add another organ to the machine, an air compressor and tank—lungs if you will. This reduces the air pressure inside the spheres and causes the elastic sphere to mold over the spikes to provide traction underwater or to climb over small thresholds. Contrary to common sense (mine at least), I don’t think this would decrease buoyancy. The average density inside should remain the same unless the outer sphere contracts significantly.

    2. Take the two-balls idea, with the mecanum platform. Make both opaque white in the visible spectrum, but transparent to IR so the camera can see out from inside the head. Put bright multicolored LEDs inside the body so that when the head gets knocked off, it can say, “Help! I’ve lost my head!” or similar and the LEDs can light up to show where the head should be put. The arm inside could be articulated or just telescoping and semicircular to move the head forward and back. One could also drill recesses all over the main ball and put light gray furniture-feet in them to get a better grip, but this could interfere with the LEDs.

    Like

  22. I think the ultimate cool for the camera on top is the hovering on air approach. importantly no magnets would be needed if the batteries running the fan levitating the camera at the top are held about 135o around the sphere with enough of them to allow the center of gravity to be somewhere below the middle of the ball, meaning any ‘slipping’ forwards, backwards or to the side would be corrected by the motion of the center of mass.
    Best of all these arms can include ‘touch’ sensors allowing the ball to know if it touches a wall.

    The rotation of the ball would have a near 0 effect, so only momentum of the motion will be a problem… That and how to make the arms removable so the main sphere can be opened.

    BTW in my experience laptops can survive quite well and keep cool as long as their energy consumption remains low, so the ball should keep cool quite a while, just don’t leave it in the sun.

    As for the stairs problem you aren’t being creative enough… build a ball elevator controlled from the ‘primary console’ or server, when the ball wants to go up, roll into the special prongs, up it goes and it’s released again!

    Just avoid rolling DOWN the stairs.

    Like

  23. While I’d normally check to see if this had been suggested, this page is way too long for that. I’m far from an expert, considering I know next to nothing about this, but it seems to me that the turning problem, at least, could be solved by keeping the “front” and “back” wheels as are, and instead rotating the side wheels 90 degrees, such that they’re perpendicular to the front wheels with reference to the y-axis.

    As for the camera, I have a completely different idea. Unless it’s going to be used for photography, the robot doesn’t need an image, it can use a wireframe representation of the world. If we use sonic imaging, we could put the sensor inside the shell. Naturally, the shell would still interfere, but sound waves would still get though, and the interference caused by the ball is predictable and can be compensated for in the program, provided we run and implement the acoustic models properly.

    On the other hand, I have no idea what I’m talking about.

    Like

  24. Crap. If i’d just hit page up ONE time, I’d’ve been able to see that Melanthios beat me there.

    Like

  25. I don’t know what it is, but the real answer couldn’t possibly be as interesting as this discussion.

    Like

  26. Pingback: Hooray robots xkcd | Outdoor Ceiling Fans

  27. Just turn all the wheels parallel so that two inline wheels are the propulsion and that the two wheels to the side are the turning mechanism. otherwise the robot would only have a 180 degree range of forward or backward propulsion, this would negate the webcam/rangefinder (much cheaper) since it would only be looking forward.

    Like

  28. I am currently working on a project much like this for my cs498 class at U of Illinois. I had not read this xkcd until today, but instead came up with the idea by watching my two pet mice run around in hamster balls and teach themselves how to get over obstacles such as bumps in the floor and passing movable objects obstructing the main path. The brain of the bot is an Android G1, it has two motors, one trailing omniwheel from rotacaster, and only one sensor, the tilt sensor on the G1. Right now we’re working on building a map which is drawn on the G1 screen as it is made (the bot hits a wall and runs up the hamster ball, activating the tilt sensor). After we get good map drawing, we’ll start working on problem solving though self-teaching (as my mice did to solve bump problems and movable object problems). The hardest part so far has been finding a clear, smooth, hollow 12″ ball. if anyone has good ideas for getting a good ball, reply to this post or email me at snugbar@gmail.com

    Like

  29. What about a modified camera that has a fisheye lens? That removes the ‘turn the camera’ problem.

    Like

  30. One of the more impressive blogs I have seen. Thanks so much for keeping the internet classy for a change. You have got style, class, bravado. I mean it. Please keep it up because without the internet is definitely lacking in intelligence.

    Like

  31. Couldn’t you just mount the camera inside the ball (assuming the plastic is clear enough)?

    Like

  32. Heres a thought, why dont you all get together and submit a robot into robot wars,:) i reckon if everyone pulled together we could take out the house robots ;)

    John.

    Like

  33. As long as a dress is done this but overall modelling, summer relaxed and beauty are favorite! In this summer, the pure color dress high v lens, simply cutting, can show different style, show your Sale Supra Skytop Shoes charm of graceful figure curve. The popular pure color, the colour of sweet dress and elegant style, show beauties the temperament, let you in this summer blossoms grace. Nike Dunk sb low

    Like

  34. If anyone has any ideas for making the robot spin more easily, I’d love to see them. Or perhaps you can try building the simpler design and see how quickly and reliably it can turn….

    Like

  35. The brain of the bot is an Android G1, it has two motors, one trailing omniwheel from rotacaster, and only one sensor, the tilt sensor on the G1. Right now we’re working on building a map which is drawn on the G1 screen as it is made (the bot hits a wall and runs up the hamster ball, activating the tilt sensor). After we get good map drawing, we’ll start working on problem solving though self-teaching (as my mice did to solve bump problems and movable object problems)!

    Like

Comments are closed.