Underactuated Robotics
underactuated.csail.mit.edu
underactuated.csail.mit.edu
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
Also:
> 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 :)
It's amazing how much adaptation and complex behavior can be embedded into an underactuated system. A fish's dead body "knows" how to save energy when swimming against a current!
Relevant recent work from Google AI: building a dynamic model of the world from pixel observations only
https://ai.googleblog.com/2019/02/introducing-planet-deep-pl...
I don’t think TRI has made ROS wrappers but it could conceivably be done without much pain I think.
Not sure there is much in there about new stuff from BD. There is some deep RL stuff now though, not really sure how much the course has changed since 2015.
https://www.edx.org/course/underactuated-robotics-mitx-6-832...
[1] https://www.facebook.com/thattokyobar/ [2] https://www.youtube.com/watch?v=n_PeLAlVpzQ
Could one then learn to control it with deep learning, and maybe gain some benefits from doing so? Like gaining the rapid maneuverability that birds have.
Right now I am trying to build a quadruped robot and still a bit scared of that mathematics, but its awesome and I'll fight my way through it.
Animals like us have plenty of control theory built into our firmware, even if we aren't going through the calculations on the cognitive software level.
A control system, tuned and running, is a few lines of code in a fast loop, or a feedback amplifier circuit. Just like a neural net, it takes a while to tune the coefficients but then it becomes muscle memory. And since much of control theory is fully general (like Bode's sensitivity integral), those principles must also hold for biological systems as well.
A baby doesn't think about Laplace transforms when learning to walk, but neither do they think about backpropagation.
If you're keen to replace control theory with something else, I recommend solidly understanding it first.
That said, deep learning is great for when we can't model things well. For example, there are a number of mathematical issues with how we model object grasping even before visual data is introduced. Since the setting is so difficult to work with analytically, there have been a number of exciting data-driven solutions proposed in this space.
Personally I think the future will be merging parts of control theory/dynamics with machine learning.