HAL Id: hal-02597621
https://hal.inrae.fr/hal-02597621
Submitted on 15 May 2020
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
pour le contrôle d’une flotte de robots mobiles en
milieux naturels
J.B. Braconnier
To cite this version:
J.B. Braconnier. Implémentation et modification de lois de commande pour le contrôle d’une flotte de robots mobiles en milieux naturels. Sciences de l’environnement. 2012. �hal-02597621�
Rapport de Projet de Fin d’´Etudes
–
Impl´
ementation et modification de
lois de commande pour le contrˆ
ole
d’une flotte de robots mobiles en
milieux naturels
Jean-Baptiste Braconnier
3
eme`ann´
ee – Pˆ
ole MMS – M´
ecatronique
7 septembre 2012 Entreprise : IRSTEA Tuteur Entreprise : Roland LENAIN Tuteur IFMA : Nicolas BOUTON Date : du 26 mars 2012 au 26 septembre 2012
Institut nationale de Recherche en Sciences et Technologie pour l’Environement et l’Agriculture
Campus Universitaire des C´ezeaux
24 Avenue des landais 63172 Aubi`ere
Institut Franc¸ais de M´ecanique Avanc´ee
Campus de Clermont-Ferrand - Les C´ezeaux 63175 Aubi`ere Cedex - France Tel. +33 (0)4 73 28 80 00 - Fax +33 (0)4 73 28 81 00 [email protected] -www.ifma.fr
TITRE DU RAPPORT :
Rapport de Projet de Fin d’´Etudes
AUTEUR(S) : Jean-Baptiste Braconnier MMS – M´ecatronique
Date du document Nb pages R´ef´erence du document
7 septembre 2012 89 RapportIFMA.pdf
R´ESUM´E :
Le projet vise `a d´evelopper des strat´egies de commande pour contrˆoler et asservir une flotte de robots mobiles
Les plateformes permettant de tester ces lois de commandes sont aux nombre de trois : RobuFAST, Arroco, et un tracteur Massey Fergusson.
Lors de ce PIFE, mes missions ont ´et´e d’´etablir et de simuler la commande pr´edictive en vitesse des robots de la flotte, puis de travailler sur la m´ethode de positionnement des robots.
Mots-cl´e : Robotique mobile,commande
ABSTRACT :
The aims of my end of study project is to develop strategies of command to control and enslave a fleet of mobile robots
Platforms allowing to test these laws of commands are in number of three: RobuFAST, Arroco, and a Massey Fergusson tractor.
During this PIFE, my missions were to establish and to simulate the predictive speed command for robots of the fleet, then to work on the method of positioning of robots
Table des mati`
eres
Avant-propos 7
Introduction 9
1 Pr´esentation de l’IRSTEA 11
1.1 L’IRSTEA en France . . . 12
1.1.1 Les diff´erents centres en France . . . 12
1.1.2 Les diff´erents d´epartements . . . 12
1.1.3 Les produits de l’IRSTEA . . . 13
1.2 L’IRSTEA en Auvergne - Limousin . . . 14
1.2.1 Sp´ecificit´es et missions . . . 14
1.2.2 Les unit´es de recherche . . . 14
2 D´emonstrateur, instrumentation et commandes existantes 17 2.1 D´emonstrateurs et instrumentation . . . 18
2.1.1 Robots utilis´es . . . 18
2.1.2 Instrumentation . . . 19
2.2 Mod´elisation du robot et lois de commandes . . . 21
2.2.1 Mod`ele cin´ematique ´etendu . . . 21
2.2.2 Lois de commandes non lin´eaires de l’angle de braquage . . . 22
2.3 Conclusion sur la commande pour le suivi de trajectoires . . . 25
3 Lois de commandes d’une flotte de robots mobiles 27 3.1 Mod´elisation du probl`eme . . . 28
3.2 Lois de commande longitudinale et lat´erale . . . 29
3.2.1 Loi de commande longitudinale . . . 29
3.2.2 Loi de commande lat´eral . . . 30
3.3 Loi de commande longitudinale pr´edictive . . . 31
3.3.1 D´ecomposition de la loi de commande . . . 32
3.3.2 Mod´elisation du bas niveau . . . 32
3.3.3 Application de la commande pr´edictive au terme attach´e `a la tra-jectoire . . . 33
3.3.4 Simulation et r´esultats . . . 35
3.4 R´esultats en test r´eel . . . 37
3.5 Conclusion sur le convoi de robots . . . 38
4 Navigation inertielle 39 4.1 Positionnement hybrid´e . . . 40
4.2 Les diff´erents rep`eres d’´etude et matrices de passage . . . 40
4.3.1 Initialisation de l’attitude : . . . 43
4.3.2 M´ethode de calcul d’attitude : . . . 43
4.4 Calculs de la position . . . 44
4.4.1 Utilisation des donn´ees inertielles seules . . . 44
4.4.2 utilisation des capteurs de vitesse des roues . . . 46
4.4.3 Estimation de βr avec les donn´ees inertielles . . . 50
4.5 R´esultats test r´eel . . . 53
4.5.1 Positionnement calcul´e sans hybridation . . . 53
4.5.2 Positionnement calcul´e avec hybridation . . . 54
4.5.3 Suivi de trajectoire en utilisant le positionnement calcul´e par hy-bridation . . . 56
4.5.4 Suivi de trajectoire en utilisant le positionnement calcul´e par hy-bridation avec une perte GPS pendant le suivi . . . 57
4.6 Conclusion sur le positionnement `a haute vitesse . . . 58
5 Conclusion sur mon stage et travaux futurs 59 A Principe de la commande pr´edictive 61 B Les diff´erents mod`eles sous matlab/simulink 63 B.1 Mod´ele simulink de suivi de trajectoire d’un robot seul . . . 63
B.2 Mod´ele simulink du convoi de deux robots sans pr´ediction sur la commande en vitesse . . . 65
B.3 Mod`ele simulink du convoi de deux robots avec pr´ediction sur la commande en vitesse . . . 65
C R´esultats des tests en conditions r´eelles de la commande pr´edictive en vitesse 67 C.1 ´Ecart lat´eral `a 2 m, ´ecart longitudinal `a 9 m . . . 68
C.1.1 Sans pr´ediction . . . 68
C.1.2 Horizon de pr´ediction 1.1 s . . . 69
C.1.3 Horizon de pr´ediction 1.5 s . . . 70
C.1.4 Horizon de pr´ediction 2 s . . . 71
C.1.5 Comparaison des diff´erentes courbes . . . 72
C.2 ´Ecart lat´eral `a 3 m, ´ecart longitudinal `a 9 m . . . 73
C.2.1 Sans pr´ediction . . . 73
C.2.2 Horizon de pr´ediction 1.1 s . . . 74
C.2.3 Horizon de pr´ediction 1.5 s . . . 75
C.2.4 Comparaison des diff´erentes courbes . . . 76
D Programmes et algorithmes 77 D.1 Algorithme pour la commande pr´edictive en vitesse . . . 77
D.2 Classe Estimpos (hpp et cpp) permettant le calcul de position `a haute fr´equence . . . 78
D.2.1 Fichier header (Estimpos.hpp) . . . 78
Avant Propos
Ce rapport et le fruit de mon stage de fin d’´etude de 6 mois `a l’Institut nationale de Recherche en Sciences et Technologie pour l’Environnement et l’Agriculture, au sein de l’´equipe TEAM (Technologies pour l’´Epandage, les Agro-´equipements, la Mobilit´e)
Je tiens `a remercier mon tuteur IRSTEA, Roland Lenain, ainsi que mon tuteur IFMA,
Nicolas Bouton qui m’ont permis de travailler dans le domaine de la robotique et qui m’ont encadr´e tout au long de ce stage.
Je remercie ´egalement Michel Berducat qui m’a accueilli au sein de son ´equipe, ainsi que Pierre Cartade avec qui j’ai travaill´e, et partag´e mon bureau durant toute la dur´e de ce stage.
Introduction
Aujourd’hui la robotique mobile repr´esente un domaine de recherche majeur pour un
certain nombre de secteurs, et notamment celui de l’agriculture.
De par la capacit´e des robots `a effectuer des tˆaches p´enibles pour l’homme, `a acc´eder `
a des zones difficiles, et grˆace `a une certaine r´ep´etabilit´e qu’ils peuvent apporter dans le travail , ceux-ci repr´esentent une r´eponse coh´erente aux enjeux actuels du secteur agricole (augmentation des surfaces `a exploiter, de la qualit´e ,des rendements. . .).
Ainsi depuis quelques ann´ees des travaux de recherche sont effectu´es au sein de l’IRSTEA (Institut nationale de Recherche en Sciences et Technologie pour l’Environnement et
l’A-griculture) dans le domaine de la robotique mobile, en particulier au sein de l’´equipe
TEAM (Technologies pour l’´Epandage, les Agro-´equipements, la Mobilit´e) dans laquelle j’ai effectu´e mon stage.
Ces recherches sont ax´ees principalement le d´eplacement autonome de robots mobiles
en milieux accident´es (un champ par exemple). Afin de pouvoir proposer une strat´egie
globale de commande pour l’asservissement des syst`emes soumis `a une dynamique
incer-taine, plusieurs axes de recherche sont pr´esents au sein de l’´equipe TEAM. On peut en d´egager trois principaux :
• La commande des d´eplacements :
Il s’agit ici de proposer des lois de commande permettant le suivi de trajectoire pr´ecis, tout en tenant compte des diff´erentes probl´ematiques li´ees `a l’environnement de d´eplacement et des diff´erences des plateformes robotiques (glissement, utilisation de plusieurs trains directeurs, pr´esence d’une remorque. . .).
Je pr´esenterai les travaux effectu´es dans ce domaine dans le chapitre 2. • Le d´eplacement de flotte de robots en formation :
Ici il s’agit de reprendre les lois de commandes des d´eplacements des robots et de permettre `a ceux-ci de se d´eplacer en formation. Pour cela il est n´ecessaire de leurs permettre d’´echanger des informations, et comme nous le verrons dans le chapitre 3 de mettre en place une commande sur la vitesse des robots de la flotte par rapport `
a un robot leader.
• Le maintien de l’int´egrit´e des robots :
Au travers de cet axe, on cherche `a mettre en place des lois assurant l’int´egrit´e du v´ehicule. Pour cela des syst`emes permettant par exemple la d´etection du ren-versement d’un v´ehicule puis la pr´ediction de celui-ci en fonction de sa dynamique ont ´etait mis en place, ainsi que la possibilit´e de reconstruire le profil du terrain environnant `a l’aide de radars par exemple, afin de g´en´erer par la suite des trajec-toires d’´evitement des obstacles mis en ´evidences compatibles avec la dynamique du v´ehicule.
Suite `a ces diff´erentes recherches les lois de commandes pour le suivi de trajectoire d’un robot sont fonctionnelles (au moins `a vitesse mod´er´ee). Ainsi le th`eme du suivi pr´ecis de trajectoire ´etant trait´e, il a ´et´e propos´e au travers du projet SafePlatoon et de la th`ese de Pierre Cartade, ´etudier la probl´ematique des convois de v´ehicules autonomes. Mon stage s’inscrit ´egalement dans cet axe de recherche et j’ai donc ´etait amen´e `a travailler en collaboration avec Pierre.
Les objectifs de mon stage ´etaient donc les suivants :
• Dans un premier temps, il m’a fallu prendre en main les lois de commandes existantes sur le logiciel de simulation (matlab/simulink), afin de me familiariser avec celles-ci, et comprendre les strat´egies utilis´ees pour le suivi de trajectoire.
• Dans un second temps, j’ai trait´e la partie collaboration de v´ehicule (en collabora-tion avec Pierre Cartade), en m’int´eressant particuli`erement `a l’asservissement de la vitesse d’un robot suiveur par rapport au leader. Ainsi en reprenant les travaux d´ej`a effectu´es, j’ai r´ealis´e l’asservissement en vitesse sous matlab/simulink. Mon travail a ensuite ´et´e repris par Pierre qui a impl´ement´e la commande en vitesse au sein du programme du robot, afin de le tester en conditions r´eelles
• Enfin, il m’a ´etait demand´e de trouver une solution tirant parti des donn´ees des cap-teurs disponibles (centrales inertielles et autres capcap-teurs) sur les robots, dans le but de r´epondre `a la probl´ematique de positionnement `a haute fr´equence, ou pendant une perte de signal GPS.
Mon rapport s’articule donc de la fa¸con suivante : tout d’abord je ferrai une br`eve pr´esentation de l’IRSTEA, ensuite je pr´esenterai dans le chapitre 2 les diff´erentes plate-formes robotiques, leurs instrumentations, et les lois de commandes pour le suivi de trajec-toires (Ce chapitre repr´esentant la premi`ere phase de mon stage). Le chapitre 3 pr´esentera mon travail effectu´e sur le d´eplacement en formation des robots. Enfin au sein du chapitre 4 je pr´esenterai mon travail sur le positionnement `a haute fr´equence d’un robot.
1.1
L’IRSTEA en France
L’IRSTEA est l’Institut nationale de Recherche en Sciences et Technologie pour l’En-vironnement et l’Agriculture.
Cr´e´e en 1981 par la fusion entre le CNEEMA1 et le CTGREF2, cet ´Etablissement
Public `a caract`ere Scientifique et Technologique (EPST) est plac´e sous la double tutelle
du ministre de l’´Education Nationale, de la Recherche et de la Technologie, et du
min-istre de l’Agriculture et de la P`eche. Ses recherches sont ax´ees sur la contribution au d´eveloppement durable des territoires. Outre la participation au progr`es des connais-sances, l’IRSTEA contribue aussi `a l’´elaboration de moyens de contrˆole et de diagnostic. L’IRSTEA est compos´e de 900 personnes dont 450 ing´enieurs et chercheurs, il accueille en moyenne 200 doctorants, 23 postdoctorants et 250 stagiaires.
1.1.1 Les diff´erents centres en France
Figure 1.1 – IRSTEA en France
La figure 1.1 repr´esente la disposition des diff´erents centres IRSTEA en France. En plus des villes apparaissant sur la carte, il faut rajouter le centre pr´esent en Martinique. Chaque site comporte une ou plusieurs unit´es de recherche et traite diff´erents th`emes suivant l’environnement dans lequel il est implant´e.
1.1.2 Les diff´erents d´epartements
L’IRSTEA est un centre de recherches pluridisciplinaires ax´ees sur l’agriculture, l’a-groalimentaire et l’´etude des milieux aquatiques, il est divis´e en 4 grandes orientations :
• Ressources en eau, usages et risques :
Les th`emes de recherche dans ce domaine permettent de d´evelopper des outils
pour g´erer les besoins en eau ainsi qu’une gestion efficace des d´echets pour pr´evenir
des risques naturels. Les unit´es de recherche fournissent des moyens aux acteurs
publics ou priv´es afin d’am´eliorer leurs ´equipements : ouvrage, r´eseau ou ´equipements hydrauliques.
Le d´epartement est lui-mˆeme scind´e en deux unit´es : – Gestion de l’eau et des services publics associ´es. – Risques li´es l’eau.
1. CNEEMA : Centre National d’ ´Etude et d’Exp´erimentations du Machinisme Agricole 2. CTGREF : Centre Technique du G´enie Rural des Eaux et Forts
• Milieux aquatiques, qualit´e et rejets :
Ce d´epartement s’occupe de d´evelopper des outils afin d’am´eliorer la gestion des milieux aquatiques. Il apporte aux d´ecideurs une vision globale des param`etres `a
prendre en compte en appr´ehendant simultan´ement les enjeux li´es l’eau dans la
soci´et´e et le fonctionnement des syst`emes aquatiques. Il se compose de deux unit´es :
– Technologies et proc´ed´es de l’eau et des d´echets. – Qualit´e des syst`emes ´ecologiques aquatiques. • Gestion des territoires :
Il s’occupe de la gestion des espaces `a dominante rurale et apporte une aide `a la d´ecision, la conception et la mise en œuvre des politiques publiques : agricoles, foresti`eres, environnementales. Le d´epartement apporte son expertise et son appui
technique aux gestionnaires d’espaces naturels et acteurs du d´eveloppement et de
l’am´enagement du territoire. Il se compose de deux unit´es : – Syst`emes ´ecologiques terrestres.
– Agriculture multifonctionnelle et nouvelle ruralit´e. • ´Ecotechnologies et agrosyst`emes :
Il s’agit du d´epartement de l’IRSTEA qui ´etudie les proc´ed´es technologiques utilis´es en agriculture et agroalimentaire afin de les am´eliorer. A partir de ces r´esultats th´ematiques,les unit´es d´eveloppent des innovations technologiques, r´ealisent des es-sais et des actions de normalisation.
Le d´epartement est scind´e en deux unit´es :
– Technologies pour des syst`emes agricoles durables.
– Technologies et proc´ed´es physiques pour la sˆuret´e des aliments.
1.1.3 Les produits de l’IRSTEA
L’IRSTEA n’a pas pour vocation la construction de machines, d’´equipements ou autres
en grandes s´eries puisqu’il s’agit d’un laboratoire de recherche. L’essentiel des produits propos´es par le centre est donc les suivants : 850 publications/an, 530 participations/an `
a des colloques, expertises et conseils aux services publics, 7 logiciels professionnels com-mercialis´es, 5 000 heures de cours, etc.
Apr`es avoir pr´esent´e de mani`ere synth´etique la composition et l’organisation de l’IRSTEA en France, il convient maintenant de pr´esenter plus particuli`erement le centre pr´esent en Auvergne au sein duquel j’ai effectu´e mon stage.
1.2
L’IRSTEA en Auvergne - Limousin
1.2.1 Sp´ecificit´es et missions
La r´egion Auvergne-Limousin comporte deux sites situ´es `a Aubi`ere sur le campus des C´ezeaux Clermont-Ferrand pour l’un et `a Montoldre dans l’Allier pour l’autre (voir figure 1.2(a) et 1.2(b)).
(a) Site de Clermont-Ferrand (b) Site de Montoldre
Figure 1.2 – Les sites de l’IRSTEA en Auvergne-Limousin
Nich´e au cœur du Massif Central, l’IRSTEA en Auvergne centre ses recherches en
faveur du d´eveloppement d’innovations technologiques pour l’agriculture et les territoires. Il est en relation directe avec tous les acteurs du d´eveloppement r´egional de l’am´enagement du territoire afin de les aider et de les conseiller sur le devenir des territoires ruraux. Le budget est d’environ 3 M d’euros. Les deux d´epartements ´ecotechnologies et agrosyst`emes et Gestion des territoires sont repr´esent´es `a l’IRSTEA de Clermont-Ferrand.
1.2.2 Les unit´es de recherche
Le groupement de Clermont-Ferrand compte au total 100 personnes (ing´enieurs, th´esards) et environ 25 stagiaires qui sont r´epartis dans 3 unit´es de recherche (repr´esentants ainsi les deux d´epartements cit´es dans la partie pr´ec´edente) dont voici une description :
• L’unit´e de recherche Laboratoire d’ing´enierie pour les Syst`emes Complexes (LISC) qui d´eveloppe des m´ethodes de mod´elisations g´en´eriques utilisables dans les domaines de l’IRSTEA.
• L’unit´e mixte de recherche Mtafort3 cr´ee au 1er janvier 2005, rassemble une
cinquan-taine de personnes de quatre organismes : IRSTEA, ENGREF4, ENITA- Clermont5,
INRA6. Cette unit´e a pour objectif de contribuer `a la compr´ehension des transfor-mations en cours dans les territoires ruraux et de participer `a l’accompagnement des acteurs qui les produisent.
• L’unit´e de recherche TSCF r´ealise des ´etudes sur le d´eveloppement de nouveaux outils pour l’agriculture et la transformation alimentaire afin d’am´eliorer la qualit´e, 3. Mtafort : Mutations des activit´es, des espaces et des formes d’organisation dans les territoires ruraux
4. ENGREF : ´Ecole Nationale du G´enie Rural des Eaux et Forts 5. ENITA : ´Ecole Nationale d’Ing´enieur Technique Agronome 6. INRA : Institut National de Recherche en Agronomie
la s´ecurit´e et la tra¸cabilit´e des produits alimentaires, et de mesurer et r´eduire effi-cacement les impacts sur l’environnement. L’unit´e de recherche TSCF est bas´ee sur les deux sites d’Aubi`ere et de Montoldre et se divisait d´ebut 2009 en quatre ´equipes avec les th`emes de recherche (TR) suivants :
– ´Equipe Mobitech : TR MOST (Technologies pour la mobilit´e et la s´ecurit´e des agro´equipements)
– ´Equipe Capsol : TR CASYS (Technologies pour la caract´erisation des ´eco et
agrosyst`emes)
– ´Equipe Gepand : TR TECHPROPRE (Technologies et r´eduction des pollutions
d’origine agricole)
– ´Equipe Copain : TR SYNERGIE (Syst`emes d’information et repr´esentations pour
la gestion int`egre de l’environnement).
Mon stage s’est d´eroul´e au sein de l’´equipe TEAM, dirig´ee par Monsieur Michel
D´
emonstrateur, instrumentation et
commandes existantes
Dans cette partie je pr´esenterai tout d’abord les d´emonstrateurs (2 plateformes robo-tiques) utilis´es au sein d’IRSTEA sur lesquels j’ai ´et´e amen´e `a travailler, ainsi que leurs instrumentations.
Dans un deuxi`eme temps, je pr´esenterai la mod´elisation du syst`eme et les lois de commandes retenues pour le suivi de trajectoires d’un robot mobiles. Celles-ci seront par la suite r´eutilis´ees lors du convoi de v´ehicules.
Afin de me familiariser avec cette partie de la commande, durant la premi`ere p´eriode de mon stage, j’ai r´eimpl´ement´e ces lois au sein d’un simulateur sous Matlab/Simulink. Le mod`ele utilis´e sous Simulink d’o`u seront tir´ee les r´esultats que je pr´esenterai au sein de ce chapitre est pr´esent´e en annexe (B.1).
2.1
D´
emonstrateurs et instrumentation
Afin de pouvoir valider les lois de commandes d´evelopp´ees au sein d’IRSTEA et de les tester en conditions r´eelles, plusieurs plateformes robotiques instrument´ees sont utilis´ees.
2.1.1 Robots utilis´es
Arroco
Arroco (pr´esent´e sur la figure 2.1), a ´et´e con¸cu par la soci´et´e RoboSoft. Il est compl`etement ´
electrique, dot´e de 4 roues directrices et motrices ind´ependante. Il peut ´evoluer sur des pentes jusqu’`a 35˚ avec une vitesse maximale de 4 m/s.
Figure 2.1 – Robot Arroco
Ses caract´eristiques principales sont donn´ees dans le tableau 2.1
Masse (m) 600kg
Empattement (L) 1.2m
Angle de braquage maximal 25˚
Temps de r´eponse angle de braquage 0.6s
Vitesse maximale 4m/s
Table 2.1 – Caract´eristique du Robot Arroco
RobuFAST
Le RobuFAST (pr´esent´e sur la figure 2.2), a aussi ´et´e con¸cu par la soci´et´e RoboSoft. Sa conception est identique `a celle d’Arroco au niveau du chˆassis et des mobilit´es, ce qui permet de faciliter la portabilit´e des algorithmes entre les deux robots. Cependant le RobuFAST a re¸cu des modifications lui permettant d’atteindre la vitesse de 8 m/s.
Figure 2.2 – Robot RobuFAST
Ses caract´eristiques principales sont donn´ees dans le tableau 2.2. Ce robot permet de tester les algorithmes `a plus haute vitesse.
Masse (m) 420kg
Empattement (L) 1.2m
Angle de braquage maximal 20˚
Temps de r´eponse angle de braquage 0.4s
Vitesse maximale 8m/s
Table 2.2 – Caract´eristique du Robot RobuFAST
2.1.2 Instrumentation
Afin de pouvoir commander les robots, plusieurs capteurs sont mis en place sur ces derniers. Ceux-ci permettent de mesurer les variables qui alimente les observateurs et donc les algorithmes de commandes pr´esent´es dans la section suivante (2.2).
La figure 2.3 explicite les capteurs embarqu´es sur les robots (ici RobuFAST), lorsque ceux ci sont ´equip´ees le plus compl`etement.
Figure 2.3 – Capteurs embarqu´ees (exemple sur RobuFAST)
GPS cin´ematique temps r´eel - GPS-RTK
Le principe du GPS RTK, est d’utiliser une basse auxiliaire permettant de corriger les erreurs des signaux GPS (retard et autres) ce qui permet d’augmenter la pr´ecision de celui-ci.
Le GPS nous fournit de l’information ext´eroceptive. Il fournit la position du robot `a
une pr´ecision de ±2cm en longitude et latitude et ±5cm en altitude. De plus il donne
´
egalement la vitesse absolue du robot, ainsi que son cap. `A partir de ces informations
l’´etat du robot par rapport `a la trajectoire de r´ef´erence est connu, ainsi que sa vitesse. Ces donn´ees sont essentielles et permettent ainsi de r´ealiser l’asservissement en alimentant les lois de commandes.
Centrale inertielle XSens MTi
La centrale inertielle (figure 2.4) et une centrale d’attitude. Elle est compos´ee de 9 capteurs :
– 3 acc´el´erom`etres – 3 gyroscopes – 3 magn´etom`etres
L’environnement de la centrale ´etant fortement pourvu en outils ´electriques, les donn´ees des magn´etom`etres ne seront pas utilis´ees, car fauss´ees par les interf´erences existantes. Cependant les acc´el´erations ainsi que les vitesses de rotation vont ˆetre utiles pour alimenter
les algorithmes permettant la commande du robot. De plus les donn´ees sont transmises
`
a une fr´equence de 100 Hz, ce qui sera utile lors de l’´elaboration d’un algorithme de positionnement du robot `a haute fr´equence (chapitre 4).
Figure 2.4 – Centrale inertielle XSens MTI
Module de communication sans fil
Afin de pouvoir r´ealiser le contrˆole en formation d’une flotte de robots, il faut n´ecessairement que ceux-ci puissent ´echanger des informations. Cette communication est donc r´ealis´e `a l’aide de modules WIFI qui peuvent ˆetre embarqu´es sur l’ensemble des robots.
Autres capteurs
En plus de ces capteurs on a ´egalement acc`es `a la vitesse et `a l’angle de braquage de chacune des roues du robot ce qui est essentiel pour la commande de celui-ci.
2.2
Mod´
elisation du robot et lois de commandes
2.2.1 Mod`ele cin´ematique ´etendu
Le mod`ele cin´ematique ´etendue propos´e dans [5],est celui utilis´e au sein de l’IRSTEA. Il repose sur le mod`ele bicyclette simple (on consid`ere uniquement les vecteurs vitesses en n´egligeant la dynamique du robot), auquel on rajoute la prise en compte des glissements du v´ehicule.
Chaque train (avant et arri`ere) ´etant vu comme une roue unique, le vecteur vitesse de chacune d’entre elles est port´e par la direction de la roue, `a laquelle s’ajoute l’angle de d´erive dˆu `a la non-condition de roulement sans glissement (ces angles sont estim´es grˆace `
a un observateur).
Figure 2.5 – Mod`ele cin´ematique ´etendu aux angles de d´erives
Les notations correspondant `a la figure 2.5 sont les suivantes : – Γ est la trajectoire `a suivre.
– F et R sont respectivement le centre des roues virtuelles avant et arri`ere.R est le point `a contrˆoler.
– L est l’empattement du v´ehicule.
– v est la vitesse lin´eaire du v´ehicule au point R, suppos´ee strictement positive et
command´ee manuellement.
– δF et δR sont les angles de braquages des roues virtuelles avant et arri`ere. Ils con-stituent les deux variables de commandes.
– βF et βRsont les angles de d´erives des roues virtuelles avant et arri`ere. Il faut mettre en place un observateur pour connaitre leurs valeurs.
– M est le point de Γ le plus proche de R. M est suppos´e unique. – s est l’abscisse curviligne du point M le long de Γ.
– c(s) est la courbure de la trajectoire au point M.
– y et θ sont respectivement les ´ecarts lat´eral et angulaire du v´ehicule par rapport `a Γ.
Ainsi le mod`ele est r´egi par le syst`eme d’´equations 2.1. ˙s = vcos(˜θ+δR2) 1−c(s)y ˙ y = v sin(˜θ + δR2) ˙˜
θ = v[cos(δR2)tan(δF 2)−tan(δL R2) − c(s) cos(˜1−c(s)yθ+δR2)]
(2.1)
avec : δR2 = δR+ βR et δF 2= δF + βF
Ce mod`ele pr´esente une singularit´e lorsque y = c(s)1 , c’est-`a-dire lorsque les points A et R sont superpos´es. En pratique ce cas n’est jamais rencontr´e car on consid`ere les rayons de courbures des trajectoires `a suivre toujours grands compar´es aux ´ecarts y `a la trajectoire.
On pose donc l’hypoth`ese suivante : |y| < 1
|c(s)| =⇒ 1 − c(s)y > 0 (2.2)
Ainsi les variables de commandes du syst`eme sont les angles de braquages βR, βF, et la vitesse lin´eaires du robot v. Les objectifs de la commande pour le suivi de trajectoire sont donc les suivants :
– Asservissement de l’´ecart lat´eral vers une consigne ; – Asservissement de l’´ecart angulaire vers une consigne ; – Asservissement de la vitesse.
Le mod`ele 2.1 peut ˆetre transform´e en un syst`eme chain´e (forme lin´eaire) par
change-ment de variable en l’´etat et la commande. Cela nous permet d’obtenir une loi de
com-mande non lin´eaire pour le suivi de trajectoire et dont les performances sont th´eoriquement ind´ependantes de la vitesse.
Bien que ce mod`ele permette de pr´eserver la pr´ecision d’un suivi de trajectoire pour un robot mobile ´evoluant en milieu naturel. On n´eglige toujours les ph´enom`enes dynamiques. Cela a pour cons´equence un certain manque de r´eactivit´e dans l’observation des angles de d´erives `a haute vitesse, et la non pris en compte des ph´enom`enes de basculement et renversement du robot.
L’observation des angles de d´erives est pr´esent´e ´egalement dans [5] selon deux m´ethodes : cin´ematique (pour des faibles vitesses) et dynamiques (pour les vitesses plus ´elev´ees).
2.2.2 Lois de commandes non lin´eaires de l’angle de braquage
Commande adaptative
Lors du suivi de trajectoires par un robot seul, seule la commande de l’angle de braquage avant est consid´er´ee pour asservir les d´eplacements du robot sur la trajectoire pr´ed´efinie avec une consigne d’´ecart yd potentiellement variable. La vitesse v ainsi que l’angle de braquages arri`ere δR sont consid´er´es comme des param`etres du syst`eme. De plus les angles de d´erives (δR, δF) sont connus grˆace `a une estimation en ligne issue d’un observateur (cf [5]).
Ainsi le mod`ele cin´ematique 2.1 peut ˆetre exploit´e pour la commande et ˆetre mis sous forme lin´eaire exacte en utilisant les syst`emes chain´es.
δF = arctan{tan(δR+ βR) + L cos(δR+ βR) (c(s) cos ˜θ2 k + A cos3θ˜2 k2 )} − βF (2.3) avec : ˜ θ2 = θ + δ˜ R+ βR k = 1 − c(s) y A = −Kpy− Kdk η + c(s) k tan2θ˜2 η = (tan ˜θ2− ˙ yd v cos ˜θ2) y = y − yd (2.4)
Kd et Kp ´etant des gains permettant de sp´ecifier une distance de r´eponse au lieu d’un temps de r´eponse (dut `a la mise sous forme chain´ee). En pratique on prend Kp =
K2 d
4 afin d’obtenir un amortissement critique.
Avec la commande 2.3, l’´ecart lat´eral y converge vers yd et ˜θ2 converge vers 0. On
obtient donc une commande permettant d’obtenir de bons r´esultats dans le suivi de
tra-jectoire mˆeme en pr´esence de glissement. Cependant comme on peut le constater sur la
figure 2.6, qui montre l’erreur de suivi du robot par rapport `a la trajectoire de r´ef´erence lors d’une simulation sous matlab. On constate que l’´ecart lat´eral augmente en entr´ee et en sortie de virage. Cela est dˆu aux temps de r´eponse des actionneurs. Afin de corriger ces ´
ecarts, on dispose d’une commande plus ´elabor´ee qui va permettre d’anticiper la courbure de la trajectoire.
(a) trajectoire `a suivre (b) Erreur de suivi
Figure 2.6 – R´esultats de simulation matlab avec commande adaptative sur un robot `a un train directeur
Commande pr´edictive
Afin de rem´edier au probl`eme soulign´e dans la partie pr´ec´edente, `a savoir qu’en r´egime
transitoire (variation importante de la courbure) le temps de r´eponse des actionneurs
introduit un ´ecart non n´egligeable dans le suivi de trajectoires. Une loi de commande pr´edictive a ´et´e formul´e.
Ainsi en en reprenant la loi de commande (2.3) du train avant, et en gardant comme consid´eration que v et δRsont des param`etres mesur´es, il est possible de d´ecomposer cette expression en deux termes :
δF = δT raj + δDeviation δT raj = arctan(up) δDeviation = arctan(1+vpvupp+u2 p) (2.5) avec : up = cos(δL R+βR)c(s) cos ˜θ2 k vp = cos(δL R+βR)A cos3θ˜2 k2 + tan(δR+ βR) (2.6)
Ainsi dans cette d´ecomposition (2.5) de la loi de commande, le rˆole de chacun des deux termes δT raj et δDeviation sont les suivants :
– δDeviation est le terme prenant en compte les erreurs de suivi et de glissement ceux-ci n’´etant pas pr´evisibles il est inutile de l’int´egrer dans un algorithme pr´edictif et restera donc inchang´e.
– δT raj ce terme d´epend de la courbure de la trajectoire de r´ef´erence, il est responsable de l’´egalit´e entre la courbure de la trajectoire de r´ef´erence et celle du d´eplacement du robot. Or la trajectoire de r´ef´erence ´etant parfaitement connu, c’est ce terme qui sera remplac´e par l’algorithme de pr´ediction.
L’´elaboration de la commande s’effectue donc suivant le principe repr´esent´e sur la figure 2.7.
Figure 2.7 – Algorithme de suivi avec pr´ediction et glissement
Ainsi une fois l’algorithme de pr´ediction utilis´e (le principe est d´etaill´e dans [4] et `a l’annexe A, et sera repris en d´etail dans la section 3.3.3), on obtient finalement le terme δpredT raj, qui est le terme de la commande asservissant la courbure du robot par rapport `a celle de la trajectoire qui remplacera δT raj.
La commande finale envoy´ee au robot est donc la suivante :
δF = δT rajpred + δDeviation (2.7)
Cette loi de commande permet donc de r´eduire les erreurs de suivi constat´ees pr´ec´edemment avec la commande adaptative seule, comme on peut le constater sur la figure 2.8, qui
reprend les mˆemes conditions de simulation sous Matlab que pour les r´esultats de la
(a) trajectoire `a suivre (b) Erreur de suivi
Figure 2.8 – R´esultats de simulation matlab avec commande adaptative et pr´edictive sur un robot `a un train directeur
2.3
Conclusion sur la commande pour le suivi de trajectoires
Dans ce chapitre, on a ´etabli la commande permettant un suivi de trajectoire pr´ecis en milieu naturel.
Par prise en compte des glissements dans le mod`ele, puis mise en place d’une partie
pr´edictive modifiant la commande adaptative, on obtient finalement une loi de commande
permettant d’effectuer un suivi de trajectoire avec un ´ecart lat´eral de ±20cm, ce qui est tr`es satisfaisant pour les applications envisag´ees.
Ayant maintenant une commande pour le suivi de trajectoire fonctionnelle pour un v´ehicule, nous allons nous int´eresser `a la possibilit´e de commander une flotte de robot mobile.
Lois de commandes d’une flotte de
robots mobiles
Dans ce chapitre je vais pr´esenter le travail effectu´e sur la commande des robots se d´epla¸cant en formation.
L’int´erˆet de la recherche dans ce domaine est d’augmenter les espaces couverts par les robots, sans pour autant utiliser de grandes machines qui provoquent un important compactage des sols. On peut ´egalement envisager l’utilisation d’une flotte de robots pour des applications comme l’exploration, la surveillance, ect.
L’objectif ici, est de permettre `a deux robots (pour ensuite g´en´eraliser `a n robots) de suivre une trajectoire de r´ef´erence avec un ´ecart lat´eral pr´ed´efini (soit ce qui est fait avec la commande pr´esent´ee dans le chapitre pr´ec´edent). Mais en plus, on veut que le robot que l’on consid`erera comme le suiveur (l’autre ´etant le leader) respect une distance longitudinale entre lui et le leader (distance le long de la trajectoire `a suivre).
Ainsi il apparaˆıt n´ecessaire d’asservir l’abscisse curviligne du suiveur par rapport au leader, ce qui dans les faits revient `a asservir la vitesse du suiveur en fonction de la vitesse du leader.
Au sein de ce chapitre je pr´esenterai tout d’abord l’aspect th´eorique de mon travail, puis les r´esultats obtenus sous Matlab/Simulink une fois la commande en vitesse impl´ement´ee. Enfin je pr´esenterai les r´esultats obtenus en conditions r´eels apr`es impl´ementation de la commande (par Pierre Cartade) dans les programmes des robots.
La commande d’une flotte de robots mobiles va prendre en compte la trajectoire de r´ef´erence, qui sera utilis´ee pour le positionnement lat´eral et longitudinal de chaque robot. L’objectif et d’assurer un mouvement pr´ecis des robots dans une configuration d´esir´ee mais potentiellement variable le long de cette trajectoire.
Ainsi la mod´elisation du probl`eme, dans le cas de deux robots, est repr´esent´e `a la figure 3.1.
Figure 3.1 – Mod`ele longitudinale d’une flotte de robots
Dans cette repr´esentation chaque robot est mod´elis´e selon le mod`ele d’Ackermann d´ej`a pr´esent´e `a la section 2.2.1.Cependant on consid`ere ici que la roue arri`ere est fixe donc δR est nul pour tous les robots. On a ainsi pour le ieme` robot :
– Γ est la trajectoire `a suivre (identique pour chaque robot). – Oi est le centre de l’axe arri`ere du i`eme robot .
– si est l’abscisse curviligne du point le plus proche de Oi sur la trajectoire. C’est la distance parcourue par le robot i le long de Γ.
– c(si) est la courbure de la trajectoire Γ en si.
– ˜θi indique l’´ecart angulaire du i`eme robot par rapport `a Γ. – yi indique l’´ecart lat´eral du i`eme robot par rapport `a Γ. – δi est l’angle de braquage du i`eme robot .
– l est l’empattement du robot.
– vi est la vitesse lin´eaire du ieme` robot au point Oi. – βF
i et βiR indiquent les angles de glissement (avant et arri`ere) du ieme` robot.
Avec ces notations les ´equations du mouvement de l’expression ( :modci deviennent
pour le i`eme robot
˙ si = vi cos(˜θi+βRi) 1−c(s)iyi ˙ yi = visin(˜θi+ βiR) ˙˜ θi = vi[cos(βiR) tan(δi+βiF)−tan(βiR) l − c(s)icos(˜θi+βiR) 1−c(s)iyi ] (3.1)
Ce mod`ele ´etant le mˆeme que dans la section 2.2.1 la commande de l’angle de braquage δi est la mˆeme qu’a l’expression (2.7) pour la partie lat´erale du suivi de trajectoire.
Nous pouvons donc maintenant nous int´eresser `a la partie asservissement longitudinal de la commande.
Dans le contexte d’une flotte de robots mobiles suivant une trajectoire de r´ef´erence, ceux-ci doivent communiquer entre eux afin de s’´echanger leurs positions, leurs vitesses, et d’autres informations en rapport avec le suivi de la trajectoire (´ecart lat´eral, angula ire. . .). Cette communication sera assur´ee par le biais via une communication sans fil.
3.2.1 Loi de commande longitudinale
Le principe de la loi de commande pour asservir l’´ecart longitudinal entre les deux
robots est propos´e dans [10] et [1] repose sur le fait que l’on d´esire un ´ecart d entre l’abscisse curviligne du robot i et du robot i + 1. En prenant ici l’exemple de deux robots et en prenant le robot l leader et le robot s suiveur on peut r´e´ecrire la condition pr´ec´edente de la fa¸con suivante :
e = sl− ss− d (3.2)
Pour que la distance entre les deux robots soit ´egale `a d on cherche `a ce que la valeur de e tende vers z´ero. Ainsi on peut ´ecrire :
˙e = −λe (3.3)
or
˙e = ˙sl− ˙ss (3.4)
car d ´etant constant. Donc en utilisant les expressions de slet ssexprim´es pr´ec´edemment (3.1) on obtient : vl cos(˜θl+ βlR) 1 − c(s)lyl − vs cos(˜θs+ βsR) 1 − c(s)sys = −λe (3.5)
Ainsi on peut isoler la vitesse du suiveur dans l’expression pr´ec´edente (3.5) afin d’en tirer une consigne `a appliquer sur celle-ci afin de respecter l’´ecart longitudinal consigne d.
On obtient finalement la consigne suivante :
vs = (vl cos(˜θl+ βlR) 1 − c(s)lyl + λe) 1 − c(s)sys cos(˜θs+ βsR) (3.6)
Donc les informations provenant du leader dont le robot suiveur `a besoin sont : – L’abscisse curviligne sl.
– La courbure de la trajectoire c(sl). – L’´ecart angulaire ˜θl.
– L’´ecart lat´eral yl. – La vitesse lin´eaire vl.
e caract´erisant le respect de l’´ecart longitudinal entre les deux robots. L’´ecart longitudinal d´esir´e est ici de 2 m et les robots partent l’un derri`ere l’autre avec 3 m d’´ecart.On constate que cette commande est fonctionnelle et assure le respect de la distance d.
(a) Vitesse des robots (b) Variation de l’ecart longitudinal
(c) trajectoire `a suivre
Figure 3.2 – Resultats de simulation matlab pour le convoi de deux robot l’un derriere l’autre
Cette simulation est effectu´e avec un ´ecart lat´eral nul par rapport `a la courbe pour les deux robots (les deux robots se suivent). Cependant l’int´erˆet du convoi de robot et de pouvoir couvrir une plus grande surface donc il est int´eressant de pouvoir faire parcourir le robot suiveur avec un ´ecart lat´eral non nul vis-`a-vis de la courbe de r´ef´erence.
3.2.2 Loi de commande lat´eral
Afin de permettre au convoi de couvrir plus de surface on reprend la commande du suivi de trajectoire (2.3) ´etabli en 2.2.2 et on fixe pour le robot suiveur un ´ecart lat´eral non nul. Ici yd= 2m. On obtient alors les r´esultats pr´esent´es `a la figure 3.3
(c) trajectoire `a suivre
Figure 3.3 – R´esultats de simulation matlab pour le convoi de deux robot avec un ´ecart lat´eral pour le suiveur de 2m
Sur la figure 3.3(b), on constate que lors de l’amorce et de la sortie du virage, la distance longitudinale entre les deux robots varie. Cela est dˆu au fait que le robot suiveur est `a l’ext´erieur de la courbe et doit donc aller plus vite que le leader pour garder une distance constante entre eux deux. C’est d’ailleurs ce qu’il fait tr`es bien comme on peut le constater sur la figure 3.3(a), mais lors d’un changement de courbure on constate une variation de e dˆu aux temps de r´eponse des actionneurs (le temps d’acc´el´eration).
Ce probl`eme est analogue `a celui rencontr´e lors de la commande pour le suivi de
trajectoire d’un robot seul pour l’´ecart lat´eral, nous allons donc proposer une solution
analogue : rendre une partie de la commande en vitesse pr´edictive (afin d’anticiper le
besoin d’acc´el´eration).
3.3
Loi de commande longitudinale pr´
edictive
Afin de r´epondre au probl`eme soulev´e dans la partie pr´ec´edente, `a savoir que lors d’un changement de courbure la distance entre les deux robots varie, on se propose d’effectuer une commande pr´edictive permettant d’att´enuer ce ph´enom`ene.
En rendant une partie de la commande pr´edictive, le but est de permettre au robot
suiveur d’anticiper la courbure future de la courbe et donc d’anticiper le fait de devoir d´ec´el´erer ou acc´el´erer(en fonction de s’il se trouve `a l’int´erieur ou `a l’ext´erieur de la courbe).
Comme il a ´et´e fait pour la commande du suivi de trajectoire, la commande en vitesse ´
enonc´e pr´ec´edemment 3.6 va ˆetre d´ecompos´e en deux parties :
vs = vasss + verrs vtraj s = vl cos(˜θl+βlR) 1−c(s)lyl 1−c(s)sys cos(˜θs+βsR) vecart s = λe 1−c(s)sys cos(˜θs+βsR) (3.7)
Dans cette d´ecomposition (3.7) de la loi de commande, le rˆole de chacun des deux
termes vsass et vserr sont les suivants : – vecart
s est le terme prenant en compte la distance entre les robots, distance qui ne peut ˆetre pr´edite. Ce terme restera donc inchang´e et ne fera pas l’objet d’un remplacement par une partie pr´edictive.
– vtraj
s ce terme d´epend de la courbure de la trajectoire de r´ef´erence, de la vitesse du leader et des positions des robots. Tous ces param`etres peuvent ˆetre estim´es `a l’instant suivant puisque nous connaissons la trajectoire de r´ef´erence et que nous pouvons estimer l’´etat futur des robots. Donc cette partie pourra faire l’objet d’une commande pr´edictive.
3.3.2 Mod´elisation du bas niveau
Le processus bas niveau g´erant la vitesse du robot peut etre consid´er´e comme un second ordre en r´egime critique (ξ = 1) dont les propri´et´es peuvent ˆetre d´efinies en identifiant sa r´eponse `a un ´echelon de vitesse. Les performances utilis´ees lors de la simulation (sous Matlab/Simulink) sont report´e sur le tableau 3.1.
Propri´et´es Bas niveau simulink
Retard pur (s) 0
Temps de mont´ee (s) 1
Table 3.1 – Param`etres du bas niveau utilis´e dans le simulateur sous simulink
Les ´equations d’´etats (3.8) suivantes, d´efinissent le second ordre reliant la consigne envoy´ee `a l’instant n (not´ee V[n]C) et la vitesse r´eelle en r´esultant (not´ee V[n]R).
( XV [n] = F X[n−1]V + KV[n−1]C YV [n] = CX[n]V avec : XV [n]= VR [n] VR [n−1] VC [n−1] , F = b1 b2 a2 1 0 0 0 0 0 K = a1 0 1 , Y V [n] = CV R [n], C = h 1 0 0 i(3.8)
La p´eriode d’´echantillonnage du simulateur ´etant de T = 0.05s et en tenant compte des valeurs num´eriques donn´ees au tableau 3.1, les valeurs num´eriques des param`etres [a1 a2 b1 b2] sont donn´ees par (3.9).
(
a1 = 1.3148 a2 = −0.4489
b1 = 0.0759 b2 = −0.0581
En utilisant le sch´ema de d´efinition de la commande pr´edictive pr´esent´e en annexe A et en l’adaptant `a notre cas, on obtient la figure 3.4 avec les notations suivantes :
– VC : la commande envoy´ee `a l’actionneur. Ici il s’agit uniquement du terme prenant en compte la trajectoire vstraj d´efinie par (3.7).
– VR : la valeur mesur´ee sur le syst`eme. C’est la variable de sortie en r´eponse `a la commande VC. Ici la sortie du processus est uniquement la contribution de vstraj de la vitesse globale mesur´ee. Ainsi cette valeur est mesur´ee via la relation (3.10), o`u
VM
[n] est la mesure r´eelle de la vitesse `a l’instant n et vsecart[n] est la contribution relative `
a la distance inter robots de la loi de commande d´efinie par (3.7).
V[n]R = V[n]M − v[n]ecart (3.10)
– H : L’horizon de pr´ediction. C’est le temps dans le futur sur lequel on applique
l’algorithme de pr´ediction.Ici le cas est discret, donc on choisit un nombre d’it´erations (nH) correspondant au nombre d’it´erations devant ˆetre faites dans le futur, pour minimiser le crit`ere quadratique.
– Vobj : L’objectif de consigne futur. C’est la valeur de la consigne que devra atteindre le syst`eme `a l’horizon H.
En consid´erant θl+ βlR et ˜θs+ βsRtr`es petit dans l’expression de vtrajs d´efinie en (3.7), on peut consid´erer que cos(θl+ βlR) ' 1 et cos(˜θs+ βs)'1R ce qui nous donne :
vtrajs = vl 1 − c(s)s ys 1 − c(s)l yl =⇒ VNobj = vl 1 − c(s + Ns)s ys 1 − c(s + Ns)l yl (3.11)
avec Ns l’abscisse curviligne ´equivalente `a l’it´eration N (N ∈ [n + 1, ..., n + n + nh]). En pratique, Ns est calcul´e en utilisant la vitesse curviligne Ns = ˙sN
– VRef : Vitesse de r´ef´erence souhait´e pour rejoindre la consigne objectif Vobj
[n+nH].
Celle-ci est choisie par l’utilisateur et d´efinit la dynamique du processus. Ici on choisit un premier ordre dans la relation (3.12) o`u i ∈ [0; nH] et γ ∈ [0; 1[.
Vn+iobj− Vn+iRef = γi[Vnobj− VR
n ] (3.12)
Il est possible de d´efinir la trajectoire de vitesse de r´ef´erence en fonction de l’objectif final. Dans ce cas on obtient l’´equation (3.13).
Vn+iRef = Vn+nobj
H]− γ
i[Vobj
n+nH]− V
R
n ] (3.13)
– ˆVR: Sortie pr´edite du processus. C’est la r´eponse future du processus `a une s´equence de commande d´efinie, connaissant le mod`ele d’´evolution du processus (i.e ´equations (3.8)).
Crit`ere `a minimiser
Le crit`ere D(n) `a minimiser repr´esente la distance entre ˆVR et VRef, ainsi il est d´efini par :
D(n) = nH
X
i=0
[ ˆVn+iR − Vn+iRef]2 (3.14)
Structuration de la commande future VC n+i
Ici on reprend la structure de la commande ´etablie pour la pr´ediction sur l’angle de braquage ´etabli dans [4], qui nous permet d’appliquer uniquement la premi`ere commande (VnC) de la s´equence ([VnC, Vn+1C , ..., Vn+nC H]) d´efinie par :
Vn+iC = nB X k=1 µk(n)VBkC(i) =⇒ VnC = nB X k=1 µk(n)VBkC(0) (3.15)
Ici les fonctions {VC
Bk} sont des fonctions de bases ind´ependantes entre elles. L’´equation (3.15) implique qu’au moins une des fonctions soit non nulle pour i = 0. On choisit alors une base polynomiale, telle que d´efinie par l’´equation (3.16), avec la convention i0 = 1 lorsque i = 0.
VBkC(i) = ik−1 (3.16)
Minimisation du crit`ere D(n)
Afin de r´ealiser la minimisation du crit`ere D(n), on va tout d’abord s´eparer la r´eponse pr´edite ( ˆVR) de l’actionneur en deux parties. Une partie ( ˆV
F R
) correspond `a la r´eponse forc´ee par la commande VC, et l’autre ( ˆV
L R
) correspond `a la partie libre de la r´eponse, d´ependant de l’´etat pr´ec´edent du syst`eme. On peut donc ´ecrire `a chaque instant n + i la r´eponse pr´edite du bas niveau comme d´ecrit par la relation (3.17).
ˆ V[n+i]R = ˆVF R [n+i]+ ˆVL R [n+i] (3.17)
Ainsi en utilisant les d´efinitions des r´eponses libres et forc´ees (3.18) et en les r´einjectant dans le crit`ere `a minimiser exprim´e en (3.14). On obtient la relation (3.19).
D(n) = nH
X
i=0
[C.Fi.X[n]V + µ(n)TVˆBR(i) − Vn+iRef]2 (3.19) Ainsi on peut noter :
d(n + i) = Vn+iRef − C.Fi.XV
[n] (3.20)
Ce qui am`ene `a :
D(n) = nH
X
i=0
[µ(n)TVˆBR(i) − d(n + i)]2 (3.21)
Il s’agit donc de trouver le vecteur µ(n) (ou le scalaire si nB = 1) minimisant (3.21). ´
Etant donn´e l’expression de D(n), il admet un minimum lorsque sa d´eriv´ee partielle par rapport `a µ est nul. Cette condition est exprim´e en (3.22).
nH
X
i=0
[µ(n)TVˆBR(i) − d(n + i)] ˆVBR(i) = 0 (3.22)
qui est ´equivalent `a :
nH X i=0 [ ˆVBR(i) ˆVBR(i)T] µ(n) − nH X i=0 d(n + i) ˆVBR(i) (3.23) On pose alors R1 et R2 comme suit :
R1 = nH X i=0 d(n + i) ˆVBR(i) , R2 = nH X i=0 [ ˆVBR(i) ˆVBR(i)T] (3.24) avec R1 un vecteur de dimension nB× 1 et R2 une matrice carr´ee de dimension nB. On suppose R2 inversible, et on obtient alors la solution au probl`eme de minimisation :
µopt(n) = minµ(n)[D(µ(n))] µopt(n) = R−12 R1
(3.25) Finalement, la commande appliqu´ee au processus ´etant la premi`ere de la s´equence de commande calcul´ee sur l’horizon de pr´ediction. L’expression de la commande g´en´erale est ´ egale `a (??) : Vtrajpred = VC n = [µopt(n)]TV0C Vtrajpred = " PnH
i=0[ ˆVBR(i) ˆVBR(i)T] −1 PnH i=0 d(n + i) ˆVR B(i) #T VC 0 (3.26) 3.3.4 Simulation et r´esultats
Maintenant que l’algorithme de pr´ediction est ´etabli, nous pouvons l’impl´ementer dans simulink afin de voir l’influence de la nouvelle commande sur la vitesse du robot suiveur. Pour cela un nouveau mod`ele simulink a ´etait mis en place (d´ecrit `a l’annexe B.3) per-mettant d’utiliser l’algorithme de pr´ediction (pr´esent´e `a l’annexe D.1). Avec ce nouveau mod`ele on obtient les r´esultats pr´esent´es sur la figure 3.5 que l’on peut comparer avec les r´esultats de la figure 3.3(b), les conditions pour les deux simulations ´etant identiques.
(c) trajectoire `a suivre
Figure 3.5 – R´esultats de simulation matlab pour le convoi de deux robots avec un ´ecart lat´eral pour le suiveur de 2m et commande pr´edictive en vitesse
La figure 3.6 montre les r´esultats avec et sans pr´ediction afin de bien pouvoir les comparer.
(a) Vitesse des robots (b) Variation de l’ecart longitudinal
Figure 3.6 – Comparaison des r´esultats avec et sans pr´ediction
On constate que la commande pr´edictive a bien les effets escompt´es sur la variation de l’´ecart entre les robots, en att´enuant fortement les variations de l’´ecart en entr´ee et sortie de virage. De plus on constate sur la figure 3.6(a) que la vitesse du suiveur dans le cas de la simulation avec pr´ediction, est en avance par rapport `a celle sans pr´ediction et que les d´epassements sont att´enu´es (le robot n’a plus besoin de rattrap´e de retard).
Les r´esultats th´eoriques ayant valid´e l’efficacit´e de la commande pr´edictive, il faut maintenant tester cette loi en conditions r´eelles. Pour cela Pierre Cartade le doctorant
des tests sont pr´esent´es dans la section suivante.
3.4
R´
esultats en test r´
eel
Toutes les figures des r´esultats des tests en conditions r´eelles sont regroup´ees `a l’annexe C. Ces courbes pr´esentent les r´esultats des essais effectu´es par le doctorant Pierre Cartade,
et son directeur de th`ese Roland Lenain sur le site de Montoldre le 7/08/2012. Lors de
cette journ´ee d’exp´erimentation, la loi de commande pr´edictive en vitesse a ´et´e test´ee selon le protocole suivant :
– Cr´eation de la trajectoire de r´ef´erence par acquisition des donn´ees GPS pendant le d´eplacement libre du robot.
– Exp´erimentation de la loi de commande en vitesse non pr´edictive avec une interdis-tance de 9 m et un ´ecart lat´eral de 2 m (figure C.1).
– Exp´erimentation de la loi de commande en vitesse pr´edictive avec une interdistance de 9 m et un ´ecart lat´eral de 2 m en faisant varier le temps de pr´ediction (1.1, 1.5 et 2 s) (respectivement figure C.2, C.3, C.4 ).
– Exp´erimentation de la loi de commande en vitesse non pr´edictive avec une interdis-tance de 9 m et un ´ecart lat´eral de 3 m (figure C.1)(figure (figure C.6).
– Exp´erimentation de la loi de commande en vitesse pr´edictive avec une interdistance de 9 m et un ´ecart lat´eral de 3 m en faisant varier le temps de pr´ediction (1.1, 1.5) (respectivement figure C.7, C.8).
Figure 3.7 – Photo du convoi lors des exp´erimentations `a Montoldre
La trajectoire de r´ef´erence qui a ´et´e enregistr´e, est constitu´ee de deux parties rectilignes et d’une partie faisant un demi-tour. Les parties rectilignes se trouvent sur herbe, alors que le demi-tour se fait sur asphalte. Cela explique la pr´esence d’un plus grand bruitage des signaux en d´ebut et fin de relev´e (le d´eplacement sur herbe engendre plus de bruits et plus de glissements).
La premi`ere chose que l’on doit constater sur les r´esultats est le d´ecouplage entre les lois commandant l’´ecart lat´eral et longitudinal des robots, l’´ecart lat´eral ´etant le mˆeme quelles que soient les conditions d’exp´erimentation (¿ `a 20 cm apr`es la phase d’initialisation).
Ensuite on peut constater que les r´esultats sur l’´ecart longitudinal sont ceux attendus, c’est-`a-dire que sur lors de l’exp´erimentation sans pr´ediction on constate des variations de l’´ecart lors de l’entr´ee et la sortie des virages (figure C.5(a)). Alors que lors des essais avec la loi pr´edictive, ces d´epassements sont r´eduits (voire nuls). On constate que le temps de pr´ediction permet de converger plus rapidement vers l’´ecart d´esir´e quand on augmente
On constate ´egalement que le cˆot´e pr´edictif de la commande fonctionne bien au niveau de la vitesse command´ee du suiveur (figure C.5(c)), ainsi que sur sa vitesse r´eelle (figure C.5(b)). Sur ces deux figures on constate que les vitesses, r´eelle ou command´ee, sont moins oscillantes lorsque le temps de pr´ediction est plus ´elev´e (cela est flagrant entre avec et sans pr´ediction). Cela s’explique par le fait que la commande pr´evoie la vitesse future ce qui a pour effet de r´eduire les pics de vitesse et r´eduit les effets d’oscillation.
Ces constatations sont ´egalement les mˆemes sur les essais avec un ´ecart lat´eral de 3 m (ce qui oblige le robot suiveur `a faire un chemin encore plus grand). Les figures C.9(c) et C.9(b) montrent bien que la vitesse sans pr´ediction est beaucoup plus oscillante ce qui provoquent sur l’´ecart longitudinal des oscillations (ph´enom`ene att´enu´e grˆace `a la com-mande pr´edictive).
Les r´esultats des tests sont donc concluants et valides la commande pr´edictive en
vitesse. Avec cette commande, cela nous permet donc d’assurer la conduite d’un convoi, en respectant l’interdistance entre les robots en simultan´e du respect de l’´ecart lat´eral par rapport `a la courbe de r´ef´erence.
3.5
Conclusion sur le convoi de robots
Aujourd’hui les lois mises en place et pr´esent´ees dans ce chapitre, permettent d’assurer
le respect d’une formation par un convoi de robots. Les perspectives d’am´elioration du
convoi r´esident maintenant dans la gestion de plusieurs formations successives, et du
passage de l’une `a l’autre, pour par exemple g´erer les demi-tours (passage du convoi en formation align´e les uns derri`ere les autres), ou bien l’´evitement d’obstacle (modification de l’´ecart lat´eral le temps de l’´evitement de l’obstacle). Les lois doivent ´egalement ˆetre modifi´e afin de pouvoir ´etablir la commande lorsque la trajectoire de r´ef´erence et cr´ee en ligne, pour par exemple permettre de conduire le robot leader avec un flotte de robot le suivant (donc sans trajectoire pr´ed´efinie).
Navigation inertielle
Une fois la commande en vitesse fonctionnelle il m’a ´et´e demand´e de travailler sur la mise en place d’un algorithme permettant de r´epondre `a la probl´ematique du
position-nement du robot. Comme nous avons pu le voir dans les chapitres pr´ec´edents, afin de
pouvoir ´etablir les diff´erentes commandes, les informations de positions des robots sont fournit par un GPS cin´ematique (GPS-RTK). Le plus gros d´efaut de ce gps est la fr´equence `
a laquelle il fournie les donn´ees de positionnement (10Hz), de ce fait la commande ne peut s’effectuer `a une fr´equence plus ´elev´ee que celle du GPS.
Ainsi dans l’optique de pouvoir ´etablir une commande du robot `a une fr´equence plus ´
elev´ee que celle du GPS, et ´egalement de pallier toute perte ´eventuelle de signal (dˆu par exemple `a la pr´esence d’arbres ou d’obstacles), il m’a ´et´e demand´e de travailler sur l’u-tilisation des donn´ees fournies par les autres capteurs pr´esents sur les robots (centrale inertielle et capteurs de vitesses des roues) afin de pouvoir localiser le robot entre deux tops GPS ou une fois le signal de celui-ci perdu.
Ainsi disposant d’une centrale inertielle fournissant des donn´ees `a 100Hz deux ap-proches ont ´et´e propos´e pour r´epondre `a cette probl´ematique :
– L’utilisation des donn´ees de la centrale seule pour le calcul de l’attitude et de la posi-tion (par int´egration des vitesses de rotation et double int´egration des acc´el´erations). – L’utilisation des donn´ees de la centrale pour le calcul de l’attitude du robot coupl´e
aux donn´ees de vitesse pour le calcul de position.
Dans un premier temps les diff´erentes approches pr´esent´ees ci-dessous on ´et´e impl´ement´ees sous Matlab et test´e en utilisant des jeux de donn´ees d’essai r´eel pr´ec´edent. Une fois la meilleure approche d´efinie celle-ci a ´et´e impl´ement´e en c++ puis test´e en condition r´eelle sur le robot RobuFast.
Le positionnement par GPS ´etant tr`es pr´ecis (voir pr´esentation du GPS en 2.1.2), le but n’est pas ici de remplacer ce capteur.
Le but de l’´etude est de fournir des donn´ees entre celles fournies par le GPS. Ainsi quelle que soit la m´ethode utilis´ee en plus du GPS pour positionner le robot, on utilisera en aval des filtres (ici filtres de Kalman) permettant de fusionner les donn´ees qui seront d’un cˆot´e fourni par le GPS (`a 10Hz) et de l’autre par la nouvelle m´ethode de positionnement
(`a 100Hz). Cela nous permettra donc d’obtenir en sortie des donn´ees `a 100Hz sans
perdre la fiabilit´e du GPS (dans la mesure ou celui-ci fourni des informations). Le sch´ema repr´esentant le principe de fonctionnement de l’algorithme `a mettre en place est pr´esent´e `
a la figure 4.1.
Figure 4.1 – Sch´ema de principe de l’hybridation des donn´ees de positionnement
Ainsi lorsque l’on a de nouvelles donn´ees GPS le positionnement se fait par
l’in-term´ediaire du filtre de Kalman. Alors qu’entre deux tops GPS ou lors d’une perte de
signal GPS le positionnement se fera par l’interm´ediaire de la m´ethode d’estimation seule. La m´ethode d’estimation ´etant d´ependante des donn´ees capteurs et de l’´etat pr´ec´edant du robot (position, vitesse, cap...), elle se trouve recal´ee `a chaque passage par le filtre de Kalman (la pr´epond´erance entre les donn´ees GPS et calcul´ees ´etant r´egl´ee grˆace aux gains du filtre).
Ce type d’approche pour le positionnement de v´ehicule a ´et´e pr´esent´e dans des ´ecrits telle que [9], [2] ou [3] qui traite des applications dans ce domaine avec des technologies bas de gamme (ce qui correspond `a notre ´etude).
Je vais donc maintenant pr´esenter les deux diff´erentes m´ethodes envisag´ees pour l’es-timation de la position, ainsi que les r´esultats obtenus avec ceux-ci en utilisation seul, hybrid´e et en simulant des pertes de signal du GPS.
4.2
Les diff´
erents rep`
eres d’´
etude et matrices de passage
Avant de pouvoir exploiter les donn´ees capteurs, il est n´ecessaire de mettre en place les diff´erents rep`eres d’´etudes et les outils math´ematiques nous permettant d’exprimer toutes ces donn´ees dans un seul et mˆeme rep`ere.
Les diff´erents rep`eres d’´etude :
GPS.
– Le rep`ere mobile (m). C’est le rep`ere li´e au robot ne tenant compte que de son cap (entre le rep`ere (l) et (m) il n’y a qu’une rotation de l’angle θ autour de l’axe z). – Le rep`ere de la centrale inertielle (c). C’est le rep`ere li´e `a la centrale, dans lequel
sont exprim´ees les donn´ees inertielles. Il tient compte des rotations d’angle α et β autour des axes xm et ym par rapport au rep`ere (m)
– Le rep`ere roue (r). C’est le rep`ere li´e `a la roue arri`ere fictive (roue utilis´ee par le mod`ele d’Ackerman).
• Les points :
– Le point O centre du rep`ere local. – Le point G centre du r´ecepteur GPS.
– Le point C centre du capteur inertiel et centre des rep`eres (c) et (m).
– Le point R centre de la roue fictive arri`ere (´equivalant au rep`ere (c) auquel on ajoute une rotation de δr+π2 autour de zc).
(a) Rotations entre les rep`eres (b) Le robots dans le rep`ere local
Figure 4.2 – Rep`eres,angles et points utilis´e pour l’algorithme
Il faut noter que l’angle θgps (cap fourni par les donn´ees GPS) est l’angle entre xL et ym alors que θ est l’angle entre xL et xm donc on a la relation (4.1) entre ces deux angles.
θ = θgps− π
2 (4.1)
Les donn´ees capteurs :
Les diff´erentes donn´ees capteurs `a notre disposition ainsi que les rep`eres dans lesquels elles sont exprim´ees sont les suivantes :
• Donn´ees GPS :
projection de Lambert). – La vitesse du robot Vgps.
– Le cap du robot θgps, qui repr´esente l’angle entre l’axe xL du rep`ere locale et le vecteur vitesse du robot.
• Donn´ee centrale inertielle :
Les donn´ees ´enum´er´ees ci apr`es sont exprim´ees dans le rep`ere centrale inertielle (c) au point C :
– Le vecteur acc´el´eration Ac.
– Le vecteur vitesse de rotations Ωc. • Donn´ees autres :
– La vitesse de chacune des roues arri`ere vd,vg exprim´ees au centre des roues. – L’angle de braquage de la roue arri`ere fictive δr.
– L’angle de glissement arri`ere βr obtenu par l’algorithme mis en place pour le suivi de trajectoire.
Les matrices de passage :
En prenant comme notation Mif la matrice de passage du rep`ere i au rep`ere f , et Xi le vecteur exprim´e dans la base i. On a donc Xi = MifXf.
´
Ecrivons tout d’abord les matrices de rotations (Rα, Rβ, Rθ) associ´ees aux trois rota-tions d’angle α autour de x, β autour de y et θ autour de z.
Rα= " 1 0 0 0 cos α − sin α 0 sin α cos α # Rβ= " cos β 0 sin β 0 1 0 − sin β 0 cos β # Rθ= " cos θ − sin θ 0 sin θ cos θ 0 0 0 1 # (4.2)
Ainsi les matrices de passages MLm , Mmc et MLc pr´esent´ees ci-apr`es (4.3), nous per-mettrons d’exprimer les vecteurs Ac et Ωc dans tous les rep`eres d’´etude.
MLm = Rθ, Mmc = Rβ∗ Rα, MLc = Rθ∗ Rβ∗ Rα MLm= cos θ − sin θ 0 sin θ cos θ 0 0 0 1 Mmc=
cos β sin β sin α sin β cos α
0 cos α − sin α
− sin β cos β sin α cos β cos α
MLc =
cos θ cos β cos θ sin β sin α − sin θ cos α cos θ sin β cos α + sin θ sin α sin θ cos β sin θ sin β sin α + cos θ cos α sin θ sin β cos α − cos θ sin α
− sin β cos β sin α cos β cos α
(4.3)
4.3
Calcul d’attitude du robot
Afin de pouvoir exploiter les donn´ees inertielles, il faut pouvoir connaitre l’attitude du robot (valeur des angles α, β et θ), ce qui nous permettra d’alimenter les matrices de passage pr´esent´ees en (4.3).
Le calcul de l’attitude du robot se fera en int´egrant les vitesses angulaires donn´ees par la centrale. Il est donc n´ecessaire dans un premier temps, de pouvoir initialiser ces valeurs.
donn´ees de la centrale, en se servant du fait que celle-ci mesure la pesanteur. Ainsi on obtient les ´equations (4.4) en se basant sur le sch´ema 4.3.
Figure 4.3 – Sch´ema pour l’initialisation de l’attitude
Sur ce sch´ema les axes Xc2et Zc2sont ceux du rep`ere (c) auxquels on a retir´e la rotation alpha autour de Xc. α = Ay Az β = −Ax sin(α) tan(α)+cos(α)Az (4.4)
Avec Ax, Ay, Az les composantes du vecteur acc´el´eration (Ac) relev´ee par la centrale inertielle.
L’initialisation de l’angle θ se fera par le biais des donn´ees GPS et n´ecessitera donc
de mettre le robot en mouvement. Par cons´equent entre le moment o`u les angles α et β
sont initialis´es et le moment ou la valeur initiale de θ sera relev´ee on utilisera l’algorithme permettant de calculer l’attitude `a partir des donn´ees inertielles afin de garder des valeurs de α et β coh´erente.
4.3.2 M´ethode de calcul d’attitude :
Afin de pouvoir calculer par int´egration la valeur des angles d’attitude d´ecrit `a la figure 4.2(a), il est n´ecessaire de mettre en relation les vitesses de rotation donn´ees par la centrale not´ees p, r et y, respectivement autour de xc, yc et zc, et les vitesses de rotation ˙α, ˙β et ˙θ. Cette relation est donn´ees par l’´equation (4.5) qui exprime le fait que le vecteur vitesse de rotation Ωcest la somme de chacune des vitesses de rotation ( ˙α, ˙β et ˙θ) projet´ees dans le rep`ere de la centrale inertielle (c).
p r y = ˙ α 0 0 + R T α 0 ˙ β 0 + (RβRα) T 0 0 ˙ θ (4.5) Ce qui donne : p r y = 1 0 − sin β
0 cos α sin α cos β
0 − sin α cos α cos β
˙ α ˙ β ˙ θ (4.6)
˙ α ˙ β ˙ θ = 1 cos β
cos β sin β sin α sin β cos α
0 cos α cos β − sin α cos β
0 sin α cos α p r y (4.7)
Finalement dans l’algorithme utilis´e pour calculer l’attitude du robot, la matrice de la relation (4.7) sera aliment´ee avec les valeurs des angles pr´ec´edents (les angles variant faiblement vis `a vis de la p´eriode d’´echantillonnage), puis on calcule la valeur des angles `
a l’instant k par int´egration en utilisant la relation :
anglek= anglek−1+angle ∗ T˙ (4.8)
avec T la p´eriode d’´echantillonnage.
Il suffit ensuite de r´einjecter les valeurs des angles ainsi d´etermin´ees dans les matrices de passages de la relation (4.3). Ce qui va nous permettre par la suite d’exploiter les donn´ees acc´el´erom´etriques de la centrale.
L’algorithme calculant l’attitude du robot est pr´esent´e en annexe D.2.2 `a la ligne 220.
4.4
Calculs de la position
4.4.1 Utilisation des donn´ees inertielles seules
La centrale utilis´ee (MTi de Xsens) est une centrale inertielle d’attitude, et n’est donc pas destin´ee `a servir de moyen de positionnement. Son fonctionnement ainsi qu’une ´etude de ses diff´erentes caract´eristiques sont pr´esent´es dans [7].
Cependant afin de calculer la position du robot, je me suis d’abord orient´e vers l’int´egration des acc´el´erations fournies par la centrale afin de calculer la position du robot. Ainsi ayant `
a notre disposition les matrices de passage entre les diff´erents rep`eres d’´etude (cf 4.3), et notamment entre le rep`ere de la centrale (c) et le rep`ere local (L). Cela nous permet de projeter les acc´el´erations relev´ees par la centrale dans le rep`ere local puis de les int´egrer par deux fois, pour dans un premier temps calculer la vitesse du robot, puis sa position dans le rep`ere (L).
Donc une fois le vecteur Ac projet´e dans le rep`ere (L) avec la matrice MLc on obtient le vecteur AL dont on va se servir pour l’int´egration.
AL= MLc∗ Ac (4.9)
Ainsi en int´egrant une premi`ere fois et en utilisant les vitesses pr´ec´edentes du robot projet´ees dans le rep`ere locale (L) (que l’on initialisera `a l’aide du GPS), on obtient les vitesses vxL et vyL (vitesses selon xL et yL).
VxLk = VxLk−1+ AxL∗ T
VyLk = VyLk−1+ AyL∗ T
(4.10) Ces vitesses sont n´ecessaires afin de pouvoir r´ealiser la double int´egration permettant de calculer la position du robot comme d´ecrite `a l’´equation (4.11).
Xk = Xk−1+ vxLk−1∗ T + AxL∗T2 2 Yk = Xk−1+ vyLk−1∗ T + AyL∗T2 2 (4.11)