Nowadays, aerial transportation and manipulation using quadrotors have become topics of great interest due to the low cost and efficiency in applications such as search and rescue [cacace2016control], drone delivery [bamburry2015drones], commercial cargo, home assistance, and precision agriculture [villa2019survey]. High maneuverability, high thrust-to-weight ratio, improvements in on-board computing power, and battery efficiency have made quadrotors advantageous for performing manipulation tasks.
Approaches that tackle transportation and manipulation using quadrotors include [kim2013aerial, fanni2017new, ollero2021past]. The two major strategies in the literature are either equipping the quadrotor with a gripper or fastening device [suarez2017anthropomorphic], or using cables attached to the load [sreenath2013geometric]. On the one hand, quadrotors connected to loads via rigid connections have simpler models and controllers for object manipulation. Nevertheless, they are more susceptible to disturbances and uncertainties due to the direct interaction between bodies [mendoza2020snake, zhao2018design]. On the other hand, cable-suspended approaches consider the load either as a point-mass concentration [cardona2019cooperative] where all of the attaching cables go to the same point or a rigid body with multiple attaching points [li2021cooperative]
. The latter adds degrees of freedom in the load and avoids swinging, but it increases the complexity of the dynamics and control.
Cable-suspended approaches, in particular, consider cables to be previously attached to objects, which is not always feasible or desirable when deploying quadrotors in real environments. Avoiding human intervention to attach objects requires identifying the way to establish contact with the object. Becoming crucial to know the better location where the forces should be applied [donald2000distributed], since factors like the slipping between objects and coulomb friction forces [trinkle1990planning] might affect the manipulation maneuver. In contrast to having fastening devices or previously attached cables, we propose to use a flexible cable whose ends are attached to quadrotors that steer the cable to form contacts with objects. We refer to the cable and the quadrotors as the catenary robot. We use the cable as a non-prehensile manipulator, since it is not used to grasp or hold the object.
Flexible cables propelled by quadrotors attached at their ends are considered in the literature, modeled as a chain where every link affects the subsequent links and it is appended as a new body in the system [kotaru2018differential, goodarzi2015geometric]. However, this model requires high computational resources due to the increased number of variables in the system’s dynamics. In this work, we propose using the natural shape of a flexible cable when it hangs from its ends due to gravity, known as a catenary. This shape allows us to control the catenary robot with the less computational effort since we can determine the cable’s parameters, its span and lowest point by knowing the quadrotors’ location. Once the cable creates tension with the object, we model the cable as straight lines instead of the caternary curve.
We develop non-prehensile manipulation algorithms to move a box on a planar surface using the catenary robot, as shown in Fig. 1. We consider two manipulation modes, dragging and rolling. Dragging is well suited when friction between the box and the surface is low. In this case, the cable is placed lower than the box’s center of mass height to ensure continuous contact with the surface and smooth motion. On the other hand, rolling is advantageous when the friction is higher. Thus, the cable is placed close to the higher edge maximizing the torque over the box, rolling the box over an edge into a new position.
Ii Problem Statement
The goal of this work is to perform non-prehensile manipulation using a pair of quadrotors and a cable. We use a catenary robot tasked with moving cuboid objects on a planar surface.
Definition 1 (Catenary Robot).
A Catenary Robot is a pair of quadrotors connected by a non-stretchable cable of length with its ends attached to the center of mass of each quadrotor.
The quadrotors are identical, same actuators, mass , and inertia matrix . The name catenary robot comes from the name of the curve that the cable describes when it is held by its ends. We illustrate the catenary robot, a box, and the coordinate frames in Fig. 2. The coordinate frames are: world frame or inertial frame, with the -axis pointing upwards, denoted by ; quadrotor frame, for , located at the quadrotor’s center of mass with the -axis pointing to the front and the -axis pointing upwards, denoted by ; box frame, located at the box’s center of mass with the -axis pointing to the upper face, and the -axis pointing to the front face in the direction of motion, denoted by ;
For each quadrotor , we denote its location in the world frame by , s.t. , where is the length of the cable, and its angular velocity in by . The force experienced by the th quadrotor due to the cable’s tension is in . Each quadrotor can produce thrust and torque . Therefore, the control input of the catenary robot is . The dynamics of each quadrotor is described by the Newton-Euler equations
where is the rotation matrix in the frame of the body . The catenary robot uses its cable to interact with cuboid objects.
Definition 2 (Box).
A box is a cuboid object with width, length, and height; respectively.
It has a mass
, and inertia tensor. Its position in is and its angular velocity in is . The catenary robot can use the cable to pull the box in different directions. When the cable touches the vertical edges of the box, there is at least one intersecting point between the cable and a vertical edge. We denote the closest intersecting point to the th quadrotor by in . The friction force between the box and the ground is . Since the tension in the quadrotor frame is , the box feels the opposite tension . Thus, the dynamics of the box is described by
A cable is highly versatile, offering multiple ways to interact with objects, e.g. pulling, tightening, dragging. In this paper, we focus on non-prehensile manipulation [ruggiero2018nonprehensile] by performing two main actions: dragging and rolling. We employ the catenary robot to perform these actions and move the box on a planar surface.
Definition 3 (Dragging action).
Dragging is the action of translating or rotating the box on the ground. It involves motion on the -plane and rotation with respect to the -axis of .
Note that here the box is not able to roll along the -axis or the -axis. Dragging the box is advantageous when the friction force is low, e.g., slippery surface like ice, since the pulling forces from the robot directly contribute to the box’s motion.
Definition 4 (Rolling action).
Rolling is the action of translating the box by making it rotate around its - and -axis.
This action is relevant when the friction force with the ground is high, making it difficult to drag. In this paper, we want to use the catenary robot to manipulate a box on a planar surface autonomously. This leads us to the following problem.
Given a box with dimensions , mass on a planar surface, use the control input of the catenary robot to perform rolling and dragging actions.
We consider changes on the ground material that might affect the friction force experienced by the box, forcing the catenary robot to switch between dragging or rolling. However, if the friction constraints are met, it is possible to change from dragging to rolling just by manipulating the contact points.
Iii Interaction Between the Robot and the Box
In order to interact with the box, we define three main states (see Fig. 3):
Iii-1 Free-catenary state
In this state, the cable is not in contact with the box or the ground. The objective of this state is to move the robot near to the object. The catenary robot can move freely in the environment and is not having any interaction with the box. Thus, the configuration space of each body (two quadrotors and one box) is . In our previous work [catenaryrobot], we presented a controller to track a desired trajectory for the catenary robot in the free-catenary state, specified by its reference point , orientation , and span . Hence, we can move the robot to approach the box. This paper focuses on the following states when there is contact between the cable and the box.
This strategy allows to place the cable on the desired contact point. Depending on whether the box is going to be dragged or rolled, the altitude changes. By changing the distance between the quadrotors the tension on the hanging cable changes. Getting higher tensions in the cable offers a better opportunity to avoids slipping the cable on the box, making it easier to place the cable at the desired contact point. Once the cable touches the box, we switch to the next state.
Iii-2 Initial-contact state
This state starts when the robot is in free-state, approaches the box and then the cable point touches the vertical face of the box. The location of the point on the box frame and the span determines the effect of the tension on the box. Therefore, depending on the action, either dragging or rolling, we need the optimal way to approach the box. It is also worth taking into account that the point of contact between the box and the cable affects directly the amount of force needed to move the box. In Fig. 4, we define the dragging threshold where the cable should be located in order to maximize the linear movement of the box. The angle of this point of contact to the quadrotors is also important and is discussed later. Once the cable changes from the catenary shape to form three straight lines due to the tension, we switch to the next state.
Iii-3 Action state
In this state, the cable is in contact with the box, and the cable between the box and the quadrotors is completely straight. Friction between the cable and the box is critical since depending on the tension vector the cable can slip loosing the contact with the box.
During this state, each quadrotor needs to maintain the contact point and its location with respect to the box
where is the angle formed between the box and the cable from the top view as shown in Fig. 5(c), is the angle on the contact point to the quadrotors shown in Fig. 4, is the euclidean distance from the point of contact to the quadrotor, and is a rotation on axis of an angle . Since , we can compute the the quadrotor’s trajectory for position, velocity, and acceleration in the world frame, as a function of the box trajectory
The values of and depend on the action, since determines the arm vector that generates the torque for rolling, and determines the direction of the tension. We expand this discussion in the next section.
It is important to highlight that the configuration space changes depending on the action. During the dragging action, the configuration space is . is defined by the translation of the box on the -plane and the yaw angle of the box . is defined by the quadrotors’ orientation. is defined by the two universal joints formed by the contact of the cable on the box. During the rolling action, the configuration space is , note that the only change is given by adding a rotation angle in which the box is going to be rolled.
These three states apply for the two types of actions. An important factor to consider is the friction on the floor, if the friction is low, it might be easier to drag, but if it is high, rolling would require less effort for the quadrotors.
Once the cable looses contact with the box, due to either cable slips or transportation task completion, the robot comes back to the Free-catenary state.
Iv Considerations and Control Design
In this section, we explain the relevant considerations to choose between dragging and rolling. Then we show the control design to make the box track a desired trajectory.
Iv-a Contact points for dragging
In order to translate and rotate the box during the dragging action, we need to control and on the -plane. We illustrate the side view of the dragging action in Fig. 5. In this case, we focus on generating pulling forces such that they maximize the force in the direction of motion.
To perform dragging, the catenary robot places the points of contact lower to the height of the box’s center of mass, and in the opposite edge of the desired movement direction. This maximizes the component of the force applied in the direction of the movement and minimizes torques in the box as Therefore, placing the quadrotors in appropriate locations is important. We use angles and that are always referred to the contact point and the quadrotors. For forward motion, the best height would be as low as possible, i.e., , with and , i.e., close to the ground and the tension pointing forward. Then, all the tension from the quadrotors can be used to move the box forward. However, the angle cannot be achieved at the minimum point because that would imply that the quadrotor is on the ground. Additionally, the angle does not maximize the torque that controls . For small values of , the prop-wash from the quadrotors generate forces in the opposite direction of motion, increasing the difficulty to manipulate the box.
Iv-B Contact points for rolling
For rolling the box, torque must be maximized. Here, the friction force contributes to the total torque. Thus, the catenary robot should be placed at the corner to reach the maximum distance between the center of mass and the contact point
which maximizes the moment armand the force should have an angle with respect to the moment arm . However, to avoid the catenary robot to slip and lose the maneuver we set as the distance bellow the corner and the angle to be almost perpendicular to the arm moment as shown in Fig. 5.
Here, is directly affected by angle shown in Fig. 5(c). This angle should be minimized for the catenary robot to apply the maximum force in the direction of the desired movement. However, at this point the downwash generates an opposite force over the box and is not longer optimal. So, it is necessary to find an angle where is maximized, but at the same time the downwash effect is minimized.
Vertical slipping between the cable and the box is considered. Although, there is no dynamics or control law to work on this case. We assume that whenever slipping occurs, the catenary robot goes back to free mode and starts the maneuver again. The contact point for rolling action is and placing of the quadrotors with respect to the box performing translations and rotations are as follows
Then, quadrotors positions in the world frame are given by
Iv-C Control Design
To drive the box through a trajectory defined by the position , we compute errors in position and velocity of the box as and which are then used for computing a PID controller as
where , , and are appropriate diagonal gain matrices. The integration term here serves as a suppression of the error generated by ignoring the magnitude of the tension applied by the box. This force is then translated as the desired acceleration of each quadrotor in . The design of this quadrotor trajectory and controller is shown in previous work [catenaryrobot]. For orientation we compute the yaw angle of each quadrotor
Then, desired rotation is defined by computing the desired angle of the box as
From (3) and (4), the tension can be isolated to get the following
Then, we can use the geometric controller in [lee2010geometric] to generate the tension and track the trajectory from (6)-(8).
V Experiment Results
We designed three different experiments to test our method. First, we test the dragging action. We translate and rotate the box on the surface. Second, we test the rolling action. The catenary robot pulls the box to rotate it around the -axis. Third, we test switching between dragging and rolling. We drag the box to the desired distance and then switch to roll action.
Experimental Testbed111The source code for simulation and implementation is available at
https://github.com/swarmslab/Catenary_Robot: We use a custom Crazyflie quadrotor based on the Crazybolt board with brushless motors for a higher payload. We use a motion capture system (Optitrack) at 120 Hz to localize the quadrotors and box. The internal IMU sensor gives the information of the angular velocities. We use a cable of length m, a box with dimensions m and weight of g.
As we described previously, the contact point has to be as high as possible. We choose cm to leave a small gap of cm between the contact point and the top of the box, in case of small slips of the cable. On one side, when the angle is close to , it maximizes the torque, but it is easy to slip and lose contact. Satisfying that , the angle would be . On the other side, a small angle minimizes the slipping when is close to zero, but the torque is reduced, requiring more effort from the quadrotors. We tested multiple angles, finding that angles below reduce the slipping. In our final experiment, we defined , because this was the largest reliable angle that reduces the slipping during the rolling action. The angle is , because it reduces the force of the prop-wash in the opposite direction of the motion. In Fig. 7, it is shown how the catenary robot makes the box track the trajectory , , and drives from to . The vertical orange gap indicates the time interval when the cable is pulling the box to perform the rolling action. Errors in -axis and -axis get bigger when the cable starts to apply tension on the box. As the required tension is unknown the controller is not able to maintain error close to zero. It is possible to see that in the -axis the controller drives the quadrotors downwards until it reaches a predefined minimum height to avoid hitting the floor set at .
In dragging action, we found that the contact point between the cable and the box should be close to the box base for the catenary robot to reduce the potential rolling. The desired angles of the contact point are , and . Note that is not zero due to the prop-wash generating a force in the opposite direction on the box. In Fig. 8, the desired trajectory for the box is set as , , , and . The position of the box tracks closely the semicircular trajectory. It can be seen that quadrotors modify its trajectory to correct box position and orientation. The average error in position is and
, and its standard deviationsand , . The error for yaw-angle is , and their standard deviation .
Dragging and then rolling experiment
For this experiment, we start moving free from 0 to 11s, then we switch to dragging from 11s to 16.5s, and, finally, switch again to rolling. In Fig. 9, all of the stages are shown and marked by color regions. The greatest errors in -plane are when the catenary robot is dragging, while the greatest error in -axis is when the catenary robot is rolling. Which are caused by lack of feedback about the tension experienced by the quadrotors caused by the box.
Vi Conclusions and Future Work
In this work, we use a catenary robot to manipulate a box on a planar surface based on control strategies that take advantage of the natural shape of hanging cables due to their weight, i.e., catenary. We design two strategies for two manipulation modes of boxes, dragging and rolling. When friction force with the ground is lower, dragging is advantageous. In contrast, performing rolling is difficult when friction forces do not generate enough torque. However, if friction constraints are met, we design a controller able to place the cable in different contact points and perform either dragging or rolling arbitrarily. The strategy depends on the contact point and angles between the box and the quadrotors. Three experiments were implemented to show the performance of the controllers manipulating an actual box. In future work, we will consider the interaction of multiple catenary robots to manipulate the box on the ground and lift it and manipulate it in the air.