Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Workflow has a deprecated constructor in /home/simonroh/www/research/phd/workflow.php on line 9

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WorkflowTask has a deprecated constructor in /home/simonroh/www/research/phd/workflow.php on line 48

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/simonroh/www/research/phd/workflow.php:9) in /home/simonroh/www/research/common/initialisation.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/simonroh/www/research/phd/workflow.php:9) in /home/simonroh/www/research/common/initialisation.php on line 2
Thèse - Simon Rohou
Langues

Thèse : workflow
Exploration d'une zone sous-marine étendue par des robots autonomes

Cette page liste certaines étapes de ce travail :

  1. Affichage de boîtes de positions dans MORSE (11/2014)
  2. Amélioration de la compatibilité MOOS/MORSE (11/2014)
  3. 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.