Vous êtes sur la page 1sur 19

Modélisation système : suivi de trajectoire pour les

robots autonomes à entrainement à direction


différentielle
Contexte :
Robot à entraînement à direction différentielle :

- Les vitesses des roues sont contrôlées indépendamment

- Il est nécessaire de connaître : la position (x, y) du robot, son orientation, le rayon de ses roues,
ainsi que la distance entre ses deux roues

Les robots à entraînement à direction différentielle sont des robots mobiles dont les roues sont
contrôlées indépendamment. Pour permettre à ces robots de suivre une trajectoire, il est
nécessaire de connaître des informations telles que leur position (x, y), leur orientation, le rayon
de leurs roues et la distance entre leurs deux roues.

Méthodes : trajectoire développée


La méthode de suivi de point pour le suivi de trajectoire des robots autonomes à entraînement à
direction différentielle est une méthode relativement simple et efficace. Voici comment elle
fonctionne :

1. Définir le point à atteindre : Tout d'abord, il faut définir le point que le robot doit atteindre. Ce
point peut être spécifié en coordonnées absolues (par exemple, latitude et longitude sur une
carte) ou en coordonnées relatives par rapport à la position actuelle du robot (par exemple, un
déplacement de 2 mètres vers l'est).
2. Détecter la position actuelle du robot : Le robot utilise ses capteurs (par exemple, un système de
positionnement global, un système de localisation et de cartographie simultanées, etc.) pour
détecter sa position actuelle. Cette information est utilisée pour déterminer la direction et la
distance à parcourir pour atteindre le point spécifié.

3. Calculer le déplacement nécessaire : En utilisant les informations de position et de direction, le


robot calcule le déplacement nécessaire pour atteindre le point spécifié. Ce déplacement est
exprimé sous forme de différence de vitesse entre les deux roues du robot.

4. Contrôler les moteurs : Le contrôleur de mouvement du robot utilise les informations de


déplacement pour ajuster la vitesse des moteurs de chaque roue. Les capteurs intégrés du robot
détectent ensuite sa position en temps réel et ajustent la vitesse des moteurs en conséquence
pour maintenir le cap vers le point spécifié.

5. Répéter le processus : Le robot continue de suivre cette trajectoire en répétant les étapes 2 à 4
jusqu'à ce qu'il atteigne le point spécifié.

La méthode de suivi de point est souvent utilisée dans les environnements où la planification de
trajectoire n'est pas nécessaire, par exemple, lorsqu'un robot doit simplement se déplacer vers un
point spécifique dans une zone connue. Cependant, elle peut être moins efficace que d'autres
méthodes de planification de trajectoire plus sophistiquées dans les environnements complexes
ou en présence d'obstacles.
Pour étudier la méthode de suivi de point en Matlab, voici les étapes possibles que vous
pouvez suivre :

1. Définir le point à atteindre : Vous pouvez définir le point à atteindre en utilisant des variables en
Matlab. Par exemple, vous pouvez définir le point comme une paire de coordonnées (x, y) ou
comme une distance et une direction relatives par rapport à la position actuelle du robot.

2. Simuler la position du robot : Vous pouvez utiliser la fonction "sim" ou "simulink" de Matlab
pour simuler la position du robot dans un environnement virtuel. Vous pouvez utiliser des
capteurs simulés pour détecter la position actuelle du robot et l'afficher graphiquement.

3. Calculer le déplacement nécessaire : Vous pouvez utiliser les informations de position et de


direction pour calculer le déplacement nécessaire pour atteindre le point spécifié. Cela peut être
fait en utilisant des fonctions trigonométriques telles que la tangente inverse pour déterminer
l'angle de rotation nécessaire pour aligner le robot vers le point.

4. Contrôler les moteurs : Vous pouvez utiliser la commande "sendCommand" pour envoyer des
commandes de mouvement à votre robot simulé. Cette commande ajuste la vitesse des moteurs
de chaque roue pour suivre le cap vers le point spécifié.

5. Répéter le processus : Vous pouvez répéter les étapes 2 à 4 jusqu'à ce que le robot atteigne le
point spécifié. Vous pouvez également ajouter des conditions d'arrêt pour arrêter la simulation
une fois que le robot atteint sa destination.

Il est important de noter que ces étapes peuvent varier en fonction de la configuration spécifique
de votre robot et de l'environnement de simulation. Il est recommandé de consulter la
documentation de Matlab pour des instructions détaillées sur la simulation de robots autonomes
et la planification de trajectoire.

Méthodes : Suivi de référence


Suivre la carotte Suivi de référence

r(t) = le signal de référence - orientation désirée.

u(t) = les commandes du contrôleur pour les vitesses des roues gauche et droite de la plante.
y(t) = la sortie de la plante - l'orientation actuelle.

e(t) = la différence entre la sortie et l'entrée.

controleur Plante

La méthode de suivi de référence (ou "carotte") est une technique couramment utilisée pour le
suivi de trajectoire des robots autonomes à entraînement à direction différentielle. Voici comment
elle fonctionne :

1. Définir la référence : Tout d'abord, il faut définir la trajectoire de référence que le robot doit
suivre. Cette référence peut être spécifiée en coordonnées absolues ou relatives, et peut être
représentée sous forme de signal.

2. Calculer l'erreur de trajectoire : En utilisant les capteurs de position du robot, il est possible de
calculer la différence entre la trajectoire de référence et la trajectoire actuelle du robot. Cette
erreur est exprimée en termes d'orientation désirée.

3. Utiliser un contrôleur pour ajuster la trajectoire : Un contrôleur est utilisé pour ajuster la
trajectoire du robot en fonction de l'erreur de trajectoire. Ce contrôleur utilise les informations de
l'orientation désirée et de l'orientation actuelle pour déterminer les commandes nécessaires pour
ajuster la vitesse des roues gauche et droite du robot.
4. Répéter le processus : Le robot continue de suivre cette trajectoire de référence en répétant les
étapes 2 et 3 jusqu'à ce qu'il atteigne la destination finale.

L'avantage de la méthode de suivi de référence est qu'elle permet un suivi précis de trajectoire en
temps réel en utilisant un contrôleur relativement simple. Cependant, cette méthode peut être
moins efficace dans les environnements complexes ou en présence d'obstacles, car elle ne prend
pas en compte la planification de trajectoire.

Pour étudier la méthode de suivi de référence en Matlab, vous pouvez utiliser les fonctions de
contrôle et de simulation fournies par Matlab pour simuler le comportement d'un robot
autonome à entraînement à direction différentielle. Vous pouvez également ajuster les
paramètres du contrôleur pour optimiser la performance du robot.

Méthode : modélisation de système

R=Rayon des roues

L=Distance entre les roues

R
ẋ= (v + v )cos (ϕ )
2 r l

R ˙
ẏ= (v r +v l )sin (ϕ )
2
R
ϕ̇= ( v +v )
L r l

Méthode : Le modèle unicycle

Le modèle unicycle est un modèle cinématique simplifié qui décrit le mouvement d'un robot
mobile à deux roues qui peut se déplacer dans toutes les directions en ajustant sa vitesse linéaire
et angulaire. Il est souvent utilisé pour la planification de trajectoire et la commande de robots
mobiles, tels que les robots à roues ou les drones.

Le modèle unicycle considère le robot comme un point, situé à une distance R du centre de
rotation de chaque roue. La position du robot est définie par deux coordonnées (x,y) et son
orientation par un angle θ. La vitesse linéaire et angulaire du robot sont respectivement v et ω.

Le modèle cinématique unicycle peut être décrit par les équations suivantes :

ẋ=vcos(ϕ)

ẏ=vsin(ϕ )
ϕ̇=ω

Transformation :

2 v−ωL
v l=
2R

2 v +ωL
v r=
2R

Méthodes : Relier l'entrée aux états

La dérivée des états est égale à l'entrée (les vitesses x et y).


Dans certains cas, la dérivée des états peut être directement reliée à l'entrée du système. Par
exemple, si le système est décrit par un modèle mathématique linéaire et invariant dans le temps,
et si l'entrée est une fonction constante dans le temps, alors il peut être possible de relier
directement la dérivée des états à l'entrée.

Dans le cas d'un système de contrôle de robot, l'entrée est généralement la commande de vitesse
appliquée aux moteurs du robot pour le faire avancer dans une certaine direction. Si le modèle du
système est décrit en termes de coordonnées cartésiennes, alors les dérivées des états (par
exemple, les vitesses linéaires et angulaires du robot) peuvent être directement reliées aux
commandes de vitesse appliquées aux moteurs.

Cependant, dans la plupart des cas, la relation entre les entrées et les dérivées des états est plus
complexe et nécessite une équation différentielle pour relier les deux. Par exemple, pour un robot
mobile à deux roues, la relation entre les commandes de vitesse des moteurs et les dérivées des
états (par exemple, la position et l'orientation du robot) est décrite par des équations non
linéaires qui dépendent des propriétés mécaniques et dynamiques du robot. Dans ce cas, il est
nécessaire d'utiliser des méthodes numériques pour résoudre l'équation différentielle associée au
modèle du système et pour relier les entrées aux états du système.

Où v est la vitesse linéaire, ω est la vitesse angulaire, R est le rayon des roues, L est la distance
entre les roues, ωr et ωl sont les vitesses angulaires des roues droite et gauche, x et y sont les
coordonnées du robot, et θ est l'orientation du robot par rapport à un axe de référence.

Ces équations permettent de calculer la trajectoire du robot en fonction des commandes de


vitesse angulaire des roues gauche et droite. Le modèle unicycle peut être utilisé pour planifier la
trajectoire d'un robot mobile, en calculant la commande optimale de vitesses angulaires pour
atteindre une destination donnée tout en évitant les obstacles sur son chemin.

En utilisant Matlab, il est possible de simuler le modèle unicycle en définissant les paramètres du
robot, les commandes de vitesses angulaires, les conditions initiales et les contraintes du système.
Les fonctions de contrôle et de simulation de Matlab peuvent être utilisées pour calculer la
trajectoire du robot en fonction des entrées de commande et pour afficher graphiquement la
trajectoire simulée.
Exemple : script matlab
Chapitre 1: Asservissement du système
- Le système est asservi en boucle fermée à l'aide de contrôleurs PID pour ajuster la vitesse de
chaque moteur

- Les sorties des contrôleurs PID (vitesses de consigne des roues droite et gauche) sont les entrées
du système (moteurs des roues droite et gauche)

- Les entrées de référence des contrôleurs PID sont les angles désirés pour suivre le chemin

[Le modèle de robot mobile à deux roues dans Simulink est étudié en utilisant une approche
d'asservissement en boucle fermée avec des contrôleurs PID. L'objectif de l'asservissement est
d'ajuster la vitesse de chaque moteur pour suivre un chemin donné.

Les contrôleurs PID (Proportionnel-Intégral-Dérivé) sont des algorithmes de contrôle couramment


utilisés dans l'automatique. Ils calculent une commande de sortie en fonction de l'erreur entre la
valeur mesurée et la valeur de référence. Dans ce cas, les sorties des contrôleurs PID sont les
vitesses de consigne des roues droite et gauche, et les entrées du système sont les moteurs des
roues droite et gauche.

Les entrées de référence des contrôleurs PID sont les angles désirés pour suivre le chemin. Ces
angles sont calculés à partir d'un modèle de chemin pré-défini et sont utilisés pour ajuster la
vitesse de chaque roue de manière à suivre le chemin avec précision.

En résumé, l'étude détaillée du modèle de robot mobile à deux roues dans Simulink comprend une
approche d'asservissement en boucle fermée avec des contrôleurs PID pour ajuster la vitesse de
chaque moteur en fonction des angles de référence pour suivre le chemin de manière précise.

schéma bloc général pour le modèle de robot mobile à deux roues avec asservissement PID :

Angle de Moteur
PID Droit
référance

Angle de Moteur
référance PID Gayche

Dans ce schéma, l'angle de référence est comparé à la valeur de mesure de l'angle réel pour
déterminer l'erreur. Cette erreur est alors entrée dans le contrôleur PID qui calcule une commande
de sortie en fonction de l'erreur, qui est utilisée pour ajuster la vitesse de chaque moteur. Les
sorties des contrôleurs PID sont les vitesses de consigne pour les moteurs des roues droite et
gauche, qui contrôlent la vitesse du robot et sa direction.

Il est important de noter que ce schéma est une représentation générale du modèle de robot
mobile à deux roues avec asservissement PID, et que la mise en œuvre spécifique peut varier en
fonction des détails du système et des objectifs de contrôle.

le schéma bloc simplifié du modèle de robot mobile à deux roues dans Simulink pour
l'asservissement du système :

Trajectoire planning

Contrôle de
trajectoire

Contrôle de
vitesse

Asservissement Asservissement
PID roue gauche PID roue droit

Moteur roue Moteur roue


gauche droite
]
Voici un exemple de tableau pour l’asservissement d’un système robot à 2 roues et 2 moteurs
pour suivre une courbe :

étape Objectif Entrée sortie capteur calculs commandes


Asservissement de Position Erreur de capteur de Calcul de commande pour
1 position actuelle position position l’erreur entre réduire l’erreur
la position de position
actuelle la
position
souhaitée
2 Asservissement de Vitesse Erreur de Capteur de Calcule de Commande pour
vitesse actuelle vitesse vitesse l’erreur entre ajuster la vitesse
la vitesse du moteur
actuelle et la
vitesse
souhaitée
Contrôle de Position Angle Capteur de Calcul de Commande pour
3 d’orientation
trajectoire actuelle , position et l’angle ajuster
vitesse de vitesse d’orientation l’orientation des
actuelle nécessaire roues
pour suivre la
courbe
Commande de la Trajectoire Commande de Non Calcul de la Commande pour
4 souhaitée
trajectoire à suivre mouvement applicable commande de ajuster la vitesse
mouvement et l’orientation
nécessaire des roues
pour suivre la
courbe

il existe des capteurs qui peuvent être utilisés dans le cadre de la robotique pour suivre une
courbe à 2 roues et 2 moteurs. Voici quelques exemples de capteurs couramment utilisés dans ce
domaine :

1-Capteurs de position angulaire : ces capteurs mesurent l'angle de rotation des roues ou des
moteurs du robot, ce qui permet de déterminer sa position.

2-Capteurs de vitesse : ces capteurs mesurent la vitesse de rotation des roues ou des moteurs, ce
qui permet de déterminer la vitesse du robot.

3-Capteurs de distance : ces capteurs mesurent la distance parcourue par le robot, ce qui permet
de déterminer sa position.
4-Capteurs de proximité : ces capteurs mesurent la distance entre le robot et un objet proche, ce
qui permet de détecter les obstacles et d'éviter les collisions.

5-Capteurs de vision : ces capteurs utilisent des caméras pour capturer des images de
l'environnement du robot, ce qui permet de détecter les obstacles et de suivre une trajectoire
prédéfinie.

En ce qui concerne la génération de code en MATLAB, il est possible de créer des scripts et des
fonctions pour interagir avec les capteurs du robot, traiter les données capturées et calculer les
commandes nécessaires pour suivre la trajectoire souhaitée. Il est également possible d'utiliser
l'environnement Simulink pour modéliser et simuler le comportement du robot en utilisant les
capteurs et les contrôleurs appropriés

Schéma bloc représentant la structure en boucle fermée d’un robot


suivant une trajectoire courbe :
Commande de
Erreur de 0mbdErreur Commande de Trajectoire
vitesse
position d’angle vitesse
angulaire

Robot

Les blocs représentent :


Retour à la
• Trajectoire : la trajectoire désirée que le robot doit suivre. mesure

•Erreur de position : la différence entre la position actuelle du robot et la position désirée sur la
trajectoire.

•Erreur d'angle : la différence entre l'angle actuel du robot et l'angle désiré pour suivre la
trajectoire.

•Commande de vitesse : la commande de vitesse linéaire envoyée au robot pour le faire avancer
sur la trajectoire.

•Commande de vitesse angulaire : la commande de vitesse angulaire envoyée au robot pour


l'orienter sur la trajectoire.

•Robot : le robot qui suit la trajectoire.


Retour à la mesure : la mesure de la position et de l'angle actuels du robot, utilisée pour calculer
l'erreur de position et d'angle

schéma-bloc en boucle fermée pour un robot suivant une trajectoire donnée:

Blocs Entrée Sorties


Trajectoire - x,y
Pose actuelle - x_actual,yactual,theta_actual
Calcul d’erreur x,y,x_actual,y_actual x_error,y_error
de position
Calcul d’erreur X_error, angle_error
de position Y_error,
Theta_actual
Commande de Kp,Ki,Kd,x_error,y_error,integral,last_error,dt V
vitesse linéair
Commande de Kp, Ki, Kd, x_error, y_error, integral, last_error, w
vitesse dt
angulaire
Commande V , W -
au robot

Le bloc "Trajectoire" calcule les valeurs de x et y correspondant à la trajectoire à suivre. Le bloc


"Pose actuelle" récupère la position actuelle du robot en x, y et theta. Les blocs "Calcul d'erreur de
position" et "Calcul d'erreur d'angle" calculent respectivement les erreurs de position et d'angle
entre la trajectoire à suivre et la position actuelle du robot. Les blocs "Commande de vitesse
linéaire" et "Commande de vitesse angulaire" calculent les commandes de vitesse linéaire et
angulaire à envoyer au robot pour suivre la trajectoire. Enfin, le bloc "Commande au robot" envoie
les commandes de vitesse calculées au robot

système de suivi de trajectoire de robot en boucle fermée :

Entrées :

•Consigne de trajectoire : x_d, y_d

•État actuel du robot : x, y, θ

Sorties :
•Commandes de mouvement : v, ω

Bloc 1 : Calcul de l'erreur de position

•Entrées : x_d, y_d, x, y

•Sorties : e_x, e_y

•Opération : e_x = x_d - x, e_y = y_d - y

Bloc 2 : Calcul de l'erreur d'angle

•Entrées : e_x, e_y, θ

•Sorties : e_θ

•Opération : e_θ = atan2(e_y, e_x) - θ

Bloc 3 : Calcul de la commande de vitesse linéaire

•Entrées : e_x, e_y, intégrale de l'erreur d'angle, dérivée de l'erreur d'angle

•Sortie : v

•Opération : v = Kp * sqrt(e_x^2 + e_y^2) + Ki * intégrale(e_θ) + Kd * dérivée(e_θ)

Bloc 4 : Calcul de la commande de vitesse angulaire

•Entrées : e_θ, intégrale de l'erreur d'angle, dérivée de l'erreur d'angle

•Sortie : ω

•Opération : ω = Kp * e_θ + Ki * intégrale(e_θ) + Kd * dérivée(e_θ)

Bloc 5 : Mise à jour des variables de la boucle de contrôle

•Entrées : e_θ, intégrale de l'erreur d'angle, temps d'échantillonnage

•Sorties : dernière erreur d'angle, intégrale de l'erreur d'angle

•Opération : dernière erreur d'angle = e_θ, intégrale de l'erreur d'angle = intégrale de l'erreur
d'angle + e_θ * temps d'échantillonnage

Bloc 6 : Commande du robot


•Entrées : v, ω

•Sortie : aucune

•Opération : envoyer les commandes de vitesse linéaire et angulaire au robot

Bloc 7 : Vérification de la fin de la trajectoire

•Entrées : temps courant, temps initial de la boucle

•Sortie : signal de sortie

•Opération : si temps courant - temps initial > temps de parcours de la trajectoire, signal de sortie
= vrai

Bloc 8 : Arrêt du robot

•Entrée : aucune

•Sortie : aucune

•Opération : arrêter le robot et le fermer.

Chapitre 2: Performances du système

Introduction :
Dans cette leçon, nous allons explorer les performances d'un système de robotique à deux roues
et deux moteurs pour le suivi de courbe. Les performances d'un tel système sont mesurées en
termes de précision, de rapidité et de stabilité.
Objectifs de la leçon :

- Comprendre les performances d'un système de robotique à deux roues et deux moteurs pour le
suivi de courbe.

- Comprendre comment les performances sont mesurées en termes de précision, de rapidité et de


stabilité.

- Comprendre l'importance des gains PID et de la période d'échantillonnage pour les performances
du système.

- Précision:
Capacité du robot à suivre précisément le chemin de référence. Elle dépend des gains PID et de la
période d'échantillonnage.

L'erreur de positionnement peut être définie comme l'écart entre la position de référence du
robot et sa position réelle. L'objectif de la commande est de minimiser cette erreur. Le contrôleur
PID utilise l'erreur pour ajuster les commandes envoyées aux moteurs. Le terme proportionnel P
est proportionnel à l'erreur, le terme intégral I est proportionnel à l'intégrale de l'erreur sur le
temps, et le terme dérivé D est proportionnel à la dérivée de l'erreur sur le temps. Ainsi, l'erreur
de positionnement peut être écrite comme :

e(t) = r(t) - y(t)

où e(t) est l'erreur de positionnement à l'instant t, r(t) est la position de référence à l'instant t, et
y(t) est la position réelle du robot à l'instant t.

La commande envoyée aux moteurs peut être écrite comme :

u(t) = Kp e(t) + Ki ∫ e(t) dt + Kd de(t)/dt

où u(t) est la commande envoyée aux moteurs, Kp, Ki et Kd sont les gains proportionnel, intégral
et dérivé respectivement, et ∫ et de/dt représentent l'intégrale et la dérivée par rapport au
temps.
- Rapidité:
Vitesse à laquelle le robot atteint le chemin de référence et corrige les erreurs. Elle dépend des
gains PID.

La rapidité du système peut être caractérisée par sa bande passante. Plus la bande passante est
élevée, plus le système est rapide. La bande passante peut être définie comme la fréquence à
laquelle la réponse du système atteint -3 dB par rapport à sa valeur en régime permanent. Elle
peut être calculée à partir de la fonction de transfert en boucle fermée du système, qui relie la
sortie du système (la position réelle du robot) à l'entrée (la position de référence). Pour un
système du second ordre, la bande passante peut être exprimée en fonction du coefficient
d'amortissement ζ et de la pulsation naturelle ωn comme suit :

ωb = ωn √(1-ζ²)

où ωb est la bande passante en rad/s, ωn est la pulsation naturelle en rad/s et ζ est le coefficient
d'amortissement sans unité.

- Stabilité:
Le système doit rester stable lors du suivi du chemin pour éviter les oscillations. Elle dépend des
gains PID.

La stabilité du système est liée à la position des pôles de la fonction de transfert en boucle fermée.
Pour qu'un système soit stable, tous ses pôles doivent être situés dans la partie gauche du plan
complexe. Le contrôleur PID peut être réglé pour garantir la stabilité du système en utilisant des
méthodes telles que la méthode du placement des pôles ou la méthode de la réponse
fréquentielle. Le coefficient d'amortissement ζ peut être utilisé pour contrôler la stabilité du
système. Un coefficient d'amortissement faible peut entraîner des oscillations, tandis qu'un
coefficient d

c/c :

- Précision: Capacité du robot à suivre précisément le chemin de référence. Elle dépend des gains
PID et de la période d'échantillonnage.

- Rapidité: Vitesse à laquelle le robot atteint le chemin de référence et corrige les erreurs. Elle
dépend des gains PID.
- Stabilité: Le système doit rester stable lors du suivi du chemin pour éviter les oscillations. Elle
dépend des gains PID.

Chapitre 3: Analyse temporelle - Système du 2ème ordre


- Le système peut être modélisé comme un système du 2ème ordre avec deux pôles correspondant
aux dynamiques des moteurs des roues.

- L'analyse temporelle du système passe/passe-haut est utilisée pour déterminer les performances
temporelles du système (temps de montée, dépassement).

Chapitre 4: Diagrammes de Bode et de Nyquist


- Ces diagrammes sont utilisés pour analyser la stabilité et les performances en boucle fermée du
système.

- Ils permettent de régler les gains PID pour satisfaire aux spécifications de stabilité et de
performance.

Chapitre 5: Étude des systèmes asservis


- Cette partie analyse la capacité du système asservi par PID à suivre fidèlement la trajectoire de
référence.

- Elle étudie l'écart statique, l'erreur dynamique pour différentes entrées de référence.

Chapitre 6: Correction des systèmes asservis


- Cette partie propose des solutions pour améliorer les performances du système comme augmenter
la bande passante, ajouter un filtre, etc.

- Elle analyse l'effet de ces solutions sur les performances globales du système asservi.

J'espère que cette étude du modèle Simulink du robot mobile répond à votre question. N'hésitez pas
à demander des éclaircissements ou des détails supplémentaires sur l'un des chapitres.

Vous aimerez peut-être aussi