sujet - Université de Picardie Jules Verne
Transcription
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