Legged robots can be very useful in many applications, especially where the terrain is difficult and other kinds of robots cannot properly move. This is possible thanks to the most versatile suspension system that nature (and humans) came with — LEGS.
But as it happens, legs are complicated. Multiple joints and fancy kinematics can make managing what to do to keep upright difficult. Let’s take a look at how the problem can be tackled!
Ah yes, before we do anything, we should first gather some data about our situation. Many sensors can be used for supplementing information about our robot stability — right now we will focus on the most widely used.
IMU — IMU (Inertial Measurement Unit) is one of the most powerful sensors for mobile robots. These can give us information about our robots orientation in the reference frame of the world (relative to gravity vector).
Photo: Xsens — Modern IMUs are tiny!
Legs — The big point for legged robots is that their legs are not only for actuation but for sensing as well. With knowing which legs are in contact with ground, and what forces act on them, we can accurately tell what is currently happening to our robot. We can also sense our environment with this information, and act accordingly.
Vision systems — Last but not least, the eyes of our machines. These can help us with planning our future motions, and to decide where to place feet to minimise the work the balance controller has to do to keep the robot steady.
Photo: Intel Realsense — an example of small depth camera suitable for mobile robots
Of course the data itself is worth nothing if we can’t reason about it. The job of pulling out the essence of it, usually goes to State Estimators. State Estimators(SE) or State Observers (SO) as they are sometimes called, take all that data, and fuse it into something we can work with. In modern robots, the state vector that SE produces includes the position of the robot, it’s velocity, orientation, angular velocities and often more!
How SE works is quite a big topic. So big that we believe it deserves its own article in the series. Stay tuned for the future uploads!
Art of not falling down
Not falling down seems quite simple — just keep the robot’s center of Mass (CoM) in the area supported by the legs. CoM location can be usually obtained from the robot’s CAD model. For legged robots, computing CoM location, should include legs, that when extending away from the body shift the CoM location!
Photo: Fizzics Education
A rather amazing example of balancing the CoM! This contraption’s CoM falls just short of the edge, and provides passive stability for the thing!
For a legged robot, to achieve stability, CoM has to be kept in the area supported by the legs. Let’s imagine the top projection of the quadruped robot. We then check what legs are in contact with the ground. Next step is to draw a convex polygon between all the feet touching the ground. The figure we got is called SUPPORT POLYGON, and as long as the CoM’s projection is within this shape, our robot should be stable. Of course in the real world it’s good to keep the same margin of error (for measurement errors and inaccurate estimations) and not to push the CoM too close to the edge of the polygon.
Back in the old days…
Back in the day, when hexapods ruled the legged robots world, a STATICALLY STABLE locomotion was very popular. The gait is statically stable when during any point in time, the CoM was always kept inside of the support polygon. This was easy as the robot has six legs, and they can be moved in groups of three. This ensures that the robot always has at least three feet on the ground, forming a support triangle where the CoM can be placed. If we stop the gait at any time, the robot will not fall, as the CoM will always be supported.
Photo: CSIRO Robotics and Autonomous Systems Group.
Weaver hexapod keeping its balance and base flat on unstructured terrain.
Static locomotion can be also achieved with quadrupedal robots, the limitation being that we will only swing one foot at a time, significantly limiting the maximal velocity at which the robot can travel.
Fancier approach for fancier robots
Moder legged robots, usually allow for far more dynamic movements that their predecessors. Moving quicker, actively controlling the forces and torques lets us tackle the problem from entirely different perspective. Most quadrupedal robots use a slightly different approach to balancing. They utilise DYNAMIC STABILITY, this means they need to constantly shift their CoM to accommodate for changes in robots configuration. You can imagine this, as balancing a weight on a long stick, if the CoM moves forward, they have moved their support points to ‘catch’ the CoM on the stable position again. This is called an inverted pendulum balancer. Dynamic stability is especially difficult as it requires a fair bit of guessing as well as very fast controllers. Another complication is that we have to control contact forces that our legs exert on the ground. With static stability, you would have moved your com when the legs are on the ground, so no slippage is possible. In case of dynamic gaits, you have to guess how hard you can push off the ground and also you have to control the force all the time. This implies that simple inverse-kinematics methods of controlling legs can no longer be used, and we need a way of measuring and controlling the force our legs exert on the ground. This requires force/torque sensors or proprioceptive sensing in joints (sensorimotor), which complicates the design a lot. You can refresh your knowledge of actuators in our first article. Another trick used by dynamic robots, is VIRTUAL SUPPORT POLYGON. Basically that means that the controller knows where it intends to put feet in the future and approximates how the support polygon will look like then, and can move the CoM to the predicted most stable position. This results in a wobble between stable CoM positions, and with right tuning can lead to really good real-world results.
Virtual Support Polygon during a dynamic trotting gait. While two feet are airborne, robot keeps it’s CoM over the support line, which is a diagonal of the virtual support polygon. Note that the polygon stretches out from the support line to the orange point, that are planned contacts for the next step.
We’ll that would be for theory. In real life there are many more variables to the equation of keeping the robot up. There are dozens of controllers that try to do the job and hundreds of implementations. We will try to dive into the rabbit hole in the following articles, to give you a deeper understanding of the legged robots world!
If you are interested in this topic and want more specific information feel free to contact us or leave a comment.
Author: Jakub Matyszczak
Co-founder, Robotics Engineer in MAB Robotics