Robot Operating System: Difference between revisions
No edit summary |
Simon.Planes (talk | contribs) |
||
Line 104: | Line 104: | ||
=== Principles === |
=== Principles === |
||
* Packages |
* Packages |
||
ROS is organized in packages. They include, among other, ROS nodes. They allows developers to easily reuse pieces of software. You can create a package by hand or with the command <code> |
ROS is organized in packages. They include, among other, ROS nodes. They allows developers to easily reuse pieces of software. You can create a package by hand or with the command: <code>roscreate-pkg <package-name></code>. Actually, a ROS package is nothing but a directory descended from ROS_PACKAGE_PATH that has a manifest.xml file in it. A package may include the following contents: |
||
** <code>msg/</code>: message types |
|||
** <code>srv/</code>: service types |
|||
** <code>scripts/</code>: executable scripts (Pyhton sources for example) |
|||
** <code>CMakeLists.txt/</code>: CMake build file |
|||
** <code>manifest.xml/</code>: package Manifest |
|||
To build a package, type <code>rosmake <package-name></code> |
|||
* Nodes |
* Nodes |
||
* Topics |
* Topics |
Revision as of 13:26, 7 April 2013
ROS (a.k.a Robot Operating System or Robot OS), can be seen as a kind of Robotic Framework. Because it can't be installed directly on robotic Equipment (ROS needs a computer and works above its OS), it can't be considered as a pure operating system. In addition to providing a complete development and execution environment, ROS includes numerous simulation tools. However, it does not guarantee runtime properties, services or event processing in deterministic time spots (ie realtime processing), though it is possible to integrate ROS with realtime code (openCV is supported).
Installation
Setup sources.list
In a terminal, type the following line:
|
where <distribution> 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:
|
Use ROS
Principles
- Packages
ROS is organized in packages. They include, among other, ROS nodes. They allows developers to easily reuse pieces of software. You can create a package by hand or with the command: roscreate-pkg <package-name>
. Actually, a ROS package is nothing but a directory descended from ROS_PACKAGE_PATH that has a manifest.xml file in it. A package may include the following contents:
msg/
: message typessrv/
: service typesscripts/
: executable scripts (Pyhton sources for example)CMakeLists.txt/
: CMake build filemanifest.xml/
: package Manifest
To build a package, type rosmake <package-name>
- 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/<username>/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/<username>/groovy_workspace/sandbox/" >> ~/.bashrc).
- "roscd: No such package/stack '<package_name>': check if the package exists and is included in your ROS_PACKAGE_PATH.
Others
API
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