## YABR

Discussions regarding building a walking robot at home. Most of the robots participating at Robo-One competitions are custom fabricated.
3 postsPage 1 of 1
3 postsPage 1 of 1

### YABR

Hi guys, I'm new to the forums, but I thought I would share some of my work:

This biped is basically just 2D to prove that the control algorithm I developed works (the boom just provides lateral support). It is walking on "point feet" to prove that the walking isn't the result of statically balancing.

This control algorithm basically works as follows: Imagine you take a very large step and when your foot hits the ground, you hold every joint in your body rigid. You will rock up on your lead foot, then fall back onto your trailing foot. If, under the same conditions, you took a very short step, you would rock right over your lead foot and fall on your face. There is a spot in between the two positions where you would rock up and become pefectly balanced with your center of mass balanced over your standing foot. I call this position the Foot Placement Estimator, or FPE. This robot is constantly calculating that position every 10ms and tries to always step just slightly further than that position so each step is stable.

This measure is combined with a state machine divided into push, lift, swing, and drop states. During the push state, it extends its leg until the FPE moves in front of the standing foot (meaning it now has to step further than where it is currently standing). It then lifts its leg to a set height, and swings it through maintaining the foot height at a constant (ideally) and aims to position it just further than the FPE. During the drop state, I make the swing leg more compliant to absorb the impact while still tracking the FPE until impact occurs then it switches to the push state for the other leg. There are no precalculated trajectories and it is very robust against external disturbances (the second half of the video).

I used the lynxmotion brackets for the legs, everything else was custom machined. The servos are standard ball-bearing types (~\$30) but I replaced the control circuit with my own so I can change controller gains and get feedback from the servo about its current position. All the servos are on a single I2C network. All the data processing is done with the onboard dsPIC. Power is supplied externally (just so I didn't need to charge batteries). The key sensors are optical encoders mounted on the hub to provide the absolute position of the body. A full 3d version of this needs to estimate the position and velocity of the COM to make this work.

Cheers!

Derek.
Hi guys, I'm new to the forums, but I thought I would share some of my work:

This biped is basically just 2D to prove that the control algorithm I developed works (the boom just provides lateral support). It is walking on "point feet" to prove that the walking isn't the result of statically balancing.

This control algorithm basically works as follows: Imagine you take a very large step and when your foot hits the ground, you hold every joint in your body rigid. You will rock up on your lead foot, then fall back onto your trailing foot. If, under the same conditions, you took a very short step, you would rock right over your lead foot and fall on your face. There is a spot in between the two positions where you would rock up and become pefectly balanced with your center of mass balanced over your standing foot. I call this position the Foot Placement Estimator, or FPE. This robot is constantly calculating that position every 10ms and tries to always step just slightly further than that position so each step is stable.

This measure is combined with a state machine divided into push, lift, swing, and drop states. During the push state, it extends its leg until the FPE moves in front of the standing foot (meaning it now has to step further than where it is currently standing). It then lifts its leg to a set height, and swings it through maintaining the foot height at a constant (ideally) and aims to position it just further than the FPE. During the drop state, I make the swing leg more compliant to absorb the impact while still tracking the FPE until impact occurs then it switches to the push state for the other leg. There are no precalculated trajectories and it is very robust against external disturbances (the second half of the video).

I used the lynxmotion brackets for the legs, everything else was custom machined. The servos are standard ball-bearing types (~\$30) but I replaced the control circuit with my own so I can change controller gains and get feedback from the servo about its current position. All the servos are on a single I2C network. All the data processing is done with the onboard dsPIC. Power is supplied externally (just so I didn't need to charge batteries). The key sensors are optical encoders mounted on the hub to provide the absolute position of the body. A full 3d version of this needs to estimate the position and velocity of the COM to make this work.

Cheers!

Derek.
dlwight offline
Newbie
Posts: 1
Joined: Mon Nov 12, 2007 10:36 pm

Nice work sir! And welcome to the Robosavvy Forums.
Nice work sir! And welcome to the Robosavvy Forums.
10 Shoot
20 Die
30 Goto 10
bbrainmonkey offline
Savvy Roboteer
Posts: 36
Joined: Thu Nov 08, 2007 3:34 am
Location: Connecticut

### custom servo circuitry?!?

I'm very interested in your servo modifications. It drives me up a tree that you can't find standard servos with decent serial communications at a reasonable price. Bioloid servos are good, but have an unusual form factor; Hitec, Kondo, and Futaba are all still missing the point. Standard \$30 (ish) servos, compatible with Lynxmotion brackets yet serially addressable over a standard network like I2C, would be ideal.

Thanks,
— Joe
I'm very interested in your servo modifications. It drives me up a tree that you can't find standard servos with decent serial communications at a reasonable price. Bioloid servos are good, but have an unusual form factor; Hitec, Kondo, and Futaba are all still missing the point. Standard \$30 (ish) servos, compatible with Lynxmotion brackets yet serially addressable over a standard network like I2C, would be ideal.