Robot Operating System

ROS est un environnement de developpement et d'exécution et de simulation pour la robotique développé initialement au MIT. '''ROS n'est pas un système d'exploitation et ROS n'offre pas de propriétés d'exécution en temps déterministe des taches, services, traitement des événements, ... (ie Temps Réel).

Il supporte des robots comme le Wifibot, le TurtleBot, le Lego Mindstorm NXT via un hôte Linux, des bras robotiques Lynx Motion  .... (voir la liste presque complète).

ROS est porté sur plusieurs OS cependant seule la version Ubuntu est rapidement utilisables.

De nombreux pilotes d'équipements robotiques (contrôleur moteurs, lidar, télémètre, kinect ...) ont été développés.

Les 2 principaux langages utilisés sont C++ et Python. Il existe des bindings pour Java et Javascript (Node.js). Une application ROS est organisée en nodes qui sont des processus (Unix) concurrents. Les nodes interagissent par envoi d'évenements via des topics en mode publish-subscribe et bien par invocation d'opérations de service.

Il inclut des démonstrations de vision avec la XBox Kinect et OpenCV

ROS Industrial (http://rosindustrial.org/) est une version de ROS destinée aux robots industriels. a free, open-source, BSD-licensed software library, extends the advanced capabilities of the Robot Operating System (ROS) software to new industrial applications.

Setup sources.list
In a terminal, type the following line: where is your Ubuntu ditsribution name (e.g. "precise", "quantal", "raring", ...) This will add ROS repositories to your distribution.

Setup your keys
Now, you are able to download the latest updates from ROS.

Installation
Update the Debian packages:

Install the full Groovy configuration:

It will install ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception.

Initialize rosdep: This tool is used to install system dependencies required by ROS packages.

ROS is now installed but in order to run it, some environment variables must be assigned. This can be automatically done at the launch of the session:

Install python tools:

Finally, execute the script:

Configuration
Create a ROS workspace:

Every time you modify or add entries in your workspace, re-source ~/groovy_workspace/setup.bash:

Principles

 * Packages
 * Nodes
 * Topics
 * Publishers/subscribers

Useful commandline tools

 * roscd [package_name]: change directory directly to a package (indepently from your current directory)
 * rosls [package_name]: list directory contents directly

Troubleshooting

 * Error messages:
 * "No ROS_WORKSPACE set": check if your environment variable ROS_WORKSPACE is assigned (echo $ROS_WORKSPACE). If not, update your .bashrc file (echo "export ROS_WORKSPACE=/home/ /groovy_workspace" >> ~/.bashrc).
 * "No ROS_PACKAGE_PATH set": check if your environment variable ROS_PACKAGE_PATH is assigned (echo $ROS_PACKAGE_PATH). If not, update your .bashrc file (echo "export ROS_PACKAGE_PATH=/home/ /groovy_workspace/sandbox/" >> ~/.bashrc).
 * "roscd: No such package/stack '': check if the package exists and is included in your ROS_PACKAGE_PATH.

Javascript
rosnodejs Programming robots with Javascript & Node.js

Projets AIR

 * RobAIR2013-RICM5 tunnelling XMPP entre des nodes ROS. GStreamer
 * Armind
 * Robot d'inspection géotechnique