See discussions, stats, and author profiles for this publication at: [Link]
net/publication/265339285
Simulation and Control with XDE and Matlab/Simulink of a Cable-Driven
Parallel Robot (CoGiRo)
Article · August 2015
DOI: 10.1007/978-3-319-09489-2_6
CITATIONS READS
30 4,401
4 authors:
Micaël Michelin Cédric Baradat
Tecnalia Pharmed SAM
36 PUBLICATIONS 371 CITATIONS 44 PUBLICATIONS 856 CITATIONS
SEE PROFILE SEE PROFILE
Dinh Quan Nguyen Marc Gouttefarde
Le Quy Don Technical University Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier…
20 PUBLICATIONS 310 CITATIONS 102 PUBLICATIONS 3,363 CITATIONS
SEE PROFILE SEE PROFILE
All content following this page was uploaded by Dinh Quan Nguyen on 13 February 2019.
The user has requested enhancement of the downloaded file.
Simulation and Control with XDE
and Matlab/Simulink of a Cable-Driven
Parallel Robot (CoGiRo)
Micaël Michelin, Cédric Baradat, Dinh Quan Nguyen and Marc Gouttefarde
Abstract We present in this paper the process allowing to create a cable-driven
parallel robot (CDPR) simulation within the XDE software environment in C++
language. The elementary classes constituting a CDPR are shown with their con-
structor specificities. The winches, the pulleys, the cable fastenings and the platform
are presented. The parameterization of elements such as the cable material charac-
teristics, structure and size are detailed. An interface between the XDE cable-driven
parallel robot simulator and a Matlab/Simulink controller have been developed. In-
puts and outputs are exchanged between the controller and the simulated cable-driven
robot, exactly as it is done with a physical robot.
1 Introduction
The simulation of systems allows engineers to test concepts, improve and optimize
the design allowing substantial economy in the development process by avoiding
the manufacturing of expensive real prototypes and reducing the time of develop-
ment. This is particularly true for cable-driven parallel robot (CDPR) design where
the size of robot and then the cost can grow very fast. Classical rigid robots are
well simulated in environments such as Simulia [1], Microsoft Robotics Studio [2],
Marilou [3], SpaceClaim [4] or Solidworks [5]. In the case of cable-driven parallel
robot simulation, the highly flexible nature of the cables is extremely challenging to
simulate.
A CDPR consists of several key elements such as the cables, the winches, the
pulleys and the mobile platform. It can be seen that, to be able to successfully simulate
M. Michelin (B) · C. Baradat
Tecnalia France, MIBI, 672 rue du Mas de Verchant, 34000 Montpellier, France
e-mail: [Link]@[Link]
D.Q. Nguyen · M. Gouttefarde
LIRMM-CNRS—UM2, 161 Rue Ada, 34095 Montpellier Cedex 5, France
© Springer International Publishing Switzerland 2015 71
A. Pott and T. Bruckmann (eds.), Cable-Driven Parallel Robots,
Mechanisms and Machine Science 32, DOI 10.1007/978-3-319-09489-2_6
72 M. Michelin et al.
a CDPR, a simulation tool should be capable of at least: “correctly” simulating the
nonlinear behavior of the cables, the process of winding or un-winding cables on
drums and effectively managing different collision types (e.g. between cables-cables,
cables-mobile platform, cable-self-collision) as well as important effects such as
friction contacts (e.g. between cables-pulleys, cables-drums).
Few simulation tools have been developed with specific components to achieve
such goals. Some of these tools can be listed. Algoryx [6] or Vortex [7] are used
to create training simulators for crane or construction equipment and have to be
real time capable. Others focus on the precise and quantitative simulation of cables
for design process such as Dymola [8] or Adams [9]. The multi-physics software
Sofa [10] has been developed to provide deformable objects simulation for medical
applications, and can be used for cable modelling. However, from our experience,
obtaining stable simulations in this open-source framework is a critical issue for
a complicated CDPR scene including a lot of finite elements and friction contacts.
In the present work, we focus on the XDE [11] multi-physics software which
is more intended to research developments. We aim to develop a cable-driven
robot simulation framework based on XDE which offers the user two main features:
simulation and control of CDPR with XDE and MATLAB/Simulink.
The paper is organized as follows. Section 2 introduces the concepts of simulating
a CDPR in XDE, including the key features of XDE and the method to construct
different parts of a CDPR (e.g. winch system, cables, pulleys, mobile platform).
An illustration is made by creating the CoGiRo prototype [12] in XDE. The inter-
facing between XDE and MATLAB/Simulink is presented in Sect. 3. Finally, Sect. 4
gives some discussions on the simulation features, current issues and future work.
2 Principle of Modeling in XDE Simulation Environment
The use of XDE for CDPR simulation consists in a first step to create classes of the
different sub structures needed to model the whole robot. Indeed a eight cables robot
uses eight winches, eight cable fastenings on the platform, etc. Classes have been
developed to create the cables, winches, cable fastenings, pulleys and the mobile
platform. These classes integrate the conceptual elements needed to simulate the
sub systems. Each sub system is constituted by the assembly of the following main
elements:
• the rigid body in which we define the inertial parameters (mass, inertia matrix)
• the 3D mesh used for the collision model
• the 3D mesh used for the visual model
• the material parameters involved in the contact model
• the material parameters involved in the deformable model
• the joints between the rigid bodies to create mechanical assembly with some
degrees of freedom (DOF) taking into account dry and viscous frictions.
Simulation and Control with XDE and Matlab/Simulink … 73
Fig. 1 Original 3D mesh of the drumfrom CAD software (left) and simplified 3D mesh used in
simulation (right)
2.1 Winch Modeling
The class “Winch” is composed of two rigid bodies, the motor and the drum, linked
together by a pivot joint on which we can apply a torque via a “setWrench” method.
The 3D mesh for the motor and the drumare imported from a CAD software. These 3D
meshes have to be drastically simplified to reduce the loading time of the scene and
the computation time during the simulation (Fig. 1). For example, from the original
CAD file with 150,000 faces drum’s mesh, we have reduced by 10 the number of
faces to be able to run the simulation in good conditions. This simplified mesh is
used to compute the collision interactions with the cable via a Signorini contact law.
The position and the orientation of a winch are arguments of the constructor of the
“Winch” class which allow to get a complete winch (Fig. 2).
The moment of inertia of the drum has been computed from the CoGiRo robot
data. A gear reduction equal to three is used in the CoGiRo robot winches. Is has
not been simulated but the inertia effects have been included in the drum one as
described in the following:
• Drum inertia vs rotation axis: 0.0285 Kg m2
• Motor rotor inertia vs rotation axis: 0.015 Kg m2
• Simulated drum inertia vs rotation axis: 0.0285 + 9 × 0.015 = 0.1635 Kg m2
2.2 Pulley Modeling
The pulleys are modeled with three rigid bodies: a base to be fixed to the robot frame,
a bracket linked to the base with a pivot joint and the wheel of the pulley linked to
the bracket with another pivot joint (Fig. 3).
The 3d mesh of the wheel is used for the collision interaction with the cable. The
collision interaction for the base and the bracket are deactivated.
74 M. Michelin et al.
Fig. 2 Complete winch assembly in XDE
Fig. 3 Pulley modelling
Simulation and Control with XDE and Matlab/Simulink … 75
Dry and viscous friction parameters of the pivot joints can be tuned. The position
and the orientation of a pulley are arguments of the constructor of the “Pulley” class.
The mass parameters are:
• Bracket mass: 3.456 Kg
• Wheel mass: 1 Kg
2.3 Cable Fastening Modeling
The cable interfaces with the platform are implemented in the “Cable_Ball_Joint”
class. They are made of two rigid bodies, the base and the fastening part, linked
together by two pivot joints forming a U-joint (Fig. 4).
The base has to be welded tothe object we want to manipulate with cable and
the fastening part has to be weldedto a cable. In addition, the base integrates three
prismatic joints which are “weld”, this means that these joints are blocked but are
necessary to allow the measure of the cable tensions at the fastening location, without
producing any motion. Indeed these joints have an orthogonal disposition and give an
access to the force applied on it via “getWeldReactionForce” method. The position
of a cable interface is given versus the object linked with and which has to be given as
Fig. 4 Cable interface with platform
76 M. Michelin et al.
Fig. 5 CoGiRo platform in
XDE simulator
argument of the “Cable_Ball_Joint” constructor. The orientation of a cable interface
is an argument of the constructor of the “Cable_Ball_Joint” class.
The mass parameters are the following:
• Base mass: 0.23 Kg
• Fastening mass: 0.122 Kg
The inertia matrices have been computed considering these two parts as homogenous
cuboid.
2.4 Platform Modeling
The CoGiRo platform is made of two major element, an aluminum alloy cubic
frame and a steel fork allowing to lift up loads (Fig. 5). Two rigid bodies have been
implemented and connected together with their own 3D mesh. The number of element
faces in the fork mesh has been reduced from 13,000 faces in the original to 400 faces
in the simplified one (Fig. 6).
Simulation and Control with XDE and Matlab/Simulink … 77
Fig. 6 Fork original 3D mesh (left) and simplified 3D mesh used in simulation (right)
Fig. 7 CoGiRo cable struc-
ture
2.5 Cable Modeling
The cable modeling in XDE consists in using Reissner beam made of multiple nodes.
The number of nodes and the position of each one at the initial state have to be defined.
A 0.02 m node resolution has been chosen.
The radius of the Reissner beam which compose the cable has to be defined.
As a cable is not really a beam, we have computed the equivalent metallic section
corresponding to the cable. The CoGiRo cable (Fig. 7) is 2 mm radius and has a filling
rate of 0.5911. So the equivalent metallic section has a radius of 1.537 mm.
78 M. Michelin et al.
Fig. 8 Initial cable routing
The “Cable” class constructor needs as arguments: the winch, on which the cable
is attached, the pulley for guiding the cable and the cable interface on which the end
of cable is connected.
In a first step, the constructor computes the cable nodes position allowing the first
meters of cable to be winded on the winch (Fig. 8, left). Then the cable is routed via
two points around the pulley (Fig. 8, center). Finally, a third routing point is used
before cable connection to the cable attachment (Fig. 8, right) which is fixed to the
platform.
XDE gives the opportunity to define cables made of several coaxial materials but
in our case only one material was used. The material parameters such the Young mod-
ulus, the shear modulus, the linear mass, the damping coefficient, the torsional ratio
and the flexural ratio have to be defined in the simulation environment. The CoGiRo
cable Young modulus has been evaluated at 100e9 Pa. The shear modulus is difficult
to define and has been evaluate around 10e9 Pa. The linear mass is 0.064 Kg/m.
Except the linear mass, all the other parameters are difficult to tune within the
simulation. They may have a significant influence on the stability and the increasing
of cable tensions needs an increase of the damping coefficients to avoid instabilities.
But if we increase the damping, then the dynamic behavior is not realistic. We didn’t
reach a good tradeoff between stability and high cable tension. High loaded cable
stability by damping increase is contradictory with a realistic dynamic behavior.
To avoid cable instabilities when subjected to high tension, the XDE software
provider advices to use sampling frequencies ten times higher than the phenomenon
frequency we want to simulate.
Typically if we want to simulate a 100 Hz oscillating cable (a guitar cord for
example), we have to use a sampling frequency of 1,000 Hz, which leads to long
computation time as described in the following section.
Simulation and Control with XDE and Matlab/Simulink … 79
Fig. 9 Complete CoGiRo robot scene in XDE
In order to perform a preliminary simulation without stability problems, it has
been decided to use the following parameter values, despite the fact that they are not
realistic:
• Linear mass: 0.064 kg/m
• Young modulus: 10e9 Pa (ten times lower than the evaluated one)
• Shear modulus: 10e8 Pa
• Damping coefficient: 0.1
• Torsional ratio: 0.5
• Flexural ratio: 0.5
2.6 Complete CoGiRo Robot Scene
All the classes described before allow the user to create as much objects as needed
to create the cable-driven robot. The constructors arguments allow specifying the
position and orientation of each object easily. In Fig. 9, winches, pulleys, cables and
fastenings have been added in the scene in order to model the CoGiRo robot with
eight cables. The objective of this simulation is to pick and place a pallet. The pulleys
orientation is computed from the cable fastening position versus the winch position.
The loading and execution times of the scene depend on the number of cable nodes,
and thus on the cable length. Thus, in order to reduce the loading and execution time,
the footprint of the CoGiRo robot has been reduced. Only the relative positions of
the winches and pulleys have been modified, not the size of the different modules of
the robot. The real size of the CoGiRo robot is 16 m × 12 m × 6 m, whereas in the
simulation it is 6 m × 6 m × 3 m. With these dimensions and the node resolution,
each cable has between 400 and 600 nodes.
80 M. Michelin et al.
Motion Inverse
kinematics
generation
Data from
XDE simulator
PID joint Data to XDE
Controller simulator
Fig. 10 Simulink cable-driven robot controller
3 Interface with Matlab/Simulink Controller
With the aim of controlling the simulated CoGiRo robot, an interface with
Matlab/Simulink has been developed, which uses Matlab Engine C++ library
within the simulator project. Matlab is configured to be used as a server and the
simulat orcan use the functions available in the Matlab Engine to interact with the
Matlab Workspace and the Simulink model. With this interface, we can control the
execution of a Simulink model via the XDE simulator.
A Simulink robot controller including the motion generation, the inverse kine-
matics and a PID controller for motors position has been developed (Fig. 10). For
each step time, XDE simulator sends data to the Simulink controller:
• Time (simulated real time)
• Winches joint position
• Winches joint speed
• Platform position and orientation
• Cables tension at fastening locations
• Cables length
Then XDE simulator reads the data coming from the Simulinkcontroller, in our case
the desired torques for the motors. Thenthe XDE simulator executes one step time
of the Simulink controller.
Thus, the XDE simulator execution is synchronized with the Simulink controller
execution, under the condition that sampling time are set the same in XDE and
Simulink environments.
The control scheme used here is the same we use for a real prototype, only the
input/output exchanges mechanisms are adapted to suit the XDE simulator.
Simulation and Control with XDE and Matlab/Simulink … 81
Fig. 11 Motion sequence of a pallet displacement with the CoGiRo simulated robot controlled by
the Matlab/Simulink controller
With this Simulink controller allowing to control the platform position, we have
implemented a motion sequence to show the validity of this dual system XDE
simulator/Simulink controller.
Figure 11 shows the displacement of a pallet from a central position to a new
decentralized position.
4 Simulation Discussion
The simulators developed in this work presents interesting features but also draw-
backs which have to be improve in future milestones.
4.1 Simulation Interesting Features
The simulation allows validation of the application process: simulation of the motions
of the robot and execution of the tasks, validating workspace, detecting collisions,
accessibility, maneuverability etc.
As explained in the dedicated section, the fastening of the cable are made of two
parts that are fixed together. It is possible within XDE environment to provoque the
separation of these two parts, such that we simulate a cable rupture.
82 M. Michelin et al.
Fig. 12 Simulation of cable failure on the CoGiRo robot
In a first scenario, the rupture of four cables at the same time was simulated. The
platform falls on to the ground and cable winding is totally disordered (Fig. 12).
4.2 Simulation Issues and Alternatives
The sampling frequency was set to 200 Hz, and in order to simulate 10 s, the com-
puting time is about 10 h.
One of the major issue comes from the collision computation between the cable
and the winch. Indeed the winding of the cable generates a great number of collisions
which have to be computed and these collisions could be unnecessary in some use
cases.
4.3 Future Work
XDE developers are working on new cable modelling and dynamic node resolution al-
lowing one to decrease complexity and improve the computation time, unfortunately
this feature is not ready to use yet.
Developers are working on a winding cable disappearing after one or two turn
around the winch to avoid too much collisions computation, it’s also an unavailable
work in progress. When those new features will be implemented, XDE will offer a
very promising tool to simulate cable robots.
Simulation and Control with XDE and Matlab/Simulink … 83
5 Conclusions
We have developped a XDE framework with C++ classes allowing to create
a simulation of a cable robot composed of elementary components such as winches,
pulleys, cable attachments and a mobile platform. We can create as much cables as
needed and attach these cables to any object, this object can be a mobile platform or
any object in the scene such as a piece to assemble with another one. The winches
are implemented in a such way that it’s possible to apply a torque on the rotating
drum. The cable fastenings allow the feedback of the cable tensions. The platform
position, winches rotating position and speed are also available.
We have developped an interface between Matlab/Simulink and the XDE
simulator which allows a Simulink control model to interact with the simulated
robot. Sequence of motion, motion generation, inverse kinematics and PID control
have been implemented to control the cartesian platform position. This combinaison
of XDE simulation and Matlab/Simulink controller is able to simulate the CoGiRo
robot displacing a pallet.
The cable attachment can be unwelded from the platform, this allowing one to
show the behaviour of the system in case of a cable breakdown.
Acknowledgments The research leading to these results has received funding from the European
Community’s Seventh Framework Program under grant agreement No. NMP2-SL-2011-285404
(CABLEBOT). The authors would like to thank the CEA for their support.
References
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]
6. [Link]
7. [Link]
8. [Link]
simulation-de-systemes-avec-modelica/dymola/
9. [Link]
10. [Link]
11. [Link]
12. CoGiRo Project. [Online] [Link]
View publication stats