Bruce Donald, Larry Gariepy, and Daniela Rus
Dartmouth
Hanover NH, USA
{brd,gariepy,rus}@cs.dartmouth.edu
In Experimental Robotics VI, Lecture Notes in Control and Information Sciences, ed. P. Corke, Springer-Verlag, 1999 (to appear).
We are working on distributed manipulation problems, in which two or more robots apply spatially-distributed forces to rearrange the objects in their work space; the computation is distributed among the robots so as to qualify as a distributed computation. In our previous work [10,17,8,9] we presented several distributed manipulation protocols for non-prehensile pushing and reorienting of large objects, where the robots have no models of these objects, there is no explicit synchronization between their actions, and there is no explicit communication between the robots. In this paper we describe a new class of distributed manipulation algorithms in which multiple mobile robots manipulate large objects using ropes.
We are implementing a system in which multiple robots cooperate to move large objects such as furniture and boxes using a constrained prehensile manipulation mode, by wrapping ropes around them. In our system, two RWI B14 robots are linked by a long rope (5 meters) which is tied around the ``waistline'' of the robots. This system can rotate and translate objects by wrapping the rope around them and pulling on the rope in a coordinated fashion. The rope acts as both coupling and indirect communication medium in this system, much like the hands of a dancing couple.
Manipulating objects with ropes has several advantages over the direct manipulation of an object using a team of robots [17,8,9]. First, the method allows for the parallel and synchronized manipulation of multiple objects. (That is, several objects can be wrapped together). Second, wrapping a rope around an object permits constrained prehensile manipulation with non-prehensile robots. The rope can conform to any object geometry on-line, in that the same wrapping protocol works for all geometries and there is no need to specify a model in advance. Finally, the rope can be viewed as a tool that allows the robot system to exert torques that are larger than the torque limit of each individual robot. Our notion of constrained prehensile manipulation is different than the classical definition of prehensile manipulation, which usually denotes a force closure grasp. In constrained prehensile manipulation, perturbations along any differential direction can be resisted (in our case, due to the taut rope) but the object can be moved only along certain lower dimensional degrees of freedom. Thus, constrained prehensile manipulation systems are non-holonomic.
This approach to distributed manipulation is inspired by a class of
biological systems, including flagella and cilia. Many bacteria
possess flagella - that is, long, protein-containing hair-like
appendages that propel the bacteria through liquid media or across
solid surfaces, usually toward a desired nutrient or away from a
deleterious agent. In biological systems, these thin helical
filaments self-assemble from 53-kd sub-units of a single protein,
flagellin. An E. coli or S. typhimurium bacterium has
about six flagella, which are about 150 Å in diameter and 10
M long. Bacterial flagella are much smaller and far less complex
than eucaryotic flagella and cilia. Artificial flagella and cilia
could, in principle, permit robot systems to combine structure and
function, and allow dynamic and automatic reconfiguration in response
to environmental challenges. Such physical mechanisms allow unit
modules to dynamically and automatically configure themselves into
more complex robots, or for more complex tasks (for example,
manipulation vs. locomotion). In particular, aggregations of flagella
or cilia may be able to self-organize into the optimum configuration
for a manipulation or locomotion task. Artificial Cilia with
active control have already been demonstrated for distributed
manipulation tasks on the micro scale, by our group and
others [3,4,5]. Artificial flagella are more
difficult to construct. As a first step towards exploring the power of
distributed manipulation using artificial flagella, we have built a
system of distributed robots employing synthetic passive
flagella, which we term ``ropes.'' These experiments allow us to
``factor'' the power gained in a flagellary system into two
components: (1) the passive kinematics of the ropes/flagella, and (2)
the additional actuated degrees of freedom gained by active control of
the flagella. In this paper, we explore the power of (1), using
entirely passive flagella/ropes. Note, however, that the
flagella/ropes can move and effect manipulation when their ``parent''
robots move; however, they cannot be independently actuated. Thus, our
work explores a new kind of underactuated distributed manipulation
system based on a simple biomimetic model. As we will see later, this
system may be encoded and analyzed as a non-holononmic system for
distributed manipulation.
Consider the task whose goal is to change the pose of a large box, or a group of boxes. A team of robots can use non-prehensile strategies such as those described in [17,8,9] to accomplish this task. A different approach is to use a constrained prehensile strategy. Because the objects we wish to move are large, it is impractical to envision robots equipped with big enough grippers to do such manipulation tasks. Instead, we focus on strategies that augment the basic architecture of mobile robots with simple tools. In this section we describe an approach where the robots can achieve a grasp on large boxes or collections of objects by wrapping the objects with a rope (independent of the overall geometry). We then explore cooperative strategies for manipulating an object wrapped with a rope. Our experimental infrastructure is described in Section 2.1. Section 2.2 describes a system that implements such strategies. Section 3 describes our experimental results with this system. Section 4 describes some interesting issues related to the geometric foundations of motion control [15] in the context of a mechanical analysis for these motions.
Our distributed manipulation team consists of three mobile robots: two RWI B14 robots equipped with sonar, discrete contact sensors, IR, and radio modems; and one RWI Pioneer robot equipped with sonar, a radio modem, and a parallel-jaw gripper. The B14 robots are named Bonnie and Clyde and the RWI Pioneer robot is named Ben. We augmented the basic hardware of these robots by using a long rope (over 5 meters) which is tied at one end to Bonnie and at the other end to Clyde. We incorporated a tool in Ben's gripper that extends the effective width of the gripper from 2 cm. to 15 cm.
The distributed manipulation system consists of three robots: Bonnie and Clyde, which are linked by a long rope (5 meters) tied around their ``waist-lines'', and Ben, who is free to move and carries a rope grasping tool. When an object is wrapped and constrained by the rope, we say it is bound. Bonnie and Clyde are unable to bind an object by themselves; therefore Ben acts as an ``enzyme'' to catalyze the binding ``reaction''.
The distributed manipulation system developed using the three robots consists of three skills for manipulating objects with ropes: tieing a rope around a large object or a collection of objects, effecting rotations on a bound object, and two ways of effecting translations on a bound object. The control for each skill is implemented as a protocol using active and passive robots. We now detail the components of this system.
![]() |
We have developed a control algorithm for this skill and implemented it using two RWI B14 robots and one Pioneer robot (see Figure 1). In the first phase, the B14 robots are on the same side of the box. Clyde, the active robot (the right robot in Figure 1) moves so as to keep the rope taut around the box. Bonnie, the left robot in Figure 1, is passive and stays in place. The control for encircling the box is implemented as hybrid control of a compliant rotation. The robot starts with a calibration step to determine the level of power necessary to achieve rotational compliance to the box. The robot tries to move in a polygonal approximation to a circle. Due to the radial force along the rope, the robot's heading complies to remain normal to the radial force, thereby effecting a spiral. The robot continues this movement until it gets close to having to cross the rope. The following function implements a half-tour of the box:
(define (half-surround-box)
(let* ((initial-heading 0))
(rotate-power (calibrate 1 200))
(set-translate-velocity! 200)
(set! initial-heading (rotate-where))
(let repeat ()
(translate-relative 100)
(if (and (= 0 (contact-mode)) ;Stop after 165 degrees
(< (abs (- initial-heading (rotate-where))) 165))
(repeat)
(stop)))))
The first phase ends when the encircling robot has completed a 165 degrees tour around the box. In the second phase, Clyde crosses the rope. The algorithm requires Bonnie to drop the rope to the ground to enable Clyde to drive over the rope. A simple forward movement of Bonnie would cause the rope to drop to the ground, but it will break the grasp. Furthermore, the inverse move is not guaranteed to reestablish the grasp because the rope can slide under the box. Thus, it is important to maintain the partial grasp on the box during the crossover. Our approach is to use a Pioneer helper robot, that can support the rope while the passive robot gives slack.
The algorithm for the second phase starts with Ben locating the corner of the object closest to the Bonnie. Ben uses its gripper to push the rope against the box, thus securing the rope grasp. Then Bonnie gives some slack in the rope. In the third phase, Clyde crosses over the rope. In the fourth phase, Bonnie tightens the rope. The tension in the rope signals the helper to let go and move away.
![]() |
We have developed a control algorithm for this skill and implemented it using two RWI B14 robots (see Figure 3). The algorithm for translations iterates the following phases. In the first phase the active robot translates forward with velocity va. The passive robot follows along feeling Fp and keeping the rope taut. This action causes the robot to translate. When this phase is executed for the first time, it terminates with the passive robot sensing contact with the object. This is called the calibration step. During a calibration step, the passive robot measures the approximate distance to the object. In subsequent repetitions of this phase, the passive robot uses dead reckoning to decide when to stop.
In the second phase the robots decrease the tension in the rope and translate together in the opposite direction. The object does not move in this phase and the rope slips against the object. The effect of this phase is to re-grasp the object so as to move the active robot closer to the object.
All code for our system is publically available on the WWW; send email to {brd,rus}@cs.dartmouth.edu to obtain the source.
Each experiment begins with the two B14 robots, Bonnie and Clyde situated on opposite sides of a box, with a rope strung between them. The helper robot, Ben, is situated next to the side of the box closest to the rope.
The binding phase begins with Clyde performing a calibration routine. Let Fp be the force on the passive robot (Bonnie) and Fa the force on the active robot (Clyde). In order for the initial rope tension not to affect the calibration step, Clyde first turns 90 degrees to face toward Bonnie, and moves forward to release all tension in the rope (Fa = 0). He then measures the amount of rotational power necessary to achieve rotational compliance.1 Ready to begin, he now returns to his original position and orientation.
Clyde applies the rotational power he just computed, and begins to move forward. As he moves forward, the tension in the rope combined with Clyde's state of rotational compliance causes him to turn and follow a (piecewise) circular path around the box. The tension in the rope stays roughly constant ( Fa = 4 lbs.) and Clyde monitors his odometry so that once his torso has rotated through 180 degrees, he will stop.
At the point he stops, he should be less than two feet from the length of rope running from Bonnie to the box. Now, he waits (for a predetermined amount of time, about 30 seconds2) and the action shifts to Bonnie and Ben.
Through this first phase of the experiment, Bonnie and Ben have been dormant,3 but now they come to life (using timing delays: there is no communication that occurs between Clyde and the other two robots at this point). Bonnie turns toward the box, and enters a state of translational compliance. Ben seeks out the corner of the box nearest to both the rope and to Bonnie. Once he locates the corner, he moves out and aligns himself with the box diagonal passing through that corner. He is now ready to grasp the rope against the box, and he slowly begins moving toward the corner.
As Ben's left claw encounters the rope, it exerts a force upon the rope that drags Bonnie a little way forward. However, at this point he must stop to avoid a motor stall (he is alerted to his contact with the rope using his touch sensors). When Bonnie notices that she has moved, she takes this as a signal from Ben that he is almost in position. At first, she gives just a little bit of slack ( Fp = 1lb.). This allows Ben to get in position against the box once he re-engages his motors. After waiting a couple of seconds, Bonnie assumes that Ben is in position, and she moves forward some more. This time, the segment of rope between Ben and Bonnie falls to the ground. Note that for the crossover phase, Fa and Fp are not equal! Fa is still about 1 lb., whereas Fp is 0 lbs.
Now the stage is set for Clyde to actually cross over the rope. When his timeout expires, he once again goes to a state of rotational compliance, and moves forward for another 45 degrees worth of rotation. He then goes to a dormant state again, waiting for Bonnie and Ben to tidy up. When Bonnie wakes up, she backs up to retension the rope (so that once again, Fp = Fa = 4 lbs.). This has a side effect of signaling to Ben that his job is done. The tension in the rope actually moves him backward a little bit. When he detects this movement, Ben backs up and moves out of the way so that Bonnie and Clyde can manipulate the box.
In order to perform flossing and ratchet tasks, Bonnie needs to move around to the opposite side of the box from Clyde. So she now goes to a state of rotational compliance, and moves forward for about 135 degrees worth of rotation. When she reaches the final position, she rotates 90 degrees to face the box. Clyde does the same, and the two robots are now ready to perform manipulation tasks with the box.
The ratchet algorithm translates an object. However, one side effect of the ratchet algorithm is that the box also rotates as it translates,
The setup for ratchet assumes that a wrapping operation has been performed, and that the robots are positioned on opposite sides of the box, facing each other (Figure 4). For a ratchet operation, we designate one robot to be active, and the other to be passive. The active robot will do the work of moving the box, while the passive robot's main job is to help maintain the ``grip'' on the box with the rope. Initially, the rope is at moderately high tension ( Fa = Fp = 8 lbs.).
In order for the robots to be in synch, the passive robot begins the experiment by signaling the active robot that it is ready to begin. The signal that is used is a small tug on the rope - just enough for the active robot to notice itself moving. The active robot begins the experiment by sitting in a loop that monitors the odometer, while maintaining a state of translational compliance. When it notices movement, it switches into its active role.
After giving the signal, the passive robot goes into a state of
translational compliance. The active robot begins towing both the box
and the passive robot (at this point, we have
Fa = Fp =
[friction resistance of the box] + [resistance of
the passive robot] which in practice is about 15 lbs). The active
robot will continue pulling until it senses the stop signal from the
passive robot. During the first iteration, this occurs when the
passive robot senses with its bump sensors that it is touching the
box. To signal the active robot, the passive robot ``digs its heels
in'' by applying significant power to its translational motors in the
direction opposite to the direction of motion (
).
The effect of this is to slow down the active robot (Fa reaches its
maximum value at this point). While the active robot is pulling the
box, it is also monitoring its velocity (Va). When Va drops
below a specified threshold (we use approx.
.65Vmax, where
Vmax is the velocity with which the robot was commanded to move)
the active robot assumes it is receiving the stop signal, and it
stops.
The passive robot has now gone as far forward as it can with the length of rope it was given. It is time to ``ratchet.'' In order for the rope to slide around the box (as opposed to moving the box), the tension in the rope must first be minimized. This is easily accomplished by having the active robot begin to move back toward the box immediately after receiving the stop signal, but having the passive robot wait for a short time (about 1.5 sec.) before moving away from the box. During this phase, Fp = Fa < 1 lb. Now the roles are pretty much reversed. The active robot monitors its bump sensors to watch for contact with the box, and the passive robot moves, towing the rope (which slips along the box), while waiting for the stop signal from its partner. Again, the stop signal is transmitted through the rope. However, one important difference is that the active robot is not in a state of translational compliance. It is moving of its own volition, as is the passive robot.
Once the active robot reaches the box, the first iteration of the ratchet task is complete. Further iterations can now be executed, each one moving the box further along its path. We decided to implement one minor change for the subsequent iterations, however. Rather than having contact with the box determine when the stop signal was issued, we preferred instead to have the robots measure the length of rope they have to work with during the first iteration, and use that measurement during later iterations, so that it was not necessary to bump into the box every time. This gives the experiments a smoother feel.
The flossing algorithm reorients an object. The task itself does not actually effect a pure rotation, but also translates the box slightly as a side effect. To demonstrate reorienting the box in either direction, we have the robots perform a kind of tug-o-war over the box. The algorithm for this task is symmetric with respect to the two robots. They simply take turns towing the box (and each other), and rotating the box back-and-forth. The robots take turns as the active and passive members of the experiment. We use a stop signal just like the one in the ratchet experiment to allow the passive robot to signal the active robot that it is time to switch roles.
We have implemented the distributed manipulation skills described in Section 2.2 using the robots described in Section 2.1. The RWI robots are programmed in MOBOT-SCHEME [16] and the helper Pioneer robot is programmed in C++. Figure 4 show some snapshots from a typical run.
![]() |
![]() |
Figure 6 shows reliability data for some recent experiments run with this system. The failures of the binding skill were related to sensor inaccuracies. The majority of the observed errors were due to the fact that Clyde, the active robot during binding, uses odometry to terminate the first phase of the algorithm. This method introduces an error of up to 3 feet in the positioning of the robot relative to the rope and leads to the failure of the rope crossing step. The rest of the errors were due to the helper robot, Ben, who uses odometry to locate the corner of the box. Occasionally, Ben misses the corner and thus does not get a good grasp of the rope. The failures in flossing and ratcheting were due to signaling errors. Occasionally, the passive robot stops prematurely. We believe that these errors are due to low battery levels during those specific experiments, but more investigation is necessary.
![]() |
It is possible to develop a simple manipulation grammar [3] to describe our manipulation system. The manipulation algorithms described above provide four basic skills:
Let us call these primitives B, T, O, and G, respectively. If O is an orientation step, let OR be the reverse step, performed by reversing the robots' direction. In this case, flossing can be written as (O, OR)*, the repeated iteration of O followed by OR. Note that no direct communication is required to switch between O and OR; the signal is transmitted through the task (the rope).
Similarly, the ratcheting operation can be written as
.
Again, no direct communication is required to switch between
regrasp and orientation/translation steps. To summarize:
All operations must be preceeded by a binding step B. For pure translations, Bonnie and Clyde should be equidistant from the box. That can be accomplished inserting a regrasp step G. Thus, a simple translation could be accomplished by (B,G,T).
In mechanics, systems may be holonomic or non-holonomic.
In general, a holonomic constraint is a wholly integrable
sub-bundle E of the tangent bundle. The system outcome for a
non-holonomic system is path-dependent. Non-holonomic systems have
been studied in robotics. Examples include: car-like robots,
tractor-trailers, bicycles, roller-blades, airplanes, submarines,
satellites, and spherical fingertips rolling on a manipulandum. In
robotics, a non-holonomic system is usually defined by a series of
non-integrable constraints of the form
on the
tangent bundle [1,13,2,11,14]. For example, whereas
holonomic kinematics can be expressed in terms of algebraic equations
which constrain the internal, rotational coordinates of a robot to the
absolute position/orientation of the body of interest, non-holonomic
kinematics are expressible with differential relationships only. This
distinction has important implications for the implementation of a
control system.
![]() |
It is well known (see Figure 7) that many underactuated manipulation systems are naturally modeled as non-holonomic systems. Figure 7 illustrates a one-sided non-holonomic constraint: R can push O but not pull it. Therefore only `northeast' diagonal pushing motions are possible. On the other hand, if R could pull O, then diagonal pushing motions in either direction (northeast or southwest) are possible. This would define an isotropic nonholonomy.
Our system admits an isotropic non-holonomic model as follows: Let
R1 and R2 be the positions of Bonnie and Clyde (respectively),
and let r be one half the diameter of the manipulandum (for a
sensible definition of the diameter of a polygon,
see [12]). Although in
general Ri is two dimensional, for the sake of illustration, assume
that
.
With the rope taut, the distance between
R1 and R2 may be closely approximated as fixed once the box is
wrapped. Thus the combined, simultaneous configurations of R1 and
R2 may be collapsed into a single parameter
,
representing the rope position. Finally, let
be the
orientation of the box, and x its translational position.
![]() |
Now, let us consider a single orientation step O(Figure 8-left). When the robots move to manipulate
the box, it translates and rotates in a non-linear fashion that
depends on the box geometry (Figure 8). For the
orientation task, the progress this strategy makes is the average
slope of the linearization of this curve in d-
space. This
slope is approximately
.
Non-holonomic analyses can also be done for translation (T), flossing (O,OR)*), translational ratcheting (T,G)*, and orientational ratcheting (O,G)*. (Figures 8, 9, and 10).
![]() |
By interleaving regrasp steps with translation steps, the box can be
translated repeatedly; the motion in configuration space is like a
`ratchet' (Figure 9). Note that not all of the
degrees of freedom (DOF) in the configuration space are accessible;
only a 1D subset of the DOF are differentially possible. Therefore,
this kind of ratchet maneuver must be employed to access all the DOF.
Note that the ratchet maneuvers are similar to parking maneuvers
common in non-holonomic motion planning for wheeled
vehicles [13,2,11,14]. A
similar picture is obtained by interleaving regrasp steps with
orientation steps, except the orientation steps are non-linear
(Figure 10). By interleaving all three kinds of
steps (translational, orientation, and regrasp), arbitrary
poses of the box can be achieved. This corresponds to a
non-holonomic ratchet in the 3-dimensional configuration space
parameterized by
(Figure 10). Both 2D and 3D ratchets can be viewed
as manipulation gaits in a non-holonomic control space.
![]() |
We implemented the three manipulation skills and experimented with a distributed system of three robots that can bind an object, rotate a bound object in place, and translate a bound object. In our system, the robots can also make transitions between these skills: a binding operation can be followed immediately by a flossing or ratcheting operation. Flossing and ratcheting can also be alternated. Our experimental results show levels of reliability between 72.5 % and 90 % for the manipulation skills.
This paper describes research done in the Dartmouth Robotics Laboratory. Support for this work was provided in part by the following grants from the National Science Foundation: NSF CAREER IRI-9624286, NSF IRI-9714332, NSF IIS-9818299, NSF 9802068, NSF CDA-9726389, NSF EIA-9818299, NSF CISE/CDA-9805548, NSF IRI-9896020 and NSF IRI-9530785. We are grateful to Keith Kotay for his help in many aspects of this work.
This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)
Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -local_icons -white -t ISER 99 - Donald, Gariepy, & Rus -split 0 -show_section_numbers paper-pub-web.
The translation was initiated by Bruce Randall Donald on 1999-04-13