positioning and control of mobile robots_miamo_ekf
TRANSCRIPT
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
1/43
Laboratoire dAutomatique
Jean Martial Miamo Nguekam Dr. Denis GilletEtudiant en 4ime anne Electricit Levente Bodizs
EPFL - LA
Projet de Semestre / Et
Anne acadmique 2004 / 2005
POSITIONING AND CONTROL OF
MOBILE ROBOTS
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
2/43
2
TABLE DES MATIERES
1 INTRODUCTION.............................................................................................4
2 MODLISATION DU ROBOT KHEPERA...................................................5
3 LE SYSTME DE MESURE ............................................................................7
4 LE TRAITEMENT DIMAGE ..........................................................................8
4 1 Matrice de pixels couleur et matrice de pixels noirs et blancs............................. 8
4 2 Dtermination du centre de gravit des deux robots ................................................ 8
4 3 Sparation de limage ........................................................... ........................................................ 9
4 4 Calcul des positions de chaque robot dans le repre associ chaqueimage......................................................... ........................................................... ............................................. 10
4 4 1 Cas de la coupe verticale .......................................................... ................................... 104 4 2 Cas de la coupe horizontale .................................................... ................................... 11
4 5 Test du programme de traitement dimage .................................................... ............... 12
5 LE FILTRE DE KALMAN ETENDU ............................................................13
5 1 La prdiction........................................................... ........................................................... ............... 13
5 2 La correction des mesures .......................................................... ............................................. 15
5 3 Simulation du filtre de Kalman sous Matlab et Labview ........................................ 16
5 4 Implantation du filtre de Kalman en temps rel................................................ ......... 17
6 LA COMMANDE PRDICTIVE ...................................................................19
6 1 Schma de commande .......................................................... ...................................................... 20
6 2 Gnration de la trajectoire de rfrence........................................................ ............... 21
6 3 Les paramtres de la commande prdictive implante .......................................... 22
7 TESTS EXPRIMENTAUX...........................................................................23
7 1 Test de convergence du filtre de Kalman Etendu ............................................... ........ 237 1 1 Exprience 1 ........................................................ ........................................................... ..... 237 1 2 Exprience 2 ........................................................ ........................................................... ..... 24
7 2 Effet du filtre de Kalman suite aux perturbations...................................................... 257 2 1 Exprience 1 : 4 perturbations ........................................................ ......................... 257 2 2 Exprience 2 : 3 perturbations ........................................................ ......................... 26
7 3 Trajectoire du matre et de lesclave ........................................................ ......................... 287 3 1 Matre immobile........................................................... ...................................................... 28
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
3/43
3
7 3 1 1 Exprience 1 ........................................................................... 287 3 1 2 Exprience 2 ........................................................................... 29
7 3 2 Matre mobile ...................................................... ........................................................... ..... 307 3 2 1 Exprience 1 ........................................................................... 307 3 2 2 Exprience 2 ........................................................................... 32
7 3 2 3 Exprience 3 ........................................................................... 33
8 CONCLUSION ................................................................................................34
ANNEXE A ..............................................................................................................35
ANNEXE B ..............................................................................................................37
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
4/43
4
1 Introduction
Le robot Khepera est un vhicule autonome muni de deux roues qui a t
dvelopp par le Laboratoire des systmes autonomes de lEPFL. Il a fait lobjet
de plusieurs projets mens au sein du Laboratoire dautomatique de lEPFL.
Contrairement aux tudes prcdentes, notre tude porte sur deux robots.
Lobjectif tait dimplmenter en temps rel sur un Robot esclave ou
prdateur une technique de contrle commande qui lui permet de rattraper un
deuxime robot matre qui se dplace selon une trajectoire alatoire sur une
plate-forme.
Le systme de mesure que nous utilisons est celui propos par Herrera [1]. Il
sagit principalement dune camera digitale. Limage quelle fournit est traite
par un programme de traitement dimage dvelopp sous LabView. Le rsultat
dudit traitement est lobtention en temps rel de la position du robot mobile sur
la plate-forme. Les positions mesures sont entaches derreurs. Cest la raison
pour laquelle nous avons choisi de les filtrer avant de les utiliser dans
lalgorithme de commande : pour cela, le filtre de Kalman est utilis. Les raisonsde ce choix seront exposes dans les paragraphes suivants.
Pour commander le robot esclave , la commande Prdictive a t utilise.
Dans la suite, nous consacrerons un bref paragraphe la modlisation du robot
Khepera. Le systme de mesure et le programme de traitement dimage pour
deux robots mobiles feront lobjet dun autre paragraphe dtaill. Ensuite, il sera
question du Filtre de Kalman Etendu puis limplmentation de la commande
prdictive.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
5/43
5
2 Modlisation du robot Khepera
La modlisation dun systme dynamique est une tape trs importante pour la
conception dune commande telle que la commande prdictive. La qualit dun
rgulateur dpend fortement de celle du modle du systme dynamique quon
veut commander. Herrera [1] et Niederberger [2] ont propos deux modles pour
le robot Khepera. Seul celui bas sur une trajectoire rectiligne et qui considre le
robot comme un point a t retenu. Il est causal et non linaire :
( ) ( ) ( ) ( )( ) ( )
( ) ( ) ( ) ( )( ) ( )
( ) ( ) ( ) ( )( )kVkVL
hkk
kkVkVh
kyky
kkVkVh
kxkx
lr
lr
lr
+=+
++=+
++=+
1
sin
2
1
cos2
1
Ce set dquations montre quil sagit dun systme multivariable qui possde
deux entres ( )kVr et ( )kVl qui sont respectivement les signaux qui permettent
dalimenter les roues droite et gauche du robot. Il ya trois sorties qui sont ( )kx ,
( )ky , ( )k qui sont respectivement labscisse, lordonne et la position angulaire
du robot dans le repre dfinit comme sur la figure ci-dessous :
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
6/43
6
h est la priode dchantillonnage et L est la distance entre les deux roues du
robots. Le modle dtat du robot est donn ci-dessous :
Le programme et les rsultats de simulation dans Matlab et Labview du modle
se trouvent en annexe A. Le programme Labview qui permet de simuler le
modle doit tre utilis avec la version 6.1 de Matlab. Avant de lexcuter, il
faut au pralable ouvrir Matlab 6.1
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
7/43
7
3 Le systme de mesure
1 : camera digitale
2 : plate-forme
3 : robot Khepera
Sur la plate-forme de couleur noire, on peut voir deux robots : lesclave et le
matre. Vu de dessus, le matre est de couleur blanche alors que lesclave lest
aussi mais avec deux cercles remplis en noire qui permettent au programme de
traitement dimage de calculer sa position angulaire. La camera digitale fournit
une image en couleur qui sera ensuite traite par le programme de traitement
dimage afin de dterminer les trois tats de chaque robot.
1
23
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
8/43
8
4 Le Traitement dimage
Nous nous sommes largement inspirs du programme de traitement dimage
dvelopp par Herrera [1] qui permet de calculer les trois tats x, y, dun seul
robot. Le programme que nous avons dvelopp tient compte de la prsence de
deux robots sur la plate forme.
La procdure de traitement est divise en plusieurs tapes.
4 1 Matrice de pixels couleur et matrice de pixels noirs et blancs
Tout dabord, limage en couleur acquise est transforme en une matrice de
pixels dont chacun est cod sur 24 bits. Cette matrice est ensuite transforme en
une autre matrice toujours code sur 24 bits mais dont les couleurs sont noires
ou blanches. Cette matrice donne une image qui a lapparence suivante :
4 2 Dtermination du centre de gravit des deux robots
Dans loptique de diviser limage ci-dessus en deux images distinctes, labscisse
et lordonne du centre de gravit des deux robots sont calcules.
Robot esclave Robot matre
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
9/43
9
4 3 Sparation de limage
Selon le rsultat dun critre qui porte sur la position dun robot par rapport
lautre, une coupe verticale ou horizontale de limage est effectue.
Si les deux robots ont par exemple la position suivante, alors une coupe verticale
est faite :
Une coupe horizontale est faite dans le cas suivant :
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
10/43
10
4 4 Calcul des positions de chaque robot dans le repre associ chaque
image
Aprs avoir effectu les coupes, chaque robot se trouve dans un systme daxe
dans lequel on dterminera sa position. Pour le robot esclave , les trois tats
seront calculs alors seuls labscisse et lordonne du robot matre seront
estimes.
4 4 1 Cas de la coupe verticale
Calcul de 111 ,, yx
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
11/43
11
Calcul de 22 , yx
4 4 2 Cas de la coupe horizontale
Calcul de 111 ,, yx
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
12/43
12
Calcul de 22 , yx
4 5 Test du programme de traitement dimage
Lacquisition dimage et son traitement prennent un temps relativement grand.
En ce qui concerne les rsultats fournis par le programme, ils sont noys
dans du bruit. Cest la raison pour laquelle nous devons les filtrer. Le filtre de
Kalman set bien adapt pour ce type dexprience.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
13/43
13
5 Le filtre de Kalman Etendu
Le filtre de Kalman a t dvelopp dans les annes 1960 par R.E Kalman. Il est
constitu dun set dquations discrtes qui permettent destimer les tats dun
systme par rapport aux donnes mesures. Etant donn que le modle du
systme est non linaire, nous avons choisi le filtre de Kalman Etendu.
Lexcution du filtre de Kalman Etendu se fait en deux tapes et dune faon
cyclique.
5 1 La prdiction
Connaissant le modle dtat du systme, on estime ltat a priori du systme.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
14/43
14
Il faut initialiser lexcution avec le vecteur dtat nul c'est--dire
=
=
=
=
0
0
0
0
y
x
x .
Le vecteur
=
1
1
1 k
l
k
rk
vvu est fourni en temps rel par le robot esclave qui se
dplace.
Pour calculer KP , il faut initialiser 1kP par
=
0,0,1
00,1,
01,0,
0P la matrice identit de
dimension 3.
=
lr
lr
lr
v*L
h-v*
L
h+
v*sin*2
h+v*sin*
2
h+y
v*cos*2
h+v*cos
2
h+x
f
=
y
x
X
=
l
r
v
vu
( )XfjacobienAk ,
0,0,1
(k)v*(k))cos(*h*1/2+(k)v*(k))cos(*h*1/20,1,
(k)v*(k))sin(*h*1/2-(k)v*(k))sin(*h*1/2-1,0,
lr
lr
=
=
=
0,0,1
00,1,
01,0,
kW
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
15/43
15
=2
3
2
2
2
1
0,0,
0,0,
0,0,
kQ Matrice constante obtenue par tuning qui modlise le bruit du
systme.
5 2 La correction des mesures
On calcule le gain de Kalman kK par lexpression suivante :
=
0,0,1
00,1,
01,0,
kH
=
0,0,1
00,1,
01,0,
kV
=
2
2
y
2
x
0,0,
0,0,
0,0,
k
R Matrice constante qui modlise le bruit sur les mesures.
Mise jour de ltat du systme sur la base des mesures
=
mesure
mesure
mesure
k y
x
z
:
Mise jour de lerreur de covariance :
=
0,0,1
00,1,
01,0,
I
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
16/43
16
5 3 Simulation du filtre de Kalman sous Matlab et Labview
Nous avons simul le modle avec un bruit blanc ce qui caractrise les mesures.
Ensuite lalgorithme du filtre de Kalman Etendu a t utilis pour filtrer ces
mesures.
Le programme et les rsultats de la simulation se trouvent en annexe B. Avant
dexcuter le programme sous Labview, il faut ouvrir Matlab 6.1.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
17/43
17
Face avant
5 4 Implantation du filtre de Kalman en temps rel
Aprs avoir obtenu des bons rsultats lors de la simulation, nous avons implant
filtre de Kalman Etendu afin quil puisse march en temps rel. Nous avons
remarqu deux problmes :
Lalgorithme utilise comme tat initial le vecteur
==
=
=
00
0
0y
x
x . Avant la
mise en marche du robot, il occupe une position qui diffrente de celle du
vecteur initial. Il faut donc attendre un certain temps pour que le rsultat
converge vers la vraie position du robot sur la plate-forme avant de mettre
le robot en marche. Sinon les rsultats seront fausss.
La priode dchantillonnage utilise pour la simulation nest identique
celle de Labview. Nous lavons dabord estime. Elle est environ 140ms.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
18/43
18
Pour vrifier la qualit du filtre implant, nous avons ralis deux expriences :
le robot esclave dcrivant une trajectoire rectiligne
le robot esclave dcrivant une trajectoire circulaire
Les rsultats de ces deux expriences se trouvent en annexe B.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
19/43
19
6 La commande prdictive
Pour que le robot esclave puisse rattraper le robot matre , nous avons
opt dutiliser la commande prdictive. Ce choix a t motiv par les tudes
prcdemment faites par Niederberger [2] et Herrera [1].
En fait, la commande prdictive consiste trouver sur un horizon donn, la
commande appliquer sur un systme et qui minimiserait une fonction de cot.
Cette dernire dpend de la trajectoire de rfrence ( )kr , de ltat du systme
( )kx et de la grandeur de rglage ( )ku .
La fonction de cot que nous avons choisie est de la forme suivante :
Connaissant le modle du systme, le prdicteur est :
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
20/43
20
La commande qui minimise la fonction de cot est la suivante :
Avec :
6 1 Schma de commande
Le PC1 permet de commander le robot matre afin quil puisse se dplacer
sur la plate-forme en dcrivant une trajectoire alatoire. La camera est reli au
PC2.Sur ce dernier, est install le programme de traitement dimage qui fournit
en temps rel les positions des deux robots mobiles. Le filtre de Kalman Etendu
y est aussi utilis pour filtrer les mesures de position du robot esclave . Enfin
la commande prdictive y est aussi implante pour le robot esclave .
Camera
Commande du robot Matre
Commande du robot Esclave
-Traitement dimage-Implantation du filtre deKalman
-Commande prdictive
Position des deux robots
Choix de la trajectoire du Matre
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
21/43
21
6 2 Gnration de la trajectoire de rfrence
Pour utiliser la commande prdictive, il faut connatre la trajectoire de rfrence.
Etant donn que les deux robots sont mobiles, cette trajectoire doit tre gnre
aprs chaque priode dchantillonnage. A cause de cette trajectoire variable
dune priode dchantillonnage lautre, on pourrait dire quil ne sagit plus de
la commande prdictive classique.
La gnration de cette trajectoire se fait en plusieurs tapes :
Grce la camera digitale et au programme de traitement dimage, les
positions des deux robots sont utilises pour estimer en temps rel la
distance qui les spare.
Ensuite on choisit la vitesse laquelle le robot esclave doit se dplacer
pour rattraper le robot matre .
Connaissant la distance entre les deux robots et la vitesse de dplacement,
on peut estimer le temps de parcours ncessaire au robot esclave pour
rattraper le robot matre .
Ce temps de parcours est ensuite converti en nombre dchantillons.
Par interpolation linaire, on gnre une trajectoire partant de la position
de lesclave celle du matre.
Esclave
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
22/43
22
6 3 Les paramtres de la commande prdictive implante
Nous avons choisi un horizon de control 5=cN et un horizon de
prdiction 6=pN . Les matrices Q et sont des matrices identit.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
23/43
23
7 Tests exprimentaux
Lesclave doit rattraper le matre quelques soit la trajectoire que ce dernier
dcrit. Lesclave ne doit pas percuter le matre. Le robot esclave sarrte
lorsque la distance qui spare les centres de gravit des deux robots est gale 5
fois L (distance qui spare les deux roues dun robot).
7 1 Test de convergence du filtre de Kalman Etendu
Lalgorithme du filtre de Kalman Etendu que nous avons implant a t initialis
avec le vecteur( )0,0,0 === yx . Exprimentalement, le robot esclave peut
tre initialement positionn en nimporte quel point sur la plate-forme. Cest la
raison pour laquelle avant de dmarrer lexprience, on laisse dabord quelques
secondes afin que le filtre de Kalman converge vers la vraie position initiale du
robot.
7 1 1 Exprience 1
Trajectoire dun robot
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
24/43
24
Angle
7 1 2 Exprience 2
Trajectoire dun robot
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
25/43
25
Angle
7 2 Effet du filtre de Kalman suite aux perturbations
7 2 1 Exprience 1 : 4 perturbations
Trajectoire dun robot
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
26/43
26
Angle
7 2 2 Exprience 2 : 3 perturbations
Trajectoire dun robot
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
27/43
27
Angle
Lexprience 2 a t ralise avec les valeurs des matrices de covariance
diffrentes de celles de lexprience 1: Pour la seconde exprience, les lments
diagonaux de la matrice Q sont 10 fois infrieures celle de la premire
exprience. Le filtre de Kalman de la premire exprience est moins robuste aux
perturbations. Alors quil attnue quasiment bien les perturbations lors de la
seconde exprience.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
28/43
28
7 3 Trajectoire du matre et de lesclave
7 3 1 Matre immobile
7 3 1 1 Exprience 1
Trajectoire
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
29/43
29
Angle
7 3 1 2 Exprience 2
Trajectoire
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
30/43
30
Angle
7 3 2 Matre mobile
7 3 2 1 Exprience 1
Trajectoire
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
31/43
31
Angle
Lorsquon observe la variation de langle tout au long de cette exprience, on
se rend compte que lorsque lesclave est proche du matre, il varie brusquement.
Ceci est d au programme de traitement dimage.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
32/43
32
7 3 2 2 Exprience 2
Trajectoire
Angle
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
33/43
33
7 3 2 3 Exprience 3
Trajectoire
Angle
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
34/43
34
Pour les deux expriences prcdentes, lesclave percute le matre lorsquil le
rattrape. La reprsentation dans Matlab des trajectoires et de la position finale
des deux robots montre le contraire. Nous pensons que ceci est la camera qui
filme les deux robots sous un angle.
8 Conclusion
Malgr plusieurs difficults rencontres lors de la phase dimplantation du filtre
de Kalman et de la commande prdictive non classique, on peut dire que le
cahier de charge a t quasiment respect. Il reste encore des quelques
amliorations apportes, notamment sur l'amlioration du temps de traitement
des diffrents algorithmes qui est encore relativement lev et le programme de
traitement dimage. Nous avons aussi bnfici dune solide base thorique
ralise par Niederberger et Herrera.
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
35/43
35
ANNEXE A
A1 : Programme Matlab de calcul du Jacobien
A2 : Programme Matlab pour le modle
A3 : Programme de simulation du modle
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
36/43
36
A4 : rsultat de la simulation
A5 : rsultat simulation dans Labview
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
37/43
37
ANNEXE B
B1 : Programme qui simule le modle bruit
B2 : Simulation du filtre de Kalman Etendu
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
38/43
38
B3 : Rsultat de la simulation du modle bruit
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
39/43
39
B4 : Rsultat de la simulation du filtre de Kalman Etendu
B5 : Rsultat sous Labview : modle bruit
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
40/43
40
B6 : Rsultat sous Labview : sortie filtre
B7 : Simulation en temps rel : trajectoire rectiligne
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
41/43
41
B8 : Simulation en temps rel : angle pour trajectoire rectiligne
B9 : Simulation en temps rel : trajectoire circulaire
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
42/43
42
B10 : Simulation en temps rel : angle pour trajectoire circulaire
-
8/3/2019 Positioning and Control of Mobile Robots_miamo_ekf
43/43
BIBLIOGRAPHIE:
[1] Trajectory tracking trough predictive control: application to the Khepera
robot, Juan Herrera, Diploma thesis, 1999
[2] Predictive control Design for a Khepera robot: Principles, Simulations and
Real-time Implementation, Andr S.P Niederberger, Diploma thesis, February
2002
[3] Position estimation and control of an autonomous vehicle, Joana Maria
Comas Marti, Diploma thesis, June 2005
[4] An introduction to the Kalman filter, Greg Welch and Gary Bishop,
University of North California at Chapel Hill, April 2004