Forum

ROS

Fil de discussion spécifique ROS
Public write access is disabled. Please login or register
Last post
robinPass

robinPass
9 posts
---
Location:
n.a.
26.04.2012 18:49

Le middleware ROS

J'ouvre un thead de discussion sur ROS puisque ce middleware est en train de devenir "mainstream" pour les développeurs d'applications robotiques.

Résumé :

ROS signifie "Robot Operating System" on pourrait donc croire que c'est un système d'exploitation logiciel classique. Néanmoins il faut plutôt voir ROS comme une surcouche logicielle utilisable sur différents OS, permettant de "standardiser" l'interaction entre les applications et le système d'exploitation choisi. Donc si on suite une terminologie classique en informatique ROS est, à la base, un middleware, les auteurs préférant le terme "meta operating system" ...

ROS fournit une ensemble de librairies et d'outils qui permettent de packager et de déployer (à travers les notions de package et de stack) des applications définies à partir d'un ensemble de processus (appelés nodes) en interaction.

Pour définir ces "nodes" on utilise une API "noyau" qui permet au développeur de s'abstraire en grande partie des appels systèmes liés à la gestion des processus. On peut notamment citer les deux modèles de communication interprocessus supportés : les services (modèle requête/réponse, de type RPC) et les messages (modèle producteur/consommateur). L'implémentation de ces modèles de communication repose sur l'utilisation de sockets, ce qui a l'avantage de faciliter la distribution des application et le désavantage d'alourdir les communications (au sens temps CPU) par rapport à l'utilisation de mécanismes IPC natifs à l'OS.

Les outils (utilisables notamment en ligne de commande) permettent de packager et de déployer des applications (ou parties d'application) et des librairies de manière assez facile et structurée.

Jusque là, on peut voir ROS comme un "environnement" de programmation multi-tâches proposant des processus de communications standardisés entre tâches. ROS devient réellement dédié à la "robotique" via l'énorme quantité de librairies de niveau "applicatif" qui sont fournies. Ces librairies implémentent des "drivers" de plateformes robotiques (e.g. Nao d'Aldébaran), des librairies pour l'utilisation de capteurs (e.g. Kinect), des algorithmes (e.g. génération de trajectoire), des frameworks pour la simulation/visualisation, etc. Bref beaucoup de choses très diverses mais très utiles ...

C'est à mon avis l'existence de ces nombreuses librairies/packagesque qui expliquent le succès actuel de ROS, ainsi que par sa nature Open source, qui facilite les échanges. Et c'est assez compréhensible puisque ROS offre, une fois l'approche comprise et les outils maitrisé, une relative facilité de mise en oeuvre des applications. Notons qu'en plus le développement de ROS est largement appuyé par la société Willow Garage, ce qui permet d'assurer un minimum de fiabilité et de cohérence au projet. Le seul bémol que je mettrais est dans la gestion des aspects temps-réels au sein de ROS (ce qui est un peu embêtant pour un middleware "robotique") : elle est inexistante en natif et reléguée à des middleware tiers (comme OROCOS) pour lesquels sont fournis des interfaces avec ROS.


A l'heure actuelle ROS est fourni en version stable pour Ubuntu, mais devrait rapidement être disponible pour de nombreuses autres distribution linux ainsi que sous Windows (avec certainement des restrictions dans l'utilisation des librairies disponibles sur cet OS).

Il ne vous reste plus qu'à tester ... et à donner vos expériences /sentiments / remarques /corrections dans la suite de ce thread de discussion...

Edited by robinPass - 26.04.2012 18:49




 
pissard

pissard
8 posts
---
Location:
n.a.
02.05.2012 21:12
Re: Le middleware ROS
Juste après ICRA, il y a les journées des développeurs ROS, RosCon 2012, le 19&20 Mai 2012 à St. Paul, Minnesota.

Le programme est visible depuis:
http://roscon.ros.org/?page_id=33

Roger




 
Discussions v1.3
(c) 2010-2011 Codingfish