Aller au contenu


Oliv

Inscrit(e) (le) 27 nov. 2013
Déconnecté Dernière activité mars 30 2016 05:26
-----

#58762 Découvrir ROS

Posté par Oliv - 17 décembre 2013 - 12:21

Bonjour

Ce post vise à faire un peu de pub pour le logiciel ROS (Robot Operating System, http://www.ros.org).
Davantage qu'un logiciel, c'est une architecture visant à bénéficier des contributions des utilisateurs (dont de nombreux labos et entreprises).

L'idée de base est qu'il est très compliqué de faire le programme complet d'un robot. En effet on aura besoin de compétences différentes pour la commande, la modélisation, la vision, la planification, etc.

Dans ROS, on programme uniquement la partie qui nous est propre. On utilise librement les librairies mises à disposition par les autres, et ces différents programmes communiquent entre eux en faisant chacun ce pour quoi ils sont faits. Un programme de base est appelé un node, les canaux de communication sont les topics. Un ou plusieurs nodes peuvent publier (envoyer des données) ou souscrire (recevoir) sur un topic. Par exemple :
- un node se connectant à une caméra et publiant les images
- un node recevant les images et publiant les informations extraites (position des points, détection de visage...)
- un node recevant les informations et publiant la commande à effectuer pour que le robot suive le visage détecté
- un node recevant ces commandes et les envoyant sur les actionneurs

Il y a notamment pas mal de simulateurs avec de nombreux robots déjà modélisés, vous permettant de découvrir comment on contrôle un bras, un robot mobile, un humanoïde, un robot sous-marin...

J'ai un cours deprésentation ici.
J'ai également mis en ligne un TP que j'encadre, récupérable via git :
git clone https://github.com/oKermorgant/tpRobots.git

De mon point de vue ROS est un très bon support pour découvrir les divers aspects logiciels de la robotique. La programmation se fait en C++ ou en Python.
Le gros intérêt est que si vos nodes sont bien conçus, ils fonctionnent aussi bien en simulation que sur un vrai robot : par exemple un node de traitement d'image se moque de recevoir de vraies images ou bien des images générées par un simulateur. Il va les traiter et envoyer l'information désirée. Idem pour le node de commande, de planification, etc. Seuls les nodes liés à des capteurs ou des actionneurs sont à modifier.

Le site comprend de nombreux tutoriaux (en anglais) et pour commencer je conseille de s'amuser avec un robot mobile sous Rviz, qui est le simulateur de base de ROS.
Enfin, ce logiciel est particulièrement adapté à Ubuntu puisqu'il est dispo sous forme de paquets pour cette distribution, ce qui simplifie grandement l'installation.
Pour ceux qui ne veulent pas installer Ubuntu, il est possible de faire tourner ROS dans une machine virtuelle : http://wiki.ros.org/groovy/Installation (en haut de la page).
C'est ce que je fais sous Mac et ça marche très bien.

N'hésitez pas si vous avez des questions.