Hacker News new | past | comments | ask | show | jobs | submit login

Interesting. I used to work on legged locomotion in the 1990s.[1]

The notes point out that locomotion on the flat is a special case. Too much work on legged locomotion assumes flat ground. On the flat, balance dominates the problem. Once you get off a flat surface, slip/traction control dominates.

Slip control is like "ABS for feet". You have to keep the forces applied parallel to the ground below the point where slip starts. That changes the shape of the problem. Classically, most robot control is positional. Slip control is in force space. Until you have slip control, hill climbing will not work. So the first step is to constrain those forces to stay below the break-loose point.

I pointed out in the 1990s that legs with three joints allow manipulating the contact force vector and the position independently.[2] This is visible once you watch people climbing hills, and even clearer with horses, where the leg bones are closer to being of equal length.

Most legged robots don't make fast starts and stops or fast turns. Even the Boston Dynamics machines usually start by trotting in place and then shifting to forward. Motion with high accelerations is traction-limited.

The first step is like ABS, constraining the forces below the break-loose point. You need that because in the real world bad stuff is going to happen and recovery involves backing off the forces until traction is regained. The second step is considering forces when planning, so that movements get near the limits of traction but don't exceed them. This is where you can begin to do more aggressive movements.

The lesson notes are finally going in the right direction, looking at this as a two-point boundary value problem. Most previous work has focused on finding some expression that measures stability and maintaining that. If you want agility, you have to give up stability maintenance throughout the gait cycle. You need good landings. Everything else is secondary.

You have a set of constraints that apply at a landing, as a foot touches down - be within slip tolerance on forces, joints not too close to limits, impact not too high. And, importantly, the situation must be within the basket that allows stability recovery during the ground contact phase. Land, stabilize, launch, reposition for landing while in air, repeat.

Most work focuses on stabilization. That's only part of the problem. What to do in the air is classic rocket science trajectory planning. Launch control is mostly force-limited, and that's when you get to apply big forces and get big accelerations.

How far ahead do you plan? One landing ahead for basic locomotion, two landings ahead for athletics. If you plan two landings ahead, the stability criterion for the first landing can be relaxed somewhat. You might fail to zero out rotation in yaw because that will be fixed at the next landing, for example.

This stuff is cool, but there's no market. It was fun to work on, though. In the end, I sold much of the technology to a game middleware company, so it worked out OK.

[1] https://www.youtube.com/watch?v=kc5n0iTw-NU [2] http://www.animats.com/papers/articulated/articulated.html

I've been thinking about this stuff for decades but never saw anything like this. I think you're the first person to nail the three-joint thing. Super impressive, thanks.

From biology class, legged creatures like us have another major consideration besides stability: staying on the ground. If you try to walk too fast, your contact force in the middle of the stride goes to zero and you risk leaving the ground! To go faster, you either need to flatten you trajectory or run.


> How far ahead do you plan? One landing ahead for basic locomotion, two landings ahead for athletics.

More than two if you want to make a mogul-skiing robot :)

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact