the problem, we developed a modeling system (the. Robot system) ... Physical models have been initially developed in the eld of ... motion of autonomous land vehicle 10]. This ap- ... which are generated onto the non central particles can be de ned .... 2Some approaches consider that the collision between two particles is ...
Presented in International conference ORIA Decembre, 1994. Marseille, FRANCE
Dynamic modeling of rigid and deformable objects for robotic tasks: Motions, deformations and collisions Ammar Joukhadar Christian Laugiery LIFIA/INRIA Rh^one-Alpes 46, Avenue Felix Viallet 38031 Grenoble Cedex 1, France
Resume
Plusieurs t^aches robotique exigent la prise en compte d'une interaction complexe entre le robot et son environnement. Cette interaction peut modi er largement le comportement du robot (et par consequent la probabilite du succes de la tache). C'est le cas quand on manipule un objet rigide ou deformable avec une main articulee, ou quand on plani e le mouvement d'un vehicule sur un terrain accidente. Les modeles geometriques classiques developpes dans les domaines de CAO-Robotique et plani cation de mouvement ne sont evidement pas adaptes pour etudier ces interactions. En fait, le but des modeles geometriques est de representer la forme et les proprietes spatiales d'un objet, tandis que les interactions entre les objets dependent de proprietes physiques comme la masse, la distribution de la masse, la rigidite/elasticite de l'objet, la viscosite de l'environnement, la force de la collision. Quand une tache necessite l'etude d'une interaction complexe entre le robot et son environnement (c'est le cas d'un robot tele-programme), on a besoin d'un modele capable de representer la dimension physique necessaire pour la prise en compte de cette interaction. Un tel modele est appele \modele physique" ou \modele mecanique". Alors par de nition le \modele physique" est un modele capable de representer le mouvement et la deformation d'un objet, ainsi que ses interactions avec l'environnement et avec les autres objets. Cet article presente le systeme de modelisation physique Robot dans lequel un objet physique est represente par une agglomeration des particules liees par des connecteurs dont le r^ole est de xer les positions relatives de ces particules et de determiner la forme au repos de l'objet. Le mouvement et la deformation d'un objet sont obtenus en appliquant (en parallele) la loi generale de la dynamique F~ = m~ sur chaque particule elementaire. La solution de l'equation F~ = m~ est obtenue en developpant les fonctions P~t (qui represente la position d'une particule), et V~t (qui represente sa vitesse) au voisinage d'un point t. Vt+ = Vt + ((1 + ) t ? t? ) 2 Pt+ = Pt + Vt + 2 ((1 + ) t ? t? ) Un temps linaire O(n) est susant de calculer la nouvelle position de chaque objets dans une scene, ou n est le nombre de particules totale dans la scene. Ce systeme prend en compte trois types d'interaction : la collision, le frottement, et la viscosite du milieu. Une representation hierarchique des objets[2] nous a permis d'atteindre une complexite de O(n) pour trouver l'ensemble des paires de particules en collision. Pour eviter la divergence numerique quand la frequence de la fonction P~t est tres eleve, on a developpe un algorithme base sur deux notions : le pas de temps adaptatif et la conservation de l'energie mecanique d'un systeme isole. Cette approche consiste a choisir a chaque iteration une valeur du pas de temps telle que la loi de conservation de l'energie mecanique soit The authors belong to the Robotic project SHARP, which is a joint research project between INRIA, CNRS, INPG, and UJF y Research Director at INRIA
respectee. Cette methode donne un gain de l'ordre du rapport entre la plus haute frequence de la fonction P~t et sa frequence moyenne. Ce systeme aide a resoudre quelques problemes robotiques comme la plani cation de mouvement, l'evitement d'obstacles et la stabilite du robot.
Abstract
Complex contact interactions between a robot and its environment (the contact between a dextrous hand and the grasped object, the contact between an allterrain vehicle and the terrain, ..) depend on physical properties such as mass, mass distribution, stiness/elasticity factors, viscosity, and collision forces. Classical geometrical models (representing the spatial properties of an object) are obviously not helpful to study such interactions. So, we need another model, which represent not only the shape of the object but also its motion, its deformation, and its interaction with the environment. Such a model is called \physical model". This paper talks about Robot system, which enables to physically represent robots and to study their physical behaviour. This system enables us to calculate the next position of each object and the interactions between them in linear time. It uses an adaptative time step based on the mechanical energy notion, which enables to avoid the numerical divergence, to control the geometrical penetration between objects, to control the deformability of these objects, and to go as fast as possible.
1 Introduction
The success of a robotic task depends on the model used to represent the robot and its environment. As much as the model is accurate (i.e capable to represent a bigger number of phenomena), the success of the task is more probable. For instance, a geometrical model enables to represent spatial and shape properties of a rigid object. So it is able to detect the collision between two objects. But it is unable to give the resulting forces and the eect of these forces on the colliding objects (motion, deformation, ..). So geometrical models are not helpful when a tele-programming robotics task needs the study of a complex contact interactions. This is the case, for instance, when manipulating a rigid or a deformable object using a dextrous hand [1], or when generte the motion of an all-terrain vehicle on a hilly terrain [3]. These interactions depend on physical properties such as mass, mass distribution, stifness/elasticity factors, viscosity, collision forces. Finding a mathematical formulation allowing to take into account such properties remains an important overhead to be considered by the programmer himself. Yet this work is not a part of the initial problem (planning, obstacle avoiding, ..). This forces the programmer to work in a restricted conditions (point contact, polyhedral object, ..). In order to deal with the problem, we developed a modeling system (the Robot system) based upon the concept of \physical model". The basic idea of Robot system[2] is to explicitly model force/motion/deformation interdependen-
cies using damper/spring constructions and the laws of the Newtonian physics. This approach has already been used by our team to simulate the dynamic behavior of a rover moving on a terrain [10] and to study the dextrous manipulation of rigid or deformable objects [1]. The purpose of this paper is to describe Robot system, and the underlying models and algorithms which have been developed to program the above-mentioned robotic tasks.
2 Related works
Physical models have been initially developed in the eld of computer graphics in order to construct dynamic animation systems. Some of these systems [13, 5] are based on an analytical de nition of the object, which make it dicult to construct the object and to modify it locally. Nodal models [11, 7] are easier to control because they give a homogeneous representation of the object. The theory of nite element [6] studies the deformations of an object but neither its interactions nor its motion. In the eld of robotics, some approaches use physical information (mass, friction,..) in addition to a geometrical model in order to solve basic physical problems like slip [12, 4]. But such approaches do not allow the processing of tasks involving complex contact interactions and/or deformations. Recently Cordis-Anima has been used to study the motion of autonomous land vehicle [10]. This approach has obtained encouraging results. These rst approaches consisting in introducing physical models in the robotics eld, have been extended in order to construct a new system dedicated to robotic applications: the Robot system presented in this paper.
3 Physical modeling in Robot system
This approach uesed in the Robot system is based on the damper/spring model [8, 11, 7]. In this approach an object is basically modeled as a conglomerate of particles connected by appropriate spring/damper connectors which plays the role of giving the object a certain form. In the sequel, we show how such an approach has been adapted to solve some robotic problems.
3.1 Basic constructions
A physical representation of an object is given by a set of particles. This set respects the object properties: the mass, the centre of inertia, the spatial occupancy and the volume. These particles are connected by means of spring/damper connectors in order to x all their degrees of freedom. Each particle is represented by a punctual mass m surrounded by a spherical non-penetrating area. There are three types of connectors :
The linear spring/damper connector (LS) connects two particles (a and b) in order to x the distance between them ( gure 1.a). The force generated by this connector is expressed by the following equation: F~a = (?p ? p)_ k~a ; (1) p_ = (~a_ ? ~b_ ):k~a
where is the stiness of the spring, p the variation of its length (it depends of its stabilisation length p0 ), the damping factor of the \damper", p_ the relative speed of the particle a compared to b, and k~a is the unit vector along the two particles a and b. The term ?p_ is a \damper" used to prevent the oscillation of the system near the equilibrium position of the pair of particles. Such a connector constrains one degree of freedom for each particle. Consequently it is not adapted to model a more complex structures such as revolute and prismatic joints1. A
B
~ z k~a
~ x
C
k~b
a
b LS
y ~
a ~ x
k~a
n ~
~ z
c
b
F~c
k~b
y ~
~i
TS
JS
~j
Figure 1: LS , TS and JS connectors. The torsion spring/damper connector (TS) has been developed to associate an angular constraint to a set of three particles (a, b and c). In TS, the forces which are generated onto the non central particles can be de ned by the following expression: F~b = (? ? )_ k~b 1 ( jc~~aj cos(c~b:c~_b)+ ~ sinjc~ajjcbj jcbj jc~bj cos(~ca:c~_a) ? ca: ~ c~_b ? c~b:c~_a) jc~aj where is the variation of the angle formed by the three particles (it depends of its initial angular value 0 ), _ the angular speed, ca ~ = ~a ? ~b, ca ~_ = ~a_ ? ~b_ is the speed of the vector c~_a, and k~b is the unit vector normal to the direction de ned by the involved pair of particles, gure 1.b illustrates. Because of
the action/reaction principle, the force F~c applied to the central particle is equal to the negative sum of F~b and F~a . This connector constrains three degrees of freedom (one degree for each connected particle). But when the equilibrium angle 0 of this connector is equal to 180, this connector constrains two degree of freedom for each particle. This property is very useful in representing sti bars or prismatic joints ( g. 2). In the general case this connector is very useful in representing the morphological modi cations of an object. The disadvantage of this connector is that the two non central particles are symmetric, so there is no dierence between the angle and the angle + , which may cause a problem when a revolute joint moves more than . The joint spring/damper connector (JS) is developed in order to avoid the symmetry of the TS relation and consequently to be able to represent a revolut joint ( g. 2). The JS connector ( g. 1.a) is similar to a TS connector provided by a fourth particle which allows the de nition of a positive rotation direction. The forces which are generated onto the non central particles can be de ned by the expression: F~a = (?( ? 0 ) ? )_ k~a 1 ( jc~~aj cos(c~b:c~_b)+ ~ sinjc~ajjcbj jcbj jc~bj cos(~ca:c~_a) ? c~a:c~_b ? c~b:c~_a) jc~aj
_ =
where, acos(2 ? ~i ~j ) if (~i ^ ~j ) ~n < 0 k~ = ~n^~j = acos( a ~i ~j ) else n
l
_ =
1 Such properties may be represented by appropriately com-
bining several LS connectors (see for instance [11]), but this necessitates to introduce additional ctitious punctual masses and connectors in the model. A consequence of this approach is to arti cially modify the mass distribution and to increase the complexity of the model.
LS TS
i
Les axes prismatique et rotode
j
Figure 2: A prismatic joint and a revolute joint.
3.2 Object modeling
To model an object, we decompose it into a set of particles, and we connect these particles appropriately in order to obtain a complete structure (i.e. all the degrees of freedom of the particles are constrained). This decomposition is task-oriented. If we are interested in the motion only, we do not need a ne decomposition.
On the contrary, a ne decomposition is needed when deformations have to be considered. Increasing the rigidity of an object, is obtained by increasing . The gure 3 show the eect of and on the object behaviour.The gure 4 shows a possible representation of plate.
Collisions. When two objects collide with each other, they locally deform ( gure 5). These deformations affect the equilibrium position of the internal connectors (LS, TS, and JS), and consequently these connectors try to return to their equilibrium positions by generating a visco-elastic forces. Local deformation
Figure 5: The collision force is the result of a local deformation at the contact area.
Figure 3: The eect of and on the motion of a particle.
LS
TS
Figure 4: A possible representation of a plate.
3.3 Motion and deformation
The motion and the deformation of a physical object are the result of the motion of its elementary particles. The position and the velocity of these particles are given by applying (in parallel) the general law of dynamic F~ = m~ on each one, where F~ is the sum of the forces (intern and extern), m the mass of the considered particle, and ~ the acceleration. There is many methods to solve this dierential equation (x3.5).
3.4 Interactions
When objects move in a real environment they may interact with each other. The Robot system distinguishes between three types of interaction: collision, friction and external viscosity.
In order to represent this phenomenon we consider that the collision between two objects is the result of the collisions between their elementary particles. As one modeled particle represents a large number of real particles (in reality an object contains a very large number of particle), we consider that the collision force F~c between two particles is a visco-elastic force and that it satis es the physical principle of the action/reaction 2. _ ~ If d < 0 F~c = ~0(?d ? d)k Else (2) where is the rigidity factor of the collision, a damping factor (which represent the dissipation of the energy), d the distance variation between the colliding particles, d_ the relative speed, and ~k the unit vector along the two particles interaction axis.
Friction. Two object in contact are subjected to friction. Friction is basically a statistical notion. It is the result of a large number of elementary collisions on the surfaces in contact. In practice, to represent this force, it should be necessary to decompose the object into a large number of particles, but it is obviously not a realistic solution. In practice, the magnitude of the friction force jF~f j can be considered as proportional to the magnitude of the perpendicular force jF~nj (Coulomb's law). Then, this force can be de ned as follows83 : V~ > (sliding) < ?c jF~nj jV~~j If V~ 6= ~0 ~ F t ~ ~ ~ Ff = > ?s jFnj jF~ j If jFtj > sj Fnj (intermediate) (3) > : ? F~t t Else (sticking)
2 Some approaches consider that the collision between two particles is completely elastic[11]. 3 Other approach consist in representing the static friction by a spring connecting the two colliding objects[9].
where c is the kinetic friction parameter, s the static friction parameter (s > c), V~ the relative speed of the colliding particles, and F~t the tangential force applied by one particle on the other. The resulting force applied by one particle i on an other particle j is given by: F~result = Fi ? Fj .
Viscosity. When an object is moving, it also inter-
acts with the environment (air, water, vacuum). This collision has an important eect on the motion of the robot and on the interaction between the robot and the manipulated object. For example, the rotation of a fallen object is the result of its collision with the air. Representing this collision force (called viscosity), requires to associate a physical representation to the environment. But a representation of uid involving a very ne decomposition is not applicable in practice. This why we make use of a macroscopic representation of the resulting phenomena by considering that the generated force F~v is proportional to the speed of the particle4 : F~v = ?kV~ , where k is the viscosity factor and V~ the speed. Obviously, only those particles which are colliding with the oncoming uid are subjected to this force. Also it is not practical to test each particle to see if it is interacting with the environment or not. This is because, as shown in Figure 6, particles, depending on their position on the object and the object's velocity (or, particles' velocity), can be in partial collision with the uid. Because one modeled particle may represent a large number of real particles. For this reason the viscous force is given by the following equation : ( V~ ~ ~ (4) F~v = ?k (V ~n): jV~ j if V ~n >= 0 0 else where ~n is the external normal vector to the object surface at the particle location.
3.5 Complexity
The execution time needed to pass from the state Et0 of an object to its state Et depends on three factors : The time needed to calculate the next position of the object. The time needed to nd the contact points between two colliding objects. The time step . The number n of iterations needed to reach the state Et is equal to t?t0 . As is bigger, n is smaller and the execution is faster. 4 This approximation is true only for an object moving in the
air with a small velocity. Which is the case of actual robots (for the uid this force has the form F~v = ?k V~ 2 )
F~v
=0
n ~ F~v
partial collision n ~
bp
~ V
F~v
Figure 6: A modeled particle can be partially in collision with the environment.
3.5.1 Complexity of the motion
The position and the velocity of a particle are the solution of the dierential equation F~ = m:P~ . To solve this equation one develops the function P~t near the point t : n (n) Pt+ = 1 0 n! Pt where P (n) is the nth derivative of the function P~ . Normally we are unable to derive this function until the in nity. The practical form of this development becomes : n+1 n Pt+ = n0 n! Pt(n) + O( (n + 1)! Pt(n+1)) +1 (n+1) Pt ). The committed error in this case is O( (nn+1)! The equation F~ = m:P~ gives only the value of the second derivative ~ of the function P~ . So3 in our case n = 2 and the committed error is O( 3! ~ _ ). We do not know the value of ~ _ but we can estimate it by
t ? t?tau 5 . Adding the estimated value of the error to the development of both functions P~t and V~t gives: Vt+ = Vt + ((1 + ) t ? t? ) 2 Pt+ = Pt + Vt + 2 ((1 + ) t ? t? ) (5) Remark: in practice one remarks that big values of and are more suitable when . Whereas small values are suitable when . If the object contains n particles, one needs n operations to calculate the next position of particles. So
5 if one estimates the value of ~ _ by t+ ? t , one obtains the
method of Newmark and Wilson which is always stable. But in our case we can not predict the value of t+ because it depends on the value of Pt+ . In this case one has to solve a system of n non linear equations, which the form is : Pti~+ = f (F~t; P~tj ; Ptj~+ ).
the complexity of the passage from the position P~t of an object to its position Pt~+ is O(n). The sampling frequency has to be two times greater than the greatest frequency in P~t (Shanon sampling theory). Otherwise the sampled function will diverge. This divergence has many forms to appear: rst the the object goes out of its correct trajectory, after that the colliding objects penetrate one the other, and nally the elementary particles leave the object and go in all the directions. t
solution numerique solution analytique
P~
t
P~
Figure 7: If the value of is very important, The numerical solution diverge. a- Without oscillation . b- With oscillation .
In fact when two objects (having 0) interact, the frequency of the function P~t becomes very high ( gure7). As the time step is inversely proportional to the highest frequency, the simulation becomes very slow and some times not practical. Yet the chock phenomenon do not last a very long time. To solve this problem we use an adaptative time step based on the mechanical energy notion.
The adaptative time step As said above the comn+1
mitted erreur is O( (n+1)! Pt(n+1)). This approach consists in decreasing+1the value of the time step when Pt(n+1)) is important (capable to the value of O( (nn+1)! cause a numerical divergence), and to increase it else. In order to keep a small value of the error and to go as fast as posssible. So we need to be able to characterise the divergence. When an object diverges the velocities of its particles increase continuously, and the relative distances between theme increase too. When the velocity V~ of an object increases, its kinetic energy Ek = 21 mV 2 increases too, and when the relative distance x between two particles increases, the related potential energy Ep = 21 x2 increases. Consequently, when an object diverge its total energy Et = Ep + Ek increases. If the object is isolated, its total energy must remain constant Et = constant (the total energy is conservative). In this case any increase of the total energy at each iteration can be considered as a sign of divergence. When two objects are in collision they can be considered as one isolated object. As the collision force is given by ?d ? d,_ the resulting
potential energy is Epc = 12 d2. When an object is subjected to an external force F~ , the variation of its external potential energy to the work of this R is equal ~ force Epexternal = ? xx+x F~ :dx. So the divergence of an isolated object is characterised (at every time step) by a positive variation of its total energy (If the object is rigid, its internal potential energy Epinternal is null): Et = Ek + Epinternal + Epexternal The following algorithm enable us to avoid the divergence of an isolated object and to go as fast as possible. The gain of the time using this algorithm is proportional to the relation between the greatest frequency of the function P~t and the average frequency of this function. greatest frequency Gain = The The average frequency > 1
Let P~t be the actual position of the object. Let V~t be its velocity. Let E be its total energy. LOOP Calculate the force Ft act on the object. Calculate Pt~+ and Vt~+ using (eq.5). Calculate E. IF E > 0 THEN LOOP =2
Calculate Pt~+ and Vt~+ using (eq.5). Calculate E UNTIL E < 0 ELSE = 23 UNTIL 1 The number of iterations m needed in this approach is bigger than the number of iterations n needed in the previous approach (the approach which uses a xed time step), du to the number of iterations needed to search the good value g of . As we search this value in dividing by 2 this number is very small and equal to log2 ? log2 g for each iteration. Normally the value of the actual time step is very close to the value of the desired time step g , because of the continuity of the function. Many tests has been made for dierent values of and . In all these tests we had mn < 32 . One does not use the same factor when increasing (one multiplies by 2) and when decreasing (one multiplies by 1:5) the time step in order to not get always the same values and to converge to the ideal value if it exists.
Remark: We must not to consider two isolated objects as an isolated one. Because there is no energetic exchange between them. Sometimes one object looses the energy because of the friction force and the another wins the energy because of a bad sampling time step, but the variation of the total energy is always negative.
0:5
0:25
premier contact.
deuxieme contact. troisieme contact.
t
Figure 9: The evolution of when a ball fall down on the
earth.
Figure 8: Controlling the penetration by means of its rigidity .
Controlling the penetration between colliding objects As the collision potential energy is given by 1
Epc = 2 d, when (The stiness of the collision) is very big, the penetration between two objects causes an important increase of the energy. In this case our approach will use a small in order to avoid this penetration. Consequently one can control the penetration by the value of . Figure 8 shows an example of a ball which falls down on the earth. When is small, the collision is not rigid and the two particles will penetrate \deforme". When is big, the collision is rigid and no penetration will be seen. represents the rigidity of the collision and not the rigidity of the object. So we can represent the collision between two deformable penetrating objects. The gure 9 shows the evolution of the time step during this experience. The gain in this example depend on the values of (the rigidity of the collision) and (the energy dissipation factor). It variates between 5 for a big value of and 10000 for a big value of .
3.5.2 Complexity of the collision
The main problem to solve is how to locate the colliding particles. A straight forward algorithm consists in considering each pair of particles. The complexity of this algorithm is O(n2 ), where n is the number of particles of each object. A possible improvement to this algorithm consist in considering only the external particles (the internal particles can not interact).
A 3D object containing n particles, contains only n 23 particles 6 on its surface. Consequently, the complexp ity of the algorithm becomes O(n 43 ) = O(n 3 n). As the complexity of the motion/deformation generation algorithm is O(n), the collision algorithmpwill multiply the total complexity of the system by 3 n, so this complexity is not satisfactory. A possible solution to reduce this complexity is to decompose the object recursively into eight sub-objects, and to encapsulate these sub-objects by spheres (the object will be represented by a tree, see gure 10). To decompose the object into sub-objects, we divide the sphere which encapsulates it into eight parts by means of three perpendicular planes passing by the centre of this sphere. Each sub-object containing the particles belongs to one of these parts. O
O1
O2
O11 O12 N1 N2
N3
Ok
O8
O18 N4
......................
Nn?1 Nn
Figure 10: Hierarchical Decomposition of an object into
spheres.
If the object is deformable, it is important to increase the radius of its encapsulating sphere, in order to be able to contains the object even when it deforms. This decomposition is made only one time, when de ning the object. Its complexity is O(n log8(n)), where n is the number of particles of the object. The
6 if the object contains n particles, we can consider that its volume is of the order of n = k3 2, and consequently its external surface is of the order of k2 = n 3 .
depth of the resulting tree is log8 (n). With such representation the algorithm which nds the pair of particles in contact can be given by the following algorithm: Locate Contact(Object1 ,Object2) ! Object1 contains only one particle P1, Object2 contains only one particle P2, The distance between P1 and P2 is less than the sum of their radii. Locate Contact(Object1 ,Object2) ! X is a sub-object of Object1 , Y is a sub-object of Object2 , the encapsulating spheres of X and Y are in contact, Locate Contact(X,Y ). Let k be the average number of the pairs [X; Y ] for which the encapsulating spheres are in contact (k 2 [0::8]).The complexity C(n) of this algorithm can be given by: C(1) = 1; C(n) = (64 ? k) + k C( n8 ) or 8 O(1) if k = 0 > < O(log8(n)) if k = 1 1 (6) C(n) = > O(n logk (8) ) if k 2 [0::8] : O(n) If k = 8 The maximal complexity of this algorithm is O(n). If k > 8 the number of colliding particles will be greater than O(n) which is impossible. This complexity is the same as the motion/deformation generation complexity, so the total complexity of the algorithme becomes O(n).
4 Solving Robotic tasks
The purpose of the Robot system is to make it possible to create a virtual world in which objects and robots have a physical behaviour consistent with the real world. This possibility is obviously very useful to program or to plan robot tasks involving complex contact interactions which can not be processed using classical geometric models. This section show who the concept of physical world can be used to solve some of the main problems of robotic programming.
4.1 Motion generation
One of the main aspects of a physical object is its ability to be manipulated by an external force. This property can be used to plan the motion of a robot. Two cases have to be considered: the mobile robots and the manipulators.
Mobile robot. A straight forward way to bring a
mobile robot to a new desired position is to attract it by a \physical attractor". This attractor is a virtual duplication of the robot it self. It is located at the new desired con guration. The actual robot is connected to the virtual one by means of an appropriate set of spring/damper connectors ( gure 11.a). The choice of the type and the location of these connectors depends on the tasks to be achieved. If the new con guration is completely de ned (position and orientation) we have
to connect (by means of LSs connectors) at least four non coplanar particles of the real robot with their correspondents from the virtual one. TS connectors are useful to constraint the trajectory to be followed by the robot (straight lines or arcs of circle). A
Robot virtuel
B
Robot reel
Articulation passive Outil reel
Figure 11: The physical path planning.
Manipulator. A physical way to move a manipulator to a desired con guration is to temporary switch o their joints while attracting its tool to a virtual one located at the desired position. As the switched o joints do not resist the external forces, they will follow the tool according to their mechanical characteristics ( gure 11.b). A switched o joint (or passive joint) is characterised by = 0 and ' 1. At each time step, the joints values has to be send to the real robot, which will generate the same motion.
4.2 Obstacles avoidance
Physical objects are capable of interacting with each other. When an object collides with an obstacle, the collision force (x 3.4) will prevent it from continuing to move in the same direction. So the object will slip (When applying this algorithme, one has not to consider the friction force between the object and the obstacl) along the surface of the obstacle ( gure 12.a). A simple way to avoid the collision with the obstacle when physical contacts are not allowed, is to expand the obstacles by a given security distance. Local minima are characterized by a null speed of the moving object. Avoiding local minima is possible by adding progressively virtual obstacles in the local minimum (the local minimum will be progressively lled). At the next attempt the object will slid along the surface of the local new virtual obstacle ( gure 12.b). This method is ecient when the robot has no constraint on its motion.
~tF~ ~ct Goal A FGoal ~~ct Goal FF ~ BFGoal Virtual obstacle F~t F ~c tF Goal Goal
Figure 12: Obstacle avoidance.
4.3 Stabilisation
Any object search automatically its equilibrium state (i.e the state corresponding to a minimum potential energy). This state is characterised by a null external force. An object is free if the sum of the external forces applied on it is null. The speed of the inertia center of a free object is constant. If the initial speed of a free object is null, the only possible motion of this object is to turn around its inertia centre. In a constrain environment this motion will stop because of the collision with other objects. This property is useful to ensure the stability of a grasp executed by an articulated hand. In this case the object is initially stable, the environment is limited by the hand, and the external forces applied by the hand on the object are null if the nger-tips are attracted to each other by means of LS connectors: the sum of the forces generated on the extremities of a LS connector is always null ( gure 13). F~ ?F~
5 Experimental simulation
The system Robot has been implemented using the CAD-Robotic system ACT 7. The three basic mechanical behaviours of a sti bar (traction, exion, torsion) has been initially tested. Then we have simulated a more complex phenomena. The gure 15 shows the dierence between the behaviour of a wheel (which turn) and the behaviour of a cube (which topple over the earth) when they are submitted to the gravity force. This gure shows a vehicle which automatically nd its con guration when crossing a hilly terrain. Grasping stability has been simulated using a physical model of our Salisbury hand. The correctness of the mathematical approach used to nd the trajectory of an object has been tested using MAPLE8 . For particular cases (cases which can be solved analytically) we have compared the analytic and discrete solutions. For a time step maximum which respects the Shannon theory the two methods (analytic et numeric which uses the adaptative time step) give the same result. When using a bigger time step, the numerical solution converge faster than the analytical one. The execution time depend on the task to perform. The exemple of the ball which fall down on the earth needed less than one second to be performed. The simulation of the motion of the Salisbury hand ( gure14) during 50s needed 50 second to be performed.
Figure 13: Adding LS connectors between the nger-tips guarantee that the sum of the external forces is null.
The stability of a power grasp can also be obtained using physical model: this stability is the result of a large number of contacts between the hand and the object as shown in the gure 14.
Figure 15: Some simulations executed using Robot.
6 Conclusion
Figure 14: Power grasp simulation.
In this paper we have describe the Robot system. This system allows us to model robots and their environnment in order to simulate their motions, their deformations, and their interaction with the environment. This system has been used to solve some robotic 7 Commercialized by ALEPH Technologies 8 Maple is a computer algebra system, with powerful sym-
bolic, numeric and graphics routines
tasks involving complex contact interactions. The motion complexity at each time step O(n), where n is the number of particles in the environment. An hierarchical representation of objects allows to have the same complexity (O(n)) when calculating the interaction between two objects. It uses an adaptative time step in order to avoid the numerical divergence, to control the geometrical penetration between objects and to go as fast as possible. Actual works try to optimise the number of the necessary particles n, and to nd a better deformable geometrical model.
References
[1] A.Joukhadar, C.Bard, and C.Laugier. Planning dextrous operations using physical models. IEEE/ICRA, May 1994. [2] A.Joukhadar and C.Laugier. robot : A physical modeling system for robotic applications. JapanFrance congress on MECHATRONICS, November 1994. [3] C.Laugier, C.Bard, M.Cherif, and A.Joukhadar. Solving complex motion planning problems by combining geometric and physical models: the case of a rover and of a dextrous hand. Workshop on the Algortihmic Fondations of Robotics (WAFR), February 1994.
[4] R.S. Fearing. Implementing a force strategy for objects re-orientation. In IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986. [5] M. Gascuel, A. Verroust, and C. Puech. A modelling system for complex deformable bodies suited to animation and collision processing. Visualisation and computer animation, 1991. [6] D. Gay and J. Gambelin. Une approche simple du calcul des structures par la me'thode des e'le'ments nis. Herme`s, 1989. [7] J.-P. GOURRET. Mode'lisation d'images xes et anime'es. MASSON, 1994. [8] J.Dorlot, J.Batlon, and J.Masounve. DES MATRIAUX. Ecole polytechnique de Montereal, 1986. [9] S. Jimenez and A. Luciani. Animation of interacting objects with collision and prolonged contacts. Modeling in computer graphic, 1993. [10] S. Jimenez, A. Luciani, and C. Laugier. Predicting the dynamic behaviour of a planetary vehicle using physical models. IEEE/RSJ International workshop on intelligent robots and systems, July 1993.
[11] A. Luciani and al. An uni ed view of multiple behaviour, exibility, plasticity and fractures: balls, bubbles and agglomerates. In IFIP WG 5.10 on Modeling in Computer Graphics, pages 55{74. Springer Verlag, 1991. [12] J. Pertin-Troccaz. Mode'lisation du raisonnement ge'ome'trique pour la programmation des robots. PhD thesis, Institut National Polythechnique de Grenoble, Mars 1986. In french. [13] D. Terzopoulos, J. Platt, A. Barr, and K. Fleischer. Elastically deformables models. Computer Graphics, volume 21, Number 4, july 1987.