Thèse : workflow
Exploration d'une zone sous-marine étendue par des robots autonomes
Cette page liste certaines étapes de ce travail :
- Affichage de boîtes de positions dans MORSE (11/2014)
- Amélioration de la compatibilité MOOS/MORSE (11/2014)
- Mise en place de l'architecture logicielle (10/2014)
Novembre 2014Affichage de boîtes de positions dans MORSE
Avec l'analyse par intervalles, la position d'un robot n'est plus scalaire mais
considérable comme un subpaving en 3D (une boîte). Une énorme boîte signifiera
que le robot est perdu tandis qu'une petite symbolisera une estimation précise
de la position. Il sera utile d'afficher cette position sous forme de boîte dans
mes futures simulations 3D (à l'aide de MORSE et Blender). Cet affichage n'est pas
disponible par défaut dans MORSE. Ce genre de fonctionnalité pourrait intéresser
les personnes travaillant en robotique à l'aide des intervalles.
J'ai à nouveau forké
le dépôt Github de Morse pour essayer d'ajouter
cette nouvelle fonctionnalité. Mon objectif est de contrôler un objet cubique (qu'on appellera PositionBox)
par robot depuis sa communauté MOOS. Cela m'a pris un moment pour comprendre le fonctionnement de MORSE
mais je suis finalement parvenu à mes fins :
Cette fonctionnalité est pour le moment uniquement disponible dans mon dépôt Github.
Novembre 2014Amélioration de la compatibilité MOOS/MORSE
Quand j'ai commencé ma thèse, je pouvais communiquer vers MORSE à travers
une seule communauté MOOS. Ce n'est pas suffisant si je souhaite simuler
plusieurs robots (avec un robot par communauté). J'ai forké le dépôt
Github du projet MORSE, mis à jour le simulateur et renvoyé ma contribution
aux développeurs.
Une simulation multi-robots avec MORSE et MOOS est maintenant possible :
Octobre 2014Mise en place de l'architecture logicielle
Mon travaille est centré sur les robots sous-marins autonomes et leur
collaboration au sein d'une formation. Pour tester mes algorithmes (lors d'essais
en mer ou en simulation), je dois mettre en place différentes briques logicielles
telles qu'un middleware, des bibliothèques mathématiques, des interfaces 3D, etc.
Cette nouvelle architecture sera utilisée dans deux cas: pour des simulations (3D ou 2D)
dans le labo et pour des missions en mer. Pour gagner du temps, il est intéressant
de garder autant que possible la même architecture en favorisant la notion de
hardware in the loop lors des démonstrations en mer (où les composants
matériels remplaceront progressivement les éléments de simulation). Cette évolution
sera possible en utilisant un bon middleware et en conservant un environnement de développement
identique sur les robots et sur les machines de simulation.
Middleware: présentation de MOOS
MOOS est un middleware (un intergiciel) né au MIT et conçu par Paul Newman de
l'Université d'Oxford. Il est utilisé dans différents domaines de robotique comme
base de communication entre chaque processus d'un robot et entre les robots eux-mêmes.
MOOS, une Mission Oriented Operating Suite, est un équivalent de ROS, un
Robot Operating System largement utilisé en robotique.
Aujourd'hui MOOS est utilisé dans une communauté solide constituée du MIT, de Bluefin Robotics,
de la US Navy, de l'Université d'Oxford et du CMRE (le centre de recherche en applications sous-marines
de l'OTAN en Italie). De nombreux modules MOOS sont disponibles grâce à cette communauté et
plus particulièrement grâce au MIT avec ses applications IvP tournées vers des problématiques marines.
MOOS permet de diviser la partie logicielle d'un robot en une suite de processus. Les applications
(appelées MOOSApps) communiquent à travers la MOOSDB : une base de données centrale dans laquelle
il est possible de voir l'état courant des variables (appelées MOOSVar). Sur un AUV, il est par exemple
possible de communiquer une position XYZ, des valeurs de caps, des images venant des caméras, des
courants marins simulés, etc.
MOOS sera donc placé au cœur de mon architecture logicielle et sera utilisé en simulation
comme en mission. La partie IvP développée par le MIT est un module MOOS particulier facilitant
la prise de décision et la gestion des comportements. Je prévoie de l'utiliser afin de
gérer les différents comportements d'un robot au cours d'une mission.
Analyse par intervalles : deux outils
Je vais utiliser les intervalles pour résoudre les problèmes de localisation et de cartographie.
Pour cela, je vais utiliser la bibliothèque IBEX comme base de l'arithmétique par intervalles. J'ajouterais
probablement une surcouche logicielle appliquée à la robotique.
Nous y réfléchissons actuellement dans le laboratoire.
VIBes est un outil permettant de visualiser les intervalles et les boîtes. Il a pour but de rester simple,
distant et rapide.
Simulation 3D : l'intégration de Blender dans l'architecture
Blender est un outil puissant de modélisation et est particulièrement intéressant
pour de la simulation 3D. C'est un logiciel libre et open-source, utilisable à travers
son API Python. Un lien entre de la recherche en robotique et Blender peut être fait
avec MORSE, un simulateur générique.
Je vais contribuer au développement de MORSE dans le but de faire le lien entre ce simulateur
et le middleware MOOS. Pour l'instant, MORSE fonctionne avec MOOS à travers une seule
communauté (c'est à dire un seul robot) et certains actuators et sensors
manquent pour ce type d'utilisation.
Mes avancées sur cette contribution seront décrites prochainement.