Last December, Duncan Haldane (whose research on incredibly agile bioinspired robots we’ve featured extensively in the past) ended up on the cover of the inaugural issue of Science Robotics with his jumping robot, Salto. Salto had impressive vertical jumping agility, and was able to jump from the ground onto a vertical surface, and then use that surface to change its direction with a second jump. It was very cool to watch, but the jumping was open-loop and planar, meaning that two jumps in a row was just about all that Salto could manage.
Haldane mentioned to us in December that future work on Salto could include chaining together multiple jumps, and in a paper just accepted to the 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), he and co-author Justin Yim at UC Berkeley’s Biomimetic Millisystems Lab, led by Professor Ronald Fearing, show the improvements that they’ve made over the last six months. Thanks to some mechanical fine-tuning and the clever addition of a pair of thrusters, the new Salto-1P is jumping longer, faster, and higher than ever. Prepare to be amazed.
We’ve seen other jumping robots over the years, but Salto-1P takes the cake. Watch this:
Salto is short for “Saltatorial Locomotion on Terrain Obstacles,” a reference to saltatorial animals, which are adapted to locomotion by jumping. Kangaroos and rabbits are a few saltatorial animals that you’re probably familiar with, but Salto was particularly inspired by the galago, or bushbaby, which has a vertical jumping agility that no other animal can match. The galago is able to manage this thanks to a rather clever bit of leg design which uses variable mechanical advantage, leveraging the shape of their leg to amplify the force that their muscles can deliver. For all the details on the jumping ability of the original Salto (and how it’s different from other jumping robots), be sure and read our very in-depth article about it, because this article is focused on the new and upgraded Salto-1P.
The original Salto was able to control its pitch through the use of a rotating inertial tail: By spinning the tail one way, the robot could pitch itself in the other direction. This worked very well, but only in one plane, which made Salto difficult to control. Salto-1P is, according to Haldane, essentially “Salto with half of a mini-quadrotor glued to it.”
Those two little thrusters are able to control Salto-1P’s yaw and roll: When they’re thrusting in different directions, the robot yaws, and when they both thrust in the same direction, the robot rolls. Combined with the tail, that means Salto-1P (which only ways 98 grams) can stabilize and control itself in three dimensions, even in mid-air, which is what allows it to chain together so many jumps. Other hardware modifications include a deeper crouch than the original Salto, which allows more energy to be transferred from the jumping motor into the spring, giving it the highest vertical jumping agility of any battery powered robot at 1.83 m/s.
Haldane says one issue that came when they redesigned the leg mechanism to allow the robot to jump higher is that, as he puts it, “Salto lost its friendly and forgiving nature.” The robot would occasionally “fire pieces of itself across the room when the motor tore the leg-mechanism apart.” They had to do revise the design to keep everything in one piece. The video below is a compilation of Salto-1P’s “little acts of self-destruction”:
The software that Salto-1P is running to make all of this work is an adaptation of Marc Raibert’s hopping controller from 1984. Raibert’s 3D One-Leg Hopper weighed 170 times more than Salto-1P, and can’t jump nearly as high, but fundamentally the algorithm works just as well on Salto as it did on Raibert’s hopper more than 30 years ago. However, controlling Salto-1P involves some unique challenges, because the robot spends so little time on the ground. In fact, 92 percent of the time, the robot is in the air, which means that you really have to control it in the air, which is why the tail and thrusters are necessary (as opposed to control through the leg and foot).
This results in enormous accelerations (on the order of 14 g’s), and to put this in context, Haldane compares Salto-1P to a cheetah: The robot has “a lower duty cycle than a single cheetah limb at top speed,” he says, adding: “Imagine a cheetah running at top speed using only one leg, and then cut the amount of time that leg spends on the ground in half. That’s the duty factor of Salto-1P.”
It’s important to note that when you see Salto-1P bouncing around in the video, it’s doing so untethered, but not completely autonomously: There’s a bunch of stuff going on in the background to get it to perform the way it does. The path it follows relies on motion capture, with an offboard computer (though not a particularly powerful one) receiving tracking data and wirelessly sending control commands to the robot.
“Motion capture is an easy way to track the robot that freed us up to work more on the robot mechanics,” co-author Justin Yim explains. “It’s also useful for gathering performance data since we can very closely track Salto-1P throughout its hopping.” It’s also worth noting that Salto-1P isn’t doing a lot of sensing on its own, and it’s still able to handle all those obstacles at the end of the video, which is impressive.
For more details on Salto-1P, we spoke with Haldane and Yim via email.
IEEE Spectrum: How did you decide on the control system for Salto-1P?
Duncan Haldane: Salto-1P’s pitch is controlled with the same inertial tail that Salto used. We kept the tail because it’s great for making rapid orientation corrections. The pitch angle is responsible for the forwards-backwards speed of the robot so we needed to keep the response time low to make sure we land correctly every time. The thrusters take care of the yaw and roll angles—keeping the robot upright and pointed in the correct direction.
All the orientation control is handled by three linear, independent feedback controllers, one for each axis. About as simple as you can get. We brainstormed about 40 different ways to control Salto-1P’s orientation including multiple tails, a single multi-degree-of-freedom inertial tail (like the body of the original Raibert hopper and Disney’s LEAP robot), and big steerable wings. All of those were feasible, but the thrusters ended up being the lightest and simplest solution. The whole thruster assembly weighs a little over 4 grams, and it was hard to do better than that.
[The video below] might be my favorite experiment. We tried to see how low we could get Salto to jump, and it didn’t quite keep up at the end there.
You mentioned that Salto-1P’s duty factor [the amount of time the robot spends touching the ground] is twice as fast as a one-legged cheetah would be. Can you elaborate on that?
Haldane: When we got that duty factor data, our reaction was “yeesh.” The cheetah analogy gives you a good idea of how unnatural it is, but maybe it isn’t too surprising. We built Salto as a tool for investigating saltatorial locomotion— big jumps chained together (we’re getting >1-meter high jumps continuously). Because we’re doing big jumps with a comparatively short leg, we have really large accelerations on the ground, which launch us off quickly.
The duty factor is the percentage of time the robot spends touching the ground, and it turns out to be super low for saltatorial locomotion with Salto-1P. The low duty factor means high accelerations on the ground, and very little time to do any control with the leg. So for saltatorial locomotion we end up doing most of our control in the air, which is a bit strange for a legged robot.
Was it at all surprising that Marc Raibert’s hopping controller from 1984 worked so well at controlling Salto-1P?
Justin Yim: Raibert’s original hopper was much larger and did not jump as high as Salto-1P. The large difference in size and jumping scale meant we had to tune the control gain constants, but we kept the form of Raibert’s control algorithm exactly the same. I think this result is really cool for two reasons. First, the control algorithm’s performance at vastly different scales demonstrates the power of the model simplifications selected when developing the controller. Second, the ease in applying the controller to our robot validates our choice to make Salto’s leg behavior closely match the Spring Loaded Inverted Pendulum (SLIP) model.
A large part of the engineering effort in designing Salto’s leg was making the complex system of linkages and gears behave like a simple spring moving up and down in a straight line with a variable mechanical advantage. Not only does Salto’s foot extend in a straight line from its body, the motion of all of the little pieces of Salto’s leg are coordinated so that their momentums cancel each other out almost exactly. This made the control problem much easier, and Raibert’s hopper controller (based on the SLIP model) was well suited to the task.
How efficient is Salto?
Yim: Salto’s efficiency is pretty bad since it wasn’t a major consideration for the first prototypes. Its battery lasts only a few minutes since it’s so small. We run the robot for up to 2 or 3 minutes and then charge it up. We haven’t yet tuned Salto for efficiency; we could more than double the operational life but we haven’t bothered yet.
Interestingly, like running animals, Salto gets more efficient the faster it runs until it can’t run any faster. Salto uses similar amounts of energy for each jump; it takes only slightly more energy to jump further. This means that the faster Salto goes, the further it gets with each jump so the less energy it uses per distance. We tuned Salto’s leg for performance and not efficiency, so it wastes more than half of its energy reorienting its body and very inefficiently retracting its leg in the air. We would make Salto much more efficient if we tuned its aerial behavior.
Haldane: I think some energetic studies on Salto-1P’s locomotion are warranted. It’s tough though, because it can cross the whole experimental chamber in two jumps. Hard to get datasets that way. Salto-1P jumps as well laterally as it does forwards and backwards, mostly because it’s just one leg and it goes where you point it. Think hyper-aggressive pogo-stick. Jumpers are good in terrain where good spots to put a hand or foot are small and far apart. Also good if you want a small robot to be able to hop up onto a table, up stairs, or simply move around in a human-scale environment.
What are you working on next? Is there potential to see Salto-1P (or a descendant) interacting with terrain and obstacles like the original Salto, but perhaps in a more controllable manner?
Yim: Yes! We are working on many new improvements to Salto with the aim of enabling better controlled interaction with obstacles and terrain. This work includes landing control and strategies to get Salto jumping off of walls more than once.
Duncan Haldane is off to do something secret and probably awesome that we may be able to tell you about in the future, and Justin Yim will be taking over the work on Salto from here on out. We’ll be catching up with him at IROS in a few months, when the paper on Salto-1P is officially presented.