I have a Kinect Sensor, and iPi software I use to create motion capture data to use in film editing. I am looking at creating a small, Raspberry Pi driven bipedal robot just for fun, and I was wondering if it was possible to use the MoCap to control the robot? It will only be 20-30 cm tall, with six servos (hips, knees, ankles). Is it possible to apply the movement from these six joints on the human body to my robot, like having a string directly from my left knee joint to its left knee servo? It could either be in real-time, like following my actions, or using pre-recorded data.

(NOTE: If needed, I can plug it directly to my Apple/Windows computer, if the Pi could not support this. Also, it will have no upper torso at the moment.)


Yes, you could control the legs, but no, you're probably not going to get the effect I think you're after. The legs will probably not walk on their own just because they're miming what your motion capture system recorded.

First, a human leg has more than six degrees of freedom. The hip can flex and extend, abduct and adduct, and rotate laterally and medially. That's three axes of motion for the first joint. The knee and flex and extend (fourth axis of motion), and the ankle also has three axes, like the hip - flex/extend, abduct/adduct, and rotation. That's seven axes of motion.

Second, toes do a great deal to help balance. If you don't have any way to control toe motion (or capture it - they're like force actuators instead of position actuators), then you won't be able to achieve the same control as someone with toes.

Third, you are unlikely to get the same dynamic response as human muscle with (what sounds like) hobby servos. If the servo can't move with the same speed and force as human muscle, then the servo's mechanical response is prone to act as a low-pass filter, which means it could be unable to replicate faster balance/control actions.

Fourth, and biggest - the human, who is being captured, has a different set of dynamic parameters that they are trying to regulate for their motion. Their height, weight, center of gravity, moment of inertia, will all be different than the robot's, especially if the robot is missing a torso.

None of this means specifically that it won't work at all - you have the freedom to design shorter limbs, larger feet, etc., that can attempt to make up for the lack of fidelity in recreating the person. You'll just have to take care to understand that, with fewer degrees of freedom than a person, you may not be able to replicate all motion, and you may have some (severe) trouble getting the robot to balance correctly.

  • 1
    $\begingroup$ Thanks heaps Chuck. Your answer was perfect, precise and to the point, even for a relative 'noob' like myself! Cheers! $\endgroup$ – Woodman Mar 17 '16 at 10:40

Chuck's answer is correct; applying motion capture to a robot will make its legs move in a walking motion, but won't guarantee that the entire setup will remain upright.

floor spinning

One simple fix for that would be to just use the legs for propulsion only, and use a set of wheels for balance.

walking pants

  • $\begingroup$ Those images are perfect lol $\endgroup$ – Chuck Oct 23 '18 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.