Teaching Bipedal Robots to Step Across Discrete Terrain
spectrum.ieee.org
spectrum.ieee.org
Fast stops and starts seem to be a unsolved problem in legged robotics. The Boston Dynamics machines mostly start trotting in place, and then extend the stride. Running ought to start by falling down and forward, which places the CG ahead of the foot. You start with a controlled fall, then launch. This is traction-limited; try to push off too hard and you slip. Ground angle matters; that limits traction.
Stopping is a similar situation. You need to land with the CG behind the foot, so that you get to dump the energy into the ground and into lifting the CG. Again, this is traction-limited and ground angle matters. Handling this is essential to fast starts, stops, and changes of direction.
I got some insights on this from watching horses. Horses weigh over half a ton yet are quite agile. A common horse stopping strategy is to make a very tight turn and lean way into the turn, which dumps forward momentum into the ground. Much of the kinetic energy is spent bringing the horse back upright, trading it for potential energy. (Horses can be taught a slide stop, but usually do a turn stop on their own.)
You're going to have to consider at least two landings ahead. You'd like at the first landing ahead to have two plans - one for continuing the run, and one for stopping at the next footfall. As long as you have a plan to stop in two footfalls, you can keep running without excessive risk. This starts to look like a two-point boundary value problem in dynamics - you want an end state with certain position and velocity values, and you get to tweak forces and torques over time to get there. It's classic rocket science, trajectory dynamics. Much work has gone into that, so there are known solutions.
I was trying to approach this using model-based feedforward adaptive control. You have a predictive model of how the system is expected to behave, and you run tests to tune it to match what happens. If a predictor is tracking well, you invert its model and use it as a controller. You start with a dumb predictor, and, in parallel, you run other predictors which have added features. Those are evaluated, and you pick the winners and use them for control, while trying for better predictors which work in a larger portion of the input space. Predictor generation is semi-manual; you guess at what's going to affect what, and let the system figure out how much coupling there is.
This is similar to some forms of machine learning, but machine learning didn't do much yet back in the 1990s. This could probably be made to work today. No market, though.
I was wondering whether you did this for computer graphics or robotics applications, and your site says the answer is both!
How transferrable do you think techniques are between these two fields in practice?
there is also this http://bair.berkeley.edu/blog/2018/04/10/virtual-stuntman/
One trick that I've seen used is to carry a trekking pole and use it as a probe. It gives you three points of contact and also lets you check pieces around you before entrusting those pieces with your weight.