by JonHylands » Fri Jan 12, 2007 8:48 pm
by JonHylands
Fri Jan 12, 2007 8:48 pm
I still don't agree that you need IK for what you are talking about. We clearly don't solve differential equations in our heads to move our hand towards the fridge door.
The reason we can do it without IK is because we use a combination of muscle training/memory with subtle visually-directed modifications to get our hand to the target, in this case the fridge door.
We don't need to know how far away we are from the fridge, only that we are "within reach". We don't take out a ruler and measure how far we are before deciding that we are within reach. Because we have reached out hundreds of thousands of times to grasp objects, we "know" how far we can reach, and we estimate the distance to the fridge door using a combination of focal divergence and size estimation.
To think about it in robotic terms, the robot needs to position itself "close enough" to the goal that it can reach it. It doesn't need to know how far away it is exactly. It will then start playing back a "grasp for an object" sequence of servo positions, while tracking its hand with its camera as it moves towards the target. As the hand gets closer to the target, it will start applying corrections to the sequence based on visual feedback.
I suppose from one perspective, you could say these subtle corrections are a form of IK, although they will be implemented using sequence overlays. The robot senses that it needs to nudge its hand in a direction, and thus it does a lookup of where it did that in the past successfully, and overlays that sequence on the one that is currently operating.
These modifyer sequences will be stored as deltas rather than absolute positioning, so they can be overlaid on top of the main sequence. The robot will have to have a lot of these sqeuences stored in memory, which is one of the reasons I am implementing and will be running MicroRaptor from my PC, with high-speed low-latency interactions with the robot hardware from the PC. My laptop has a couple gigs of memory, and a 100 gig hard drive. You can fit a lot of sequences in that much space...
This approach should work in any number of areas, including grasping, maintaining balance, visual servoing, and probably a bunch of things I haven't thought about.
- Jon
I still don't agree that you need IK for what you are talking about. We clearly don't solve differential equations in our heads to move our hand towards the fridge door.
The reason we can do it without IK is because we use a combination of muscle training/memory with subtle visually-directed modifications to get our hand to the target, in this case the fridge door.
We don't need to know how far away we are from the fridge, only that we are "within reach". We don't take out a ruler and measure how far we are before deciding that we are within reach. Because we have reached out hundreds of thousands of times to grasp objects, we "know" how far we can reach, and we estimate the distance to the fridge door using a combination of focal divergence and size estimation.
To think about it in robotic terms, the robot needs to position itself "close enough" to the goal that it can reach it. It doesn't need to know how far away it is exactly. It will then start playing back a "grasp for an object" sequence of servo positions, while tracking its hand with its camera as it moves towards the target. As the hand gets closer to the target, it will start applying corrections to the sequence based on visual feedback.
I suppose from one perspective, you could say these subtle corrections are a form of IK, although they will be implemented using sequence overlays. The robot senses that it needs to nudge its hand in a direction, and thus it does a lookup of where it did that in the past successfully, and overlays that sequence on the one that is currently operating.
These modifyer sequences will be stored as deltas rather than absolute positioning, so they can be overlaid on top of the main sequence. The robot will have to have a lot of these sqeuences stored in memory, which is one of the reasons I am implementing and will be running MicroRaptor from my PC, with high-speed low-latency interactions with the robot hardware from the PC. My laptop has a couple gigs of memory, and a 100 gig hard drive. You can fit a lot of sequences in that much space...
This approach should work in any number of areas, including grasping, maintaining balance, visual servoing, and probably a bunch of things I haven't thought about.
- Jon