I had guessed they were using visual sensing because of how the two halves of the pendulum were painted in contrasting, bright colors, but I was wrong. There are angular sensors at the joints of the pendulum, and a position sensor in the wagon at the bottom. The control system also needs the velocities of the parts of the pendulum, which it gets through a state observer (http://en.wikipedia.org/wiki/State_observer).
The interesting part for me was how the control system stands the pendulum up: it figures out the potential energy the pendulum will have when upright, then jerks the wagon around to add that amount of energy into the system as kinetic energy, then guides the system around a constant-energy landscape until it's upright. Pretty clever!
I wonder if the frequency of the "jerking around" is hard-coded for the lengths of this particular pendulum. It would be cool if it could automatically determine which movement patterns add energy to the system after trying for a while.
The visual sensing is quite impossible due to the high speed of its movement. Any camera that can capture the color information at that speed is expensive.
"The colour of each pixel indicates whether either pendulum of a double pendulum flips within 10 (green), within 100 (red), 1000 (purple) or 10000 (blue). Those that don't flip within 10000 are plotted white. The angle that the upper pendulum makes with the vertical initially ranges from -3 at the left-hand side of the plot to +3 at the right-hand side. The angle that the lower pendulum initial makes with the vertical ranges from -3 at the top to +3 at the bottom."
Mathematics people: Does this image represent the landscape this robot walks in any way?
That diagram is showing something related, but not really directly applicable. The important extra feature the controller has is the ability to add energy to the pendulum - which is akin to being able to move between locations on the plot. However, the graph doesn't suggest anything about the results of any particular move by the controller, so (even using an extended version of the plot, dealing with upright target positions) this doesn't really a way to solve for the controller's actions.
What the plot shows is how complex the behaviour of a double pendulum is : small changes can result in wildly different outcomes, even though it's deterministic.
My controls lab in college (University of Washington, Aeronautics & Astronautics) had an inverted pendulum. I designed a controller to balance it and maintain position along the track for a controls class. We took a picture of Gumby standing on top of it for our report. It used rotary optical encoders to measure the angle, and a motor driven belt to move the base along the track. Somebody in our department developed a controller to flip the inverted pendulum up and balance it. Another stabilized a jointed pendulum in various configurations (both arms up, one up & one down, one down & one up). All are non-trivial problems. Combining them is commendable.
My hunch is that balancing a real inverted double pendulum in that way is not possible (and that the clip is a hoax -- perhaps using servos at the middle joint to hold it relatively straight at the right time). Would love to be proven wrong though.
The forces involved in double pendulums are very well studied. As other posters have pointed out the robot has sensors on the two pivot points which makes it straight forward to counter the movement (once you have a precise robot, the right force equations and a PHD in physics) once the pendulum enters the required state.
ps I voted you up from you negative state, I don't see a reason for a downvote in your comment.
This reminds me considerably of the "Pole Balancing Problem"[1] which was tackled by neural networks for a long time. It's since been solved by them. Seeing a real-world version of that problem is pretty cool, though.
[1] The pole-balancing problem isn't exactly like this problem. A single pole is balanced, rather than two; and even in the double-pole balancing problem, the two poles both rise from the base, not one pole atop the other. That should be a minor variation to it.
I would immagine that almost every non-trivial robot you find in a research lab today includes a Kalman filter somewhere.
I know the balancer I worked on (https://collab.cc.gatech.edu/humanoids/node/1241) certainly does, although from that project I can also tell you that most Kalman filter implementations are probably incorrect. It's fairly easy to implement a filter which behaves quite well but does not actually behave like a Kalman filter.
That's one piece that's often used in control systems, but the clever thing here is the control of the 2-link pendulum, by reaching a desired energy first to limit the search space.
Note that this experiment (balancing an inverted pendulum, then moving on to balancing an articulated inverted pendulum) is one of the examples from the original Papert LOGO papers of neat robotics problems which grade schoolers can understand and start working on (using the LOGO turtle or similar), but which can be refined as far as the student wishes to take it.
I'm pretty sure it's impossible for a human. On the other hand we can do amazing feats of balance that no robot can do, like walking quickly on two legs across an uneven surface. It's all a matter of specialisation.
To those of us without a background in hard mathematics or engineering but with enough knowledge to know what it means that a double pendulum is a chaotic system, this video is initially quite staggering.
Perhaps it doesnt fit the literal semantic meaning of "unbelievable," but then if we all spoke completely literally language wouldn't be much fun.
Saw a lecture by Tobi Delbruck at my uni last month and was really impressed by this application among others. Seems like some really interesting technology. Can post a link to the lecture recording (audio) if anyone wants it?
[+] [-] wwalker3|15 years ago|reply
I had guessed they were using visual sensing because of how the two halves of the pendulum were painted in contrasting, bright colors, but I was wrong. There are angular sensors at the joints of the pendulum, and a position sensor in the wagon at the bottom. The control system also needs the velocities of the parts of the pendulum, which it gets through a state observer (http://en.wikipedia.org/wiki/State_observer).
The interesting part for me was how the control system stands the pendulum up: it figures out the potential energy the pendulum will have when upright, then jerks the wagon around to add that amount of energy into the system as kinetic energy, then guides the system around a constant-energy landscape until it's upright. Pretty clever!
[+] [-] TorKlingberg|15 years ago|reply
[+] [-] liuliu|15 years ago|reply
[+] [-] palish|15 years ago|reply
[+] [-] JonnieCache|15 years ago|reply
"The colour of each pixel indicates whether either pendulum of a double pendulum flips within 10 (green), within 100 (red), 1000 (purple) or 10000 (blue). Those that don't flip within 10000 are plotted white. The angle that the upper pendulum makes with the vertical initially ranges from -3 at the left-hand side of the plot to +3 at the right-hand side. The angle that the lower pendulum initial makes with the vertical ranges from -3 at the top to +3 at the bottom."
Mathematics people: Does this image represent the landscape this robot walks in any way?
[+] [-] mdda|15 years ago|reply
What the plot shows is how complex the behaviour of a double pendulum is : small changes can result in wildly different outcomes, even though it's deterministic.
[+] [-] brown9-2|15 years ago|reply
What are the units being discussed here - "within 10" of what?
[+] [-] bld|15 years ago|reply
[+] [-] sanj|15 years ago|reply
[+] [-] cookietime|15 years ago|reply
[+] [-] hartror|15 years ago|reply
ps I voted you up from you negative state, I don't see a reason for a downvote in your comment.
[+] [-] sukuriant|15 years ago|reply
[1] The pole-balancing problem isn't exactly like this problem. A single pole is balanced, rather than two; and even in the double-pole balancing problem, the two poles both rise from the base, not one pole atop the other. That should be a minor variation to it.
[+] [-] iwr|15 years ago|reply
[+] [-] jsolson|15 years ago|reply
I know the balancer I worked on (https://collab.cc.gatech.edu/humanoids/node/1241) certainly does, although from that project I can also tell you that most Kalman filter implementations are probably incorrect. It's fairly easy to implement a filter which behaves quite well but does not actually behave like a Kalman filter.
[+] [-] JabavuAdams|15 years ago|reply
[+] [-] jimwise|15 years ago|reply
[+] [-] JabavuAdams|15 years ago|reply
[+] [-] roadnottaken|15 years ago|reply
[+] [-] hugh3|15 years ago|reply
[+] [-] ars|15 years ago|reply
[+] [-] Devilboy|15 years ago|reply
[+] [-] est|15 years ago|reply
http://v.youku.com/v_show/id_XMjMzMTkyMzY=.html
and quadro
http://v.youku.com/v_show/id_XMjMzMTk2NDA=.html
[+] [-] vtrac|15 years ago|reply
I must admit that mine was quite a bit simpler.
[+] [-] Twisol|15 years ago|reply
[+] [-] cma|15 years ago|reply
[+] [-] rbanffy|15 years ago|reply
[+] [-] JonnieCache|15 years ago|reply
[+] [-] albertcardona|15 years ago|reply
http://www.ini.uzh.ch/~conradt/Projects/PencilBalancer/
(The cameras: http://siliconretina.ini.uzh.ch )
[+] [-] gus_massa|15 years ago|reply
[+] [-] theblackbox|15 years ago|reply
[+] [-] giantsquid|15 years ago|reply
[deleted]
[+] [-] kevinburke|15 years ago|reply