sujet - Université de Picardie Jules Verne

Université de Picardie Jules Verne
M2 EEAII ViRob
2014-2015
Perception Avancée et Robotique Mobile
TP1 - Amigobot et évitement d’obstacles
Durée: 3h + 1h pour le compte rendu
Le but de ce TP est d’implémenter un contrôleur pour la navigation du robot mobile
Amigobot d'Adept MobileRobots avec évitement d’obstacles. Le travail consiste à réaliser un
programme C++ exploitant la librairie ARIA et se connectant au robot virtuel afin de le
contrôler pour éviter les obstacles en utilisant ses capteurs. Le logiciel MobileSim est d’abord
utilisé avec une carte pour avoir un robot virtuel qui simule le déplacement et les différentes
actions du robot Amigobot. Ensuite, le programme est exécuté sur le robot réel pour naviguer
d’une façon autonome tout en évitant les obstacles dans l’environnement.
Un compte rendu avec les méthodes proposées et utilisées ainsi que les résultats
intermédiaires est à rendre à la fin de la séance par chaque binôme d'étudiants.
Attention: Sélectionner la version à 64 bits au démarrage de Windows.
Exercice 1 : Simulateur MobileSim et interface MobileEyes
Le diagramme ci-dessous récapitule les deux modes d’exécution possibles d’un
programme C++/ARIA.
Robot Amigobot
Programme
C++/ARIA
Mode
Serveur ?
Simulateur
MobileSim
Oui
Interface de
téléopération
MobileEyes
1) Lancer MobileSim sans carte avec le modèle du robot "amigo".
2) Exécuter le programme « demo.exe » qui se situe dans MobileRobots\Aria\bin et
manipuler le robot dans les différents modes. Décrire en détail les caractéristiques des
modes "Position" et "Sonar".
3) Lancer MobileEyes après avoir relancé MobileSim avec carte et « serverDemo.exe »
du même répertoire (MobileRobots\Aria\bin). Utilisez une des cartes prédéfinies (ou la
carte de l'arêne de test, si disponible). Pour lancer MobileEyes, utilisez comme Robot
Server "localhost" et demandez l'Username et Password au chargé de TP.
Manipuler le robot virtuel avec MobileEyes dans le mode téléopération, et essayer les
différents modes de déplacement du robot. Afficher la trajectoire du robot.
Fabio Morbidi
Page 1/3
Université de Picardie Jules Verne
M2 EEAII ViRob
2014-2015
Perception Avancée et Robotique Mobile
Exercice 2 : Librairie ARIA et simulation du programme
ARIA fournit une interface et un cadre de contrôle et de réception de données de
toutes les plateformes robotiques Adept, ainsi que de nombreux dispositifs externes
(accessoires). Tout est issu d'une seule librarie C++ qui inclut des outils utiles pour l'écriture
de logiciels de commande de robot. « demo.exe » et « serverDemo.exe » sont des exemples de
programmes C++ exploitant la librairie ARIA où plusieurs comportements s'exécutent en
parallèle. Pour décider automatiquement et à tout instant quel comportement/action appliqué,
un système de priorité est utilisé.
1) Une action ARIA est une classe C++ dérivant la classe ArAction (cf. doc ARIA).
Déterminez un ensemble de classes C++/ARIA d’actions de base permettant un
déplacement simple du robot et d’éviter les obstacles.
2) Quel(s) capteur(s),
comportements?
présents
sur
l’Amigo,
utiliser
pour
implémenter
ces
3) La structure d’un programme ARIA est la suivante (télécharger le fichier modèle du
programme sur le site du cours: http://home.mis.u-picardie.fr/~fabio/Teaching.html) :
a. Définition du robot (ArRobot)
b. Initialisation du contexte (Aria::init())
c. Définition des capteurs utilisés dans le
programme
d. Définition des actions
e. Ajout des capteurs au robot (méthode
addXXXDevice d’un objet de type
ArRobot)
f. Activation des moteurs avec la
méthode comInit d’un objet de type
ArRobot (ArCommands::ENABLE en
premier paramètre) et activation des
capteurs.
g. Ajout des actions au robot avec un niveau de priorité (méthode addAction d’un
objet de type ArRobot)
h. Exécution des comportements (méthode run d’un objet de type ArRobot)
i. Attendre la fin de l’exécution (méthode waitForRunExit d’un objet de type
ArRobot)
j. Fin du programme par un appel à Aria::exit(0) pour libérer proprement le contexte.
Complétez et exécutez le programme pour déplacer, d’une façon autonome, le robot
dans son environnement tout en évitant les obstacles, en utilisant les capteurs ultrasons
intégrés dans le robot.
Fabio Morbidi
Page 2/3
Université de Picardie Jules Verne
M2 EEAII ViRob
2014-2015
Perception Avancée et Robotique Mobile
Exercice 3 : Découverte et mise en route du robot Amigobot
Cet exercice d’observation vise à vous familiariser avec le fonctionnement du robot
Amigobot. En se basant sur la documentation du robot, manipulez le robot et découvrez
les différents éléments, notamment :
1) Le nombre et le type des roues du robot. Déduire le type du robot et son degré de
mobilité.
2) Les caractéristiques des capteurs intégrés dans le robot et des capteurs externes qui
peuvent être montés sur le robot.
3) La vitesse maximale du robot (linéaire et angulaire)
4) Les modes de connexion possibles avec le robot.
5) L’utilité des boutons poussoirs présents sur le robot.
6) La signification des différents signaux sonores émis par le robot.
Exercice 4 : Exécution du programme sur l’Amigobot
Dans cet exercice, le robot Amigobot communique par réseau local sans fil (Wi-Fi)
avec un ordinateur distant qui exécute le programme de commande. Le but est d’exécuter
le programme écrit dans l'Exercice 2 sur le robot réel (une fois simulé et vérifié avec le
simulateur MobileSim). Suivre les étapes suivantes:
1) Démarrer le robot réel
2) Vérifier que vous êtes bien connectés au réseau local du robot par Wi-Fi (le nom des
robots est: "Amigobot 11, 12, 13 ou 14").
Attention : désactiver la carte réseau local du PC, et vérifier que l’IP de la carte sans fil
(Wi-Fi) est 10.0.126.10x (pas de passerelle, ni DNS).
3) Pour se connecter au robot (d’adresse IP ip_robot) en remoteHost et exécuter un
programme (program), lancer la ligne de commande suivante :
program -rh ip_robot
Manipuler d’abord le robot avec le programme « demo.exe » en mode position et
téléopération, et observer les valeurs des données transmis par les capteurs.
4) Exécuter ensuite votre programme pour déplacer le robot avec prise en compte de
l’évitement d’obstacles.
Fabio Morbidi
Page 3/3