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.
I cant imagine you could completely close off the hamster ball enclosure. It would run extremely hot from the motors and circuitry, you would have to have some vents for natural convection since fans would probably be too complicated, and some pretty big vents at that.
LikeLike
I know nothing about robotics, and this was the best education I think I could ever have received.
Yet again, xkcd fans are made of win.
LikeLike
> I cant imagine you could completely close off the hamster ball enclosure. It would run extremely hot from the motors and circuitry, you would have to have some vents for natural convection since fans would probably be too complicated, and some pretty big vents at that.
I agree there would be a fair amount of heat produced, but I think that with the thinnish ball shell and huge surface area, along with the fact that it would be moving and thus constantly getting new “cool air” over the whole surface, it wouldn’t be anything to worry about.
LikeLike
Er…. with Regard to RobotIQs, wouldn’t it be a lot easier to ReProgram Humans to behave as if Robots [to behave as if, leaves them with/gives them some semblance of fostered respectability and multiple choice to accompany the Perception that they may actually believe that they have a Personal Intelligence which they can use] rather than accept the primitive, random, chaotic, animalistic behaviour which so many of them/most of them exhibit?
Just AI Thought
LikeLike
I think it is best to make the ball opaque. Just imagine how alien it would look : a simple, solid ball, that moves around with no apparent reason, with a camera that somehow always stays on top !
Of course it is possible to have two hulls, one transparent and one opaque, and to change them whenever you like.
LikeLike
How about giving it an IR imaging system on the inside? While the webcam on the outside is kinda cool, it’s the most fragile part of the robot.
LikeLike
I love this stuff, even though i’m not really that savy with programing robots, I’ve tried with poor results. I so read robot blogs, however, and I thought you guys might like this one that NASA is creating for use on Mars, possibly in a “swarm” type format. Let me know what you think!
http://www.botjunkie.com/2008/04/15/orb-swarm-attacks-mars-rover-at-yuris-night-bay-area/
LikeLike
In my opinion the camera is not going to stay on top for long. It would have to wobble with the robot that’s wobbling inside and a magnetic connection either brings a lot of friction for the caster wheels or it will not be strong enough.
So my suggestion I want to add to all the awesome suggestions above is to use more than one cam and use the difference in image for compensation of dirt on the ball. This would also make a nice noise proof parallax algorithm challenge and as someone said be able to measure the speed of the ball more accurately. For extra coolness make the ball opaque to visible but not to IR light.
And rotation could be done with the omniwheels in the Killough setup as described above.
And to make it submersible you could use some kind of flaps or strings of which the ends are a bit weighted. The flaps will then hang down and provide the most thrust when they are on the bottom side of the ball.
LikeLike
But.. the problem would be to control the buoyancy. There would have to be a vent or some kind of deformation of to change the volume of ball. Any ideas for that?
LikeLike
Since all the robotics nerds seem to be here today, does anybody want to make something like this for me? I’m bedridden and it would really be amazing to have a remote-controlled mobile webcam at my disposal! Especially if it had a microphone and speaker deal too – telepresence as far as my WIFI can reach… awesome.
Spending 24/7 in one bed in one room year after year gets unbelievably tedious… and also prevents one doing nifty stuff like hacking together telepresence robots. Another of those little cosmic ironies.
Ricky
LikeLike
Not sure if anyone has mentioned this, but one other pitfall of using the magnetic hold for the camera is the oscillatory response you will get when the robot accelerates.
This response falls with the friction of the bearings/casters and with the weight of the camera.
As i think this, there would be an interesting interaction as you accelerate from a stop as the mass of the camera resists forward acceleration but also as static friction causes the camera to resist not moving forward.
LikeLike
Another thought on how to stabilize the camera. Attach the camera to a collar that sits below the center of mass of the sphere:
0
__)__
/ _M_
/ /
| | | |
M ___ / M
You could would still use the magnet to maintain center, but this would ad a ton of mass to resist angular changes due to acceleration and static friction
LikeLike
Whitespace eating for the loss 😦
LikeLike
There is a robot project like this at the Helsinki University of Technology in Finland.
http://automation.tkk.fi/Rollo
The robot is controlled with an external laptop and its camera is inside the sphere but the concept itself is very similar. Yes, the sphere gets dirty and thereby impairs the quality of the image but with the camera inside the ball the robot is easier to control and more indestructible. A bigger problem, however, is to make the robot roll over an obstacle, for instance a threshold.
LikeLike
Maybe you could use a superconductor and magnet to cause the webcam to float above the sphere. Liquid nitrogen and laptops don’t go well together, unfortunately. Maybe in a few years.
LikeLike
On the magically-staying-on-top magnetic camera:
If the ball was without holes (which sort of contradicts the hamster ball idea, I know), you could use a ventilator to create an air cushion on which the camera unit can ride.
The problem with the oscillatory response mentioned by Brandon Feil still persists, of course.
However, since we’re already talking control systems here, why not put the camera on top of a ‘cap’ which has an actuator configuration mimicking, or rather, mirroring the robot’s own movement on the outside? Designing the controller would probably not be overly easy, though (3 axes for the actuator, 3 inertial sensors, all of which are coupled, I think).
The cap would stay on because of its own weight, and the stabilization would have to come in part from a clever weight distribution (3 small batteries, motors and wheels at the lowermost extremities, to counteract the camera), making it inherently stable, and the rest from the controller.
If you’re having trouble imagining it, think of a spider with a greased bottom sitting on a ball… This might not help, but I thought the mental image was funny.
LikeLike
On cooling the innards:
Making it ‘breathe’ might be a solution. It would require a sophisticated system of cooling tubes, as well as a bellow, and might not be very practical. There would be two phases: Air intake and air expulsion (obviously…). During the intake, cool, fresh air gets sucked into the bellow through the tube system, passing over the components in need of cooling. During expulsion, the air takes the same paths.
This would require a large enough bellow to ensure that the air is actually exchanged, and also to have a large enough volume in which to store heat.
Apologies for the split post.
LikeLike
I completely forgot about the rest of the ball T_T Here I go again…
The breathing system would require something to reduce the air volume that the bellow would be forced to move. Or make the bellow(s) fill out the remaining volume of the ball…
LikeLike
I know you’re thinking of a DIY system, but there’s an actual spherical robot being developed by Swedish company Rotundus (www.rotundus.se/main.html). Roland Piquepalle has some links on http://www.primidi.com/2005/02/03.htmlhttp://www.primidi.com/2005/02/03.html and New Scientist has an article on http://www.newscientist.com/article.ns?id=dn6932. Youtube has an animation here: http://www.youtube.com/watch?v=kB_esizySdI and a video here: http://www.youtube.com/watch?v=4zXXyqqLy0o
Just thought you’d all like to know. It’s really cool (and no, while Swedish, I’m not affiliated with Rotundus in any way).
LikeLike
any library you write for this should be called pyson, and you should make the robot solar powered.
LikeLike
This should be solar powered and any library you write for it should be called pyson.
LikeLike
oops
LikeLike
That’s “COUPLE OF”, not “COUPLE”. It’s not an adjective. Your nerd cred just plummeted hard with me 😦
LikeLike
And your nerd credit just plummeted hard with the rest of the internet community (:
LikeLike
The project reminded me a lot of this:
http://www.cs.cmu.edu/~reshko/PILOT/
Which is very similar to the project Steve Baker posted, but that one was made of LEGO and therefore far superior in every way.
Basically you’d take something like that and just need to incline the three omniwheels to rest squarely against the inside of the ball (perhaps a good opportunity to add a little shock-absorbing suspention?) Drive any two wheels and let the third one idle to move, drive all three and you can rotate the bot inside the ball. Of course, as mentioned, the bot’s relatively high inertia might mean the ball spins instead!
But I see no real challenge putting the camera inside the ball on a dedicated turntable. The camera’s mass is so small compared to the rest, and probably won’t spin that fast, that the unbalanced torque would cause control problems.
A tilt sensor would be a good idea so the bot doesn’t try to flip itself over inside the ball in case the shell gets caught on a low ledge. This might be yet another opportunity to bastardize the Wii Remote.
=Smidge=
LikeLike
We were talking about this at lunch today and concluded:
A ball made of diamond would not scratch!
4 omni’s on the bottom powered would give perfect motion in any direction, we prototyped this with a VEX kit.
Possible encoder idea: a spinning range finder, optical mouse on the bottom for tracking, and 3 gyro’s for accurate direction.
LikeLike
First of all, I really like Steve Baker’s parallel cylinders idea. They seem simpler and less prone to part failure.
Secondly, does the camera need to be mounted on the top? I know that gravity does come into play, but I would imagine that there are strong enough magnets available to keep the camera on the side or front. This would keep the center of gravity low, and would lessen the effect of wobble. If you were to put the camera on the side, you could add a second camera to give the robot depth perception (unnecessary? yes – cool? yes). I think this would help in the event that you programmed it to avoid obstacles and calculate speed.
Finally, I don’t think coating the surface of the ball with a frictional surface would affect the performance of the webcam’s base as long as you use good (large, ‘frictionless’) bearings. Also, having an opaque ball with “eyes” rolling around the room would be awesome.
LikeLike
I’m surprised nobody has suggested this yet. It seems obvious to me.
If the laptop has spare CPU cycles after its image analysis and behaviour plotting, its screen should totally display a cute hamster face!
I’m picturing an inquisitive little animal with a low poly count.
LikeLike
“I’m surprised nobody has suggested this yet. It seems obvious to me.
If the laptop has spare CPU cycles after its image analysis and behaviour plotting, its screen should totally display a cute hamster face!
I’m picturing an inquisitive little animal with a low poly count.”
And as its screen saver, it should have the Hamster Dance! 😀
recaptcha: Dickinson Duck. Mmm, delicious!
LikeLike
I wonder if you could include the camera inside a dome which uses a similar mechanism as the camera would have. The dome could be made of a clear material, and as long as it has a base it should be waterproof. I understand it would leave more space for stuff to build up, but easier to clean then a camera lens and it doesn’t pick up as much dirt since it stays on top. Awesome comic btw, doing too much already at the moment, but this would be awesome to make. Maybe once I get some time and money.
LikeLike
@Little Richie:
Neither would a hamster ball made of Dragonforce ;).
ITS THE HARDEST METAL KNOWN TO MAN!
LikeLike
May I suggest hydraulics, suede interiors, an xbox 360 and a sweet sound system?
LikeLike
But how do you get it to blog?
Oh, wait. It’s pretty easy, if you can stand random content.
LikeLike
Why not make the camera holder its own robot that is programmed to stay on top of the sphere? It would need an accelerometer and a funky stabilizing contraption, like a driven track ball to keep up with the sphere…
LikeLike
>Why not make the camera holder its own robot that is programmed to stay on top of the sphere? It would need an accelerometer and a funky stabilizing contraption, like a driven track ball to keep up with the sphere…
Yeah, like I said. A magnet (or an arrangement of magnets) could still be used to sense the location relative to the main robot.
LikeLike
you know, we’re thinking about this camera thing the wrong way. we’re trying to figure out the ideal way to anchor it on the top, with magnetic coupling. i just thought of a much easier way to do it.
place the camera on top of a sort of armature, in the form of arms that are shaped like the ball but stand off of it, and at the bottom of each arm have a caster and either a small weight or a magnet to couple to a ring of magnets hanging inside. if the arms extended, say, 2/3 or 3/4 of the way down the ball, it shouldn’t fall off easily, and the weights/magnets could keep it stable.
for bonus points, a tilt sensor could tell the robot what angle the camera is at so the robot can compensate and doesn’t sway drunkenly due to the swaying camera. the camera could be connected by IR or as another posted suggested, UWB connected and powered by high-frequency RF
LikeLike
Ditch the camera, go for ultrasonic and infrared sensors. Then you can use something simple like an HC11 or an aTMega for the brain and drastically reduce the cost of the robot. (Oh no, you’d have to write in C or Assembly!) If you want, you could also incorporate bluetooth communication to a PC so you can reprogram its AI on the fly, then you could indeed write in a high level language like Python
LikeLike
Here’s my take on the robot…
Instead of a small square base for the camera, make a “cap” as I believe someone else mentioned. Make it four or five “octopus arms” and have a rare earth magnet on the tip of each. Put a ball bearing or a few near or around the magnet so that it will prevent friction (possibly out of a plastic or teflon type material so that the magnet doesn’t interfere with the rotation). Inside the ball make an “umbrella” of sorts to match up with the octopus cap on top of the sphere. The closer to the equator of the ball, the more stable the camera should be, in my eyes. In order to make the camera rotate you could use one of the mounts for those USB foam dart launchers they sell on thinkgeek.com (note: I have no affiliation with them. I just like the stuff they sell.) It already has a USB interface too so I’d imagine it should be too hard to modify it to hook to the RF transmitter. Plus it should be able to be utilized by the computer AI.
The bent section of the upright pillar should have a joint or hinge in it so that when you open the ball, the magnets will still hold the camera in place so you, ideally, won’t have to reposition anything just to get at the battery or PC. Also it would probably be a good idea to make a jack on the base so you could hook a wire to the battery to recharge it, rather than pulling it out altogether. Or you could rig up some kind of solar panel on the camera cap and transfer power through the ball via induction and have the robot be fairly self sustaining.
Now for the propulsion system I have a completely different idea. My physics may be off on this one so I apologize ahead of time. Please someone correct me if I’m off. For some reason the first thing that popped into my head while looking at this robot is the old demonstration in physics class for rotational forces. The one where you stand on a ball bearing platform and spin a bike wheel. When you turn the wheel left or right you move in that direction via rotational force. When I did it, I accidentally tilted it forward and almost fell on my face. This popped in my head. If we rig one or more gyros (beneath the umbrella but above the pivot/hinge joint) up with a gear to manipulate the direction of the spinning wheel it should generate a force that would try to topple the base. But since the base should have a low center of gravity, the ball would instead move via the rotational forces. The base could then be supported merely by casters or ball bearings and would remove the need for a complicated wheel system. This should also help keep the structure upright more easily than a friction based wheel assembly.
LikeLike
Instead of using an eee pc, which is more prone to damage, I really think it would be simpler to use a microctrontroller system like Arduino. The robotics lab at my school uses arduinos-they’re great, they use AVR microcontrollers and you program them in C, and they have nice libraries for I2C, servos, stepper motors, etc. Also, the webcam on the outside’s a bad idea. It’ll be way too complicated to use magnets, that just wouldn’t work. Personally, I would forget the webcam since there’s no way you’re going to be able to do anything with it as a sensor-all it will be useful for is seeing where the robot is.
And as long as you’re using an eee pc, why not just use the webcam built into the laptop? It’s actually pretty good. (I have an eee pc)
LikeLike
It looks a lot like ICARUS
http://www.uact.com/technology/icarus_project.aspx
LikeLike
How about another ball?
If the camera is secured with a strong magnet, you could simply mimic the structure of the whole robot, having the camera in a clear ball, with a low center of gravity. The ball itself would roll, and it would not pick up as much crud, as it wouldn’t be directly touching the ground. Also, it would look the coolest of all these ideas… A moving sphere, with another sphere that always stays on top of it.
LikeLike
I really like that noone has uttered “Um yeah. But what would the robot be good for?” yet. 🙂
We just want to __ because we can.
LikeLike
Great scott. He’s right.
“A moving sphere, with another sphere that always stays on top of it.”
LikeLike
I’ve seen one a couple of years ago at Helsinki University of Technology (http://www.hut.fi/) It didn’t have a webcam though, and was remote controlled in “xy-plane”, you know what I mean, right? 🙂
LikeLike
Let’s face it. You know that fan’s emulate the stuff you draw, like the [citation needed] sign, and the chess-coaster trick. So, you had a great idea: let’s see if I can get them to build a robot. Genius. And the best part is, someone will do it, too.
LikeLike
How about an R/C car in a ball?
LikeLike
Brilliant, each of you.
Regarding Barnabas’ idea for image wobble correction after the fact (even though it’s tangent to the “camera on top” ideal):
If embedding EXIFs in periodic snapshots doesn’t work, you could mount an ‘artificial horizon’ within the camera’s field of view and use it to correct the camera tilt. Just give make its sky contrast strongly with its ground. All the metadata is included in the pixels of the image. No extra space is wasted, and it’s continuous.
Granted, you’re blocking part of your robot’s vision, but with all the tumbling around, you’ll get to see whatever’s behind the artificial horizon in a moment or two…
Now, who’s working on a way to get this thing to climb back up the stairs? I know I’m missing the point of laughing at the poor thing, but c’mon, smug meatbag superiority only goes so far.
LikeLike
wouldnt it be easier just to use actual omni wheels?
(http://en.wikipedia.org/wiki/Omni_wheel)
or, alternatively, you would have four ball bearing type contraptions for movement, think like a powered trackball, they could have motors to spin the ball, but the ball could still rotate freely in any direction
(like four miniature versions of the locomotion system in the ballbot
http://www.msl.ri.cmu.edu/projects/ballbot/)
great, now im thinking too much, and i cant go to sleep and im going to fall asleep in class again. i hope youre happy.
LikeLike