This post is dedicated to special kind of robots, - hexapods. Literally it means "six legged" robot, and I bet you imagine bug- or spider-like mechanical walker that is hiding under your bed and has come to claim your soul...

But there is another kind of hexapod robots, that have less scary looks and are supposed to be very precise. Yes, I'm talking about Stewart platform, a six-cylinder positioning device. The most surprising is that they have very simple closed-form mathematical solution to the inverse kinematics (IK) problem, that is usually a hard nut to crack for regular joint-robots. But this advantage comes at a cost - the forward kinematics (FK) solution is a real challenge for your math skills (and again - FK is a piece of cake for joint-robots).

To remind what is IK and FK, I'll provide an example:

suppose you can figure out exactly the position of each part of your body, and by position I mean rotation angle (because humans don't have telescopic joints :) - something like "my upper arm is rotated by 45°, lower arm by 15°, palm 5°..." etc. up to the very last bone of your finger. By the way, it's called "End effector" - the very last part in kinematics chain. Assuming that you know exact length of each of your bones and applying some math one can figure out the exact position of finger-tip in space. This solution is called

And now, as one can simply guess,

Luckily for us, humans, we're equipped with many-thread processing unit called "brains", that have evolved an astonishing approximation algorithm - just think how professional basketball player is capable of real-time body coordination to make a three-point shot from a distance! Yes, approximations and data from zillions of sensors - that is receptors - are working in a clockwork mechanism to deliver you a flawless nose-scratching service.

And how about robots? Well, approximation algorithms exists, but on top of that one needs additional layer of rules how to pick a solution from set of available ones. Sometimes it doesn't matter, consider that you're trying to push a light-switch on the wall. Do you really care which way finger touches the switch as long as the light goes on? You don't, unless the switch is broken with plain wires sticking around and a slight mistake would electrocute you.

In the past ten years I've been working with hexapod devices to precisely position patients in 3D space. But up till now I didn't know how controller calculates IK and FK problems for the Stewart platform, my software simply pushed end effector targets and that's it. Recently I've started doing a research on mathematical hexapod model, still hoping to find simple solution for FK problem (do I have to remind why I've miserably failed? :), and came to a conclusion that FK is rarely needed for hexapod device. Especially real-time FK. Usually robot controller application needs to know cylinder positions when end-effector position is known, not the other way around. I'm not gonna drill down to the technical details now and will explain the math in Part II next time.

As for now, enjoy the walker show:

To remind what is IK and FK, I'll provide an example:

suppose you can figure out exactly the position of each part of your body, and by position I mean rotation angle (because humans don't have telescopic joints :) - something like "my upper arm is rotated by 45°, lower arm by 15°, palm 5°..." etc. up to the very last bone of your finger. By the way, it's called "End effector" - the very last part in kinematics chain. Assuming that you know exact length of each of your bones and applying some math one can figure out the exact position of finger-tip in space. This solution is called

*forward kinematics*in robotics world.And now, as one can simply guess,

*inverse kinematics*does just the opposite: suppose you want to use your finger to say.. pick your nose (yuck!). You know exact position of your nose, and you still remember exact length of your bones. The question is, how do you know what force of muscles you should apply to rotate your bones into positions so that end effector hits your nostril? One can easily guess, that there are many solutions to this problem and that's why there is no simple answer.Luckily for us, humans, we're equipped with many-thread processing unit called "brains", that have evolved an astonishing approximation algorithm - just think how professional basketball player is capable of real-time body coordination to make a three-point shot from a distance! Yes, approximations and data from zillions of sensors - that is receptors - are working in a clockwork mechanism to deliver you a flawless nose-scratching service.

And how about robots? Well, approximation algorithms exists, but on top of that one needs additional layer of rules how to pick a solution from set of available ones. Sometimes it doesn't matter, consider that you're trying to push a light-switch on the wall. Do you really care which way finger touches the switch as long as the light goes on? You don't, unless the switch is broken with plain wires sticking around and a slight mistake would electrocute you.

In the past ten years I've been working with hexapod devices to precisely position patients in 3D space. But up till now I didn't know how controller calculates IK and FK problems for the Stewart platform, my software simply pushed end effector targets and that's it. Recently I've started doing a research on mathematical hexapod model, still hoping to find simple solution for FK problem (do I have to remind why I've miserably failed? :), and came to a conclusion that FK is rarely needed for hexapod device. Especially real-time FK. Usually robot controller application needs to know cylinder positions when end-effector position is known, not the other way around. I'm not gonna drill down to the technical details now and will explain the math in Part II next time.

As for now, enjoy the walker show:

## No comments:

Post a Comment