Robots are learning how to use tails in all sorts of different ways. U.C. Berkeley had that brilliant idea of using an active tail to control the orientation of a robot in mid air, and that basic idea has expanded to running robots with and even robotic cars looking for hyper maneuverability. The thing that all of these robots have in common with each other, and with animals, is that their tails are actuated: in order to function, they depend on motors to get them to move around and do stuff. And of course they’re actuated, because what use would they be if you couldn’t control them?
Young-Ho Kim and Dylan A. Shell from Texas A&M University recently published a paper in IEEE Robotics and Automation Letters on “Using a Compliant, Unactuated Tail to Manipulate Objects.” Rather than relying on motors to actuate the tail, they hooked up a “a flexible rope-like structure” (aka a piece of rope, as far as we can tell) to a little RC car to see what they could do with it. You can think of the tail like Indiana Jones’ whip, and just like Indy has shown us across four and a half movies, there’s a lot you can do with some cleverly manipulated rope if you know what you’re doing.
What you’ll see in this very research-y video is a robot with a tail executing a series of “motion primitives” that allow the tail to manipulate objects by dragging them or hitting them. For example, here’s how the robot uses its tail to drag an object:
The robot approaches the object’s side, wraps the tail around the object, and moves forward, resulting in simultaneous rotation and translation of the object.
And here’s how it smacks an object:
The robot approaches the object from an angle, then drives with constant velocity and at the maximum steering angle while keeping a short separation distance. As the tail is moved at high speed, its internal tension stiffens the rope along its extent, and when the object is struck both rotation and translation result.
By combining these primitives, the robot can move a small object on a slippery surface to an arbitrary location. Here’s the vid:
The authors point out that there hasn’t been a lot of research focused on compliant, unactuated tails, despite the fact that they’re so simple and cheap to implement. With that in mind, we asked Kim and Shell where they came up with this idea, along with a bunch of other questions, including what kinds of practical, useful things you could do with a whip-tail robot:
IEEE Spectrum: Where did you get the idea for this research, and why do you think that nobody has investigated compliant tails for manipulation before?
Young-Ho Kim and Dylan A. Shell: Much robotics research focuses on using tools (e.g., dexterous arm manipulators drilling the wall in the DARPA Robotics Challenge). Our interest in object manipulation with tools made from flexible structures in order to help robots to carry out tasks. There are several reasons: These structures are everywhere as versatile tools— consider the use of cords, ropes, and belts. These are the simple and cheap elements to use; one doesn’t need a special expensive gripper. Moreover, those structures minimize dependence on the shape of objects. As we mention in the paper, these structures can be used in diverse ways: wrapping, dragging, tying, and whipping.
Why has nobody investigated dynamic motions before? There are multiple antecedents, but their interest is different from ours. Examples of related research areas include:
- Robotic uses for tails: tails have been used only in limited settings and primarily to enhance a robot’s agility.
- Towing objects via ropes: researchers focus on how to control the rope motions kinematically.
- A continuum manipulator: the main line of research is in the design and control of the mechanisms with kinematic and dynamic models. These are often hyper-redundant, rather than grossly under-actuated.
In our work, we sought to maximize the functionality of the rope-like structures by using the dynamics: considering the masses of the ropes, forces that lead to the motions, and tension induced via accelerations.
What did you discover while experimenting with the physical robot?
We played with the tail robot itself to manipulate objects in various ways. Firstly, we realized that some movements leave the tail in a well-defined configuration. That meant we could ignore the precise shape of the tail at all times, and only care about the layout of the tail after movements, which is important because this affects what (and how) the robot represents its knowledge and reasons about how to act.
Secondly, the robot state and the object state are coupled via the tail. We realized that it is possible to estimate the robot state relative to the object state if the robot control policy seeks to maximize this form of information. For example, the robot can stop the instant the object stops moving. Then, the object state can be used to help determine the relative location of the robot, a step which helps reduce planning complexity. Those two pieces greatly simplify an otherwise complicated space with states and transitions between them.
We explored a variety of motions with the robot, just to see how they could be used to manipulate objects. In the end, we settled on a diverse portfolio of complementary primitives to provide elements capable of optimizing multiple measures of path cost (e.g., execution cost, reliability, and the number of actions). They may describe aspects of costs that are interrelated, but we sought a set of primitives to enable synergy.
In addition to dragging and striking, are there other techniques that robots like these could use to manipulate (or interact with) objects?
Some of our lab’s earlier work on robots connected with a tether explored how a robot could move under or over a tether: in essence, the robot must know enough to ensure it doesn’t get snared up in knots. This got us thinking about ways this is be useful for manipulation.
We investigated a variety of techniques. Here are two interesting examples:
- Snaring and dragging together form an interesting motion primitive: the robot winds the tail around the objects. This motion has the advantage that, when the object is too heavy to move with a dragging motion, the snaring motion creates more friction between the tail and the objects so that the objects are controlled via the wrapped tail.
- A hooking motion is that facilitates "caging" of multiple objects and moving it to one location by one robot. To do this, we augment the tail with a fist-size sphere at the end of the tail that can hook and release objects— a bit like a ball on a chain that can be released with a flick of the wrist.
Those new motions can be added to the current portfolio of primitives that can give more options to have more synergy because the sets of motion primitives contribute some aspect lacking in the others.
Why is this research important long-term, and how might manipulation capabilities like these be useful for robots in the future?
Rope and rope-like structures are useful as tools with unrivaled versatility. In addition, they are comparatively simple and cheap. The trouble is that reasoning about them algorithmically has proven to be challenging.
Our ongoing research is studying object manipulation tasks broadly: clustering objects, separating objects, moving them, assembling and disassembling multiple pieces, and perhaps knotting and tying. By the end, we hope that this research will help to understand how a flexible compliant component can be coupled with a robot.
What are you working on next?
As we mentioned above, we’re exploring a variety of richer and more interesting primitives that may result in new approaches for manipulating objects. Simultaneously, we exploring a variety of tasks that tail robots could work efficiently on.
One example is that we are extending the single object manipulation problem to multiple objects using multiple coordinated robots. What is interesting here is that we’re exploring ways two robots can join the ends of their tails. A pair of conjoined robots can then scoop and encircle objects if they work cooperatively. Currently, we’re thinking about how to deal with the question of when to choose to transfer which object(s) together, rather than individually.
We are also interested in the generalization of the motion models we’ve explored so far. The primitives are parametrized so they can be altered for different settings, and we wish to investigate how such primitives can adapted given some information about the setting beforehand.
At the moment, this only really works with small, not too heavy objects on relatively low friction surfaces. The shape of the object doesn’t really matter (even complex shapes are okay), but the surface characteristics certainly do: if you implemented this on, say, a boat, you might have a lot more leeway on what kinds of floating things you can manipulate, and how. The other possibility that we can think of is to just scale everything up massively: say, with a rally car and a steel cable. We’d definitely watch that.
[ Paper ]