0% ont trouvé ce document utile (0 vote)
11 vues30 pages

Cours 1

Transféré par

Med El-Aji
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues30 pages

Cours 1

Transféré par

Med El-Aji
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 30

Université Mohammed V Faculté Année universitaire : 2024-2025

des Sciences de Rabat


Master IESE, S3

Module Robotique
Professeur : Raoui Younès
Email : [email protected]

Cinématique de base des robots mobiles


Cinématique des robots mobiles
• Cette partie présente les objectifs de ce cours sur la
cinématique des robots à roues, ainsi que les méthodes
et outils d'apprentissage. Le cours combinera des
contenus théoriques avec des démonstrations et des
exercices avec des modèles de robots réalistes dans un
simulateur 3D.
Introduction
La géométrie de l'espace
tridimensionnel et des mouvements
rigides joue un rôle central à la fois
dans la manipulation robotique et
dans la robotique mobile. Dans cette
section, nous étudions les opérations
de translation et de rotation, et
comment les appliquer au
mouvement des robots à roues.
L'objectif est de fournir les concepts
et les outils pour contrôler un robot
mobile le long d'une trajectoire
prédéfinie. Il s'agit de la pierre
angulaire de la mobilité des robots,
car elle peut être élargie
ultérieurement par l'ajout de capteurs
externes dans d'autres cours.
Objectif
• Nous allons voir les éléments suivant:

• Mouvements des corps rigides


• Cinématique pour les robots
• Contrôle cinématique
Exemple de robots
Le TurtleBot . Il s'agit d'un kit
de robot réel peu coûteux,
doté d'un logiciel libre. Grâce
à son modèle simulé, vous
pourrez programmer.
C'est un robot capable de se
déplacer dans une maison et
doté de suffisamment de
fonctions pour créer des
applications passionnantes.
Le Neobotix MPO-500 est
capable de se déplacer
librement dans toutes les
directions.
Mouvement d'un
corps rigide

•Plan de référence
•Représentation des positions
•Représentation des rotations
•Transformations de rotation
•Composition des rotations
•Paramétrage des rotations
•Matrices de transformation
homogènes
Spong, M. W., Vidyasagar, M. (2008). Robot dynamics
and control, chapter 2. John Wiley & Sons.
Ici le robot a été créé sur
une grille planaire. Pour
positionner correctement le
robot, nous devons définir
un repère de référence, en
l'occurrence un système de
coordonnées cartésiennes
tridimensionnelles.
Représentation La position de la canette a été donnée dans un objet
de la position Pose. Elle est déplacée d'un carré de grille (1m) le long
de l'axe Y (le vert) par rapport à l'origine, de sorte que
sa position est.
Les positions sont
représentées par les p=[0,1,0.22]'
coordonnées
cartésiennes d'un point
p par rapport à une
origine arbitraire O
(dans notre cas, le
centre du robot).
Représentation des
rotation
La position et l'orientation relatives d'un corps
rigide par rapport à un autre peuvent être
représentées par les relations géométriques entre
les repéres de coordonnées attachés à chaque
corps.
La position relative est donnée par un point.
Comment représenter l'orientation en 2D et en 3D.
En deux dimensions, étant donné un angle de
rotation 𝜃 entre deux systèmes de référence, les
coordonnées (𝑥′,𝑦′)' d'un point dans le cadre pivoté
peuvent être calculées comme suit.
Représentation des
rotation
Illustrons ce calcul par un
exemple dans le monde simulé.
Nous allons faire tourner la
canette de Coca autour de la
TurtleBot, comme indiqué sur la
figure. Elle sera initialement
située devant le robot à
P=(x,y,z)'=(1,0,0.22)'
et ce point sera tourné d'un angle
𝜃 autour de l'origine z (𝑧 reste
constant).
Déplacement du Robot
Matrices de rotation

Dans le code précédent, nous


convertissons l'angle de degrés en
radians avec la fonction Python
math.radians. La valeur de l'angle est
utilisée pour calculer les coordonnées du
point dans le plan pivoté à l'aide des
fonctions trigonométriques de Python.
Les rotations dans le plan sont
équivalentes à des rotations en 3D autour
de l'axe Z, qui peuvent être représentées
par la matrice 3×3.
Elle est appelée matrice de rotation de
base (autour de l'axe Z). De même, les
matrices de rotation pour les axes x et y
sont.
Transformations de
rotation
Si la rotation est appliquée à tous les
points d'un objet rigide, c'est tout l'objet
qui subit une rotation. Par conséquent,
l'orientation d'un objet rigide peut être
entièrement représentée par les rotations
d'un plan de référence qui lui est
rigidement attaché.
Les rotations ne sont pas représentées par
des matrices, mais par une notation
différente mais équivalente, les
quaternions. Les quaternions pour les
matrices de rotation de base peuvent être
facilement obtenus.
Quaternions
• Les quaternions équivalents des autres matrices de rotation de base sont les
suivants.
Rotation autours des
axes
On fait tourner la canette de Coca autour de
son axe Z.
Il n'est pas nécessaire de calculer
explicitement le quaternion, une fonction
peut être utilisée à la place.
tf.transformations.quaternion_about_axis(a
ngle, axis)
où l'𝑎𝑛𝑔𝑙𝑒 est la valeur en radians de l'angle
de rotation, qui peut être positif ou négatif,
et 𝑎𝑥𝑖𝑠 est un tuple à 3 éléments avec les
coordonnées en 3D d'un vecteur, l'axe de
rotation. Si cet axe est parallèle à l'un des
axes principaux, ses composantes sont 1
pour cet axe et 0 pour les deux autres axes.
Rotation autour de
l'axe x
Rotation autour de
l'axe y
Transformations homogènes
• Dans les sections précédentes, nous avons représenté les positions et les orientations séparément. Dans cette
section, nous combinons les deux concepts pour définir les transformations homogènes, qui sont l'ensemble des
matrices de la forme

• Où 𝑑 est la position et 𝑅 l'orientation (matrice de rotation).


• L'utilisation de matrices homogènes simplifie grandement les opérations avec des mouvements rigides, et elles
sont largement utilisées dans le domaine de l'infographie.
• La structure de données Pose peut être facilement convertie en une matrice homogène ou à partir d'une telle
matrice.
Transformations homogènes

• import math, rospy


from utilities import set_model_state, get_model_state
from geometry_msgs.msg import Pose, Point, Quaternion
import numpy as np
from tf.transformations import quaternion_matrix

model_state = get_model_state('coke_can')
pose = model_state.pose
q = np.array([pose.orientation.x, pose.orientation.y,
pose.orientation.z, pose.orientation.w])
H = quaternion_matrix(q)
H[0][3] = pose.position.x
H[1][3] = pose.position.y
H[2][3] = pose.position.z

print(pose)
print(H)
Cinématiques des robots non holonomes

• La cinématique est l'étude du MOUVEMENT d'un objet sans tenir compte de ses CAUSES.
• Par mouvement, nous entendons les vitesses, les accélérations, etc.
• Par causes, nous entendons ce qui provoque ce mouvement, comme une force ou un couple.
• Nous nous ne préoccupons pas de ce qui provoque ce mouvement
• Nous avons déjà abordé la cinématique, mais c'est quoi un modèle cinématique?
Qu'est-ce qu'un modèle

• En mathématiques, nous entendons par modèle une représentation mathématique


simplifiée d'un système réel/physique.
• Un modèle est donc avant tout une simplification. Qu'est-ce que cela signifie ? Cela signifie
essentiellement que, lors de la création d'un modèle, nous devons simplifier ou supposer
certaines choses. Il doit en être ainsi parce qu'il est impossible de saisir toute la complexité
d'un système réel/physique.
• Par ailleurs, un modèle est une représentation mathématique. Qu'est-ce que cela signifie ?
Cela signifie qu'un modèle est un ensemble d'équations mathématiques. Ces équations
sont censées décrire le comportement d'un système réel/physique.
• Mais si un modèle est une simplification, est-il vraiment utile ? La réponse à cette question
est évidemment oui. Même si les modèles ne sont pas parfaits, ils sont utiles car ils
permettent de couvrir certains aspects d'un système réel/physique. Par exemple, ils peuvent
nous aider à décrire le comportement d'un système ou à estimer son comportement futur.
Qu'est-ce qu'un modèle cinématique ?

• Nous passerons en revue les deux types suivants.


• Le robot monocycle
• Le robot à entraînement différentiel
The Unicycle robot

• Le modèle monocycle est le modèle


cinématique le plus simple d'un robot
mobile. Il est basé sur une seule roue, qui
peut se déplacer à une vitesse souhaitée
(𝑣) et avec un angle (ϕ).
The Unicycle robot

• La roue roulant sur un plan peut être représentée par


trois paramètres 𝑥, 𝑦 et (ϕ), où (𝑥,𝑦) indique la position
à laquelle la roue touche le sol, et (ϕ) indique la
direction dans laquelle la roue se déplace dans le plan
de référence.
• Position (𝑥,𝑦), en mètres
• Orientation (ϕ), angle du robot dans le sens inverse
des aiguilles d'une montre par rapport à l'axe x du
cadre de référence (en radians).
• Maintenant, en ce qui concerne les entrées du
système, nous allons avoir:
• Vitesse linéaire (𝑣) : La vitesse de déplacement
du robot, en mètres par seconde.
• Vitesse angulaire (𝑤) : La vitesse à laquelle le
robot tourne, en radians par seconde.
The Unicycle robot

• Cela signifie que le mouvement d'un robot • Pour le robot monocycle, il s'agit des
est contrôlé par sa vitesse et sa vitesse équations suivantes.
angulaire.
• Pour disposer d'un modèle cinématique de
ce système, nous devons disposer d'un
ensemble d'équations qui mettent en
correspondance les entrées et les sorties
du système.
• Ces équations indiquent la variation dans
le temps de la position du robot.
• Si l'angle ne change pas, le robot se
déplace en ligne droite dans la direction 𝑥.
The Differential Drive robot

• Le robot à entraînement différentiel


est probablement le robot mobile le
plus courant et le plus utilisé à
l'heure actuelle.
• Un robot à entraînement différentiel
se compose de deux roues à
entraînement indépendant qui
tournent autour du même axe,
The Differential Drive robot

• Comme nous l'avons fait pour l'Unicycle, nous


pouvons également générer une représentation
visuelle de ce système.
• 𝐿 : la distance entre les roues du robot
• 𝑅 : le rayon des roues du robot.
• Sur un robot réel, il suffit de les mesurer à l'aide d'une
règle, par exemple. Sur un robot simulé, vous pouvez
également extraire ces valeurs du fichier URDF du
robot.
The Differential Drive robot

• Quels seront les paramètres qui définiront son état ? Comme pour le
monocycle, l'état du robot sera défini par sa position (𝑥,𝑦) et son orientation
(ϕ). Encore une fois, ce seront les sorties de notre système.
• Nous avons maintenant 2 entrées pour notre système:
• 𝑉𝑟 : vitesse à laquelle la roue droite tourne
• 𝑉𝑙 : vitesse à laquelle la roue gauche tourne
The Differential Drive
robot

- Pour obtenir le modèle


cinématique de notre
système, nous allons avoir
besoin d'un ensemble
d'équations qui relient les
entrées de notre système aux
sorties.
- Pour le robot à entraînement
différentiel, voici les
équations.
The Differential Drive
robot

En théorie, il s'agit du modèle cinématique d'un


robot à entraînement différentiel. Il n'est pas
naturel de penser en termes de vitesse de
rotation des roues.
Par exemple, si l'on vous demande comment
ce robot peut atteindre un certain endroit, vous
ne répondrez probablement pas en indiquant la
vitesse de rotation des roues nécessaire pour y
parvenir.
Il est plus probable que vous répondiez en
disant quelque chose comme : « Il suffit
d'avancer à cette vitesse, puis de tourner dans
cette direction ».
En effet, il est beaucoup plus facile pour nous
de penser en termes de vitesse de
déplacement du robot (vitesse ou vitesse
linéaire) et de vitesse de rotation du robot
(vitesse angulaire).

Vous aimerez peut-être aussi