High-Speed Robot Hand Shows Dexterity and Speed
An anonymous reader tips a blog posting that begins "A few blogs are passing around videos of the Ishikawa Komuro Lab's high-speed robot hand performing impressive acts of dexterity and skillful manipulation. However, the video being passed around is slight on details. Meanwhile, their video presentation at ICRA 2009 (which took place in May in Kobe, Japan) has an informative narration and demonstrates additional capabilities. ... [It] shows the manipulator dribbling a ping-pong ball, spinning a pen, throwing a ball, tying knots, grasping a grain of rice with tweezers, and tossing / re-grasping a cellphone!"
Feedback. As long as the error for each iteration (bounce) isn't too great, the long-term error can be kept within this by adjusting the next response based on feedback from the previous. Anything that's open-loop (lacking feedback) will fall apart, neural-net-based or not.
Actually, based on the narration, I believe that the computation involved requires three basic processing steps: (1) detection systems to measure physical properties of the system at any given point in time, such as position, velocity, acceleration, and force; (2) real-time algorithms based on rapid numerical solution of equations to predict future states of the system, with continual updating by comparing predicted state with actual state inferred from step 1; and (3) determination of the appropriate movement in the robotic arm for the necessary outcome.
I think that this is a very difficult thing to program in general because the examples shown are very specific tasks which serve to demonstrate the speed of this type of processing, but we do not see how well arbitrary tasks can be similarly implemented or how accurately.
Make no mistake: this is very impressive performance, because it is basically a huge step forward in machine vision and real-time robotic control. On some level, the mathematics has always been there, but only in as much as the basic mathematics of binary arithmetic has been used to develop programming languages. There's a lot more going on behind the scenes that extends beyond a mere physical description of the system in question, because for such an approach to be possible in the general sense, the robot doesn't know things like the precise distribution of the mass in the object being manipulated, or all the frictional forces involved. It's not operating under a sort of Laplacian notion wherein if one knew the precise state of all parameters of the system, one can simply solve the required physical equations and predict the future state at any arbitrary point in time, because (a) chaos guarantees the instability of such nonlinear systems, and (b) it wouldn't be possible to measure all such parameters with sufficient precision.
What is really going on is perhaps best explained in human terms: the programming is doing a lot of what humans do--we observe the state with our visual and tactile senses, and our brains receive these continual updates and decide what to do next. This processing is already extremely fast in a biological context, but with these machines, it is made at least an order of magnitude faster. The next step is to simulate a sort of adaptive intelligence to allow the handling of a wider class of scenarios than the ones shown in the video.
One in a thousand ain't bad for something as difficult and improbable as that. Kinda like when I manage to knock a 3-point shot in basketball.
Shaq? Is that you?
Learning HOW to think is more important than learning WHAT to think.