Difference between revisions of "Ros"

From ArchWiki
Jump to: navigation, search
(Setup Notes - Groovy: added note about yaourt install)
(29 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Out of date}}
+
[[Category:Mathematics and science]]
 
+
Originally from the [http://www.ros.org/wiki/cturtle/Installation/Arch ROS wiki].
+
 
[http://www.ros.org ROS] is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.
 
[http://www.ros.org ROS] is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.
  
== Setup ==
+
== Setup Notes - Groovy ==
Get dependencies, and create alternate python dir to workaround shebang line in scripts that points to python3. Thanks to [http://evorobo.blogspot.com/2011/07/robotics-operating-system.html DavidS]. Symlink libboost_filesystem.so.1.47.0 to libboost_filesystem-mt.so, not an ideal solution, but it works-I let devs know. Compiling gcc45 may be unneccesary-remove from here if it is.
+
pacman -S python2 cmake wget python-yaml python2-distribute python-yaml pil python-numpy
+
yaourt -S gcc45 log4cxx
+
mkdir /usr/local/bin/alt 
+
ln -s /usr/bin/python2 /usr/local/bin/alt/python
+
ln -s /usr/lib/libboost_filesystem.so.1.47.0 /usr/lib/libboost_filesystem-mt.so
+
== Rosinstall ==
+
 
+
The following lines will download the ROS source code using the rosinstall tool, and bootstrap the installation. The installation downloads all ROS stacks in subdirectories inside the ~/ros directory, one subdirectory for each stack in the rosinstall file.
+
 
+
First install rosinstall:
+
 
+
sudo easy_install-2.7 -U rosinstall
+
 
+
Then use rosinstall to download your preferred C-Turtle variant:
+
 
+
ROS-only: Includes basic ROS and tutorials.
+
 
+
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=ros_only&overlay=no"
+
 
+
Base Install: ROS plus robot-generic stacks (e.g. navigation, visualization)
+
 
+
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=base&overlay=no"
+
 
+
PR2 Install: ROS plus PR2-specific stacks, including PR2 simulator.
+
 
+
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=pr2&overlay=no"
+
 
+
PR2 All Install: ROS plus PR2 and bleeding edge research/experimental stacks.
+
 
+
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=pr2all&overlay=no"
+
 
+
NOTE: the instructions above download all stacks inside the ~/ros folder. If you prefer a different location, simply change the ~/ros in the commands above.
+
 
+
==Environment Setup==
+
 
+
You'll now need to update your environment. You can do this by typing:
+
 
+
source ~/ros/setup.bash
+
 
+
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched, which you can do with the command below:
+
 
+
echo "source ~/ros/setup.bash" >> ~/.bashrc
+
. ~/.bashrc
+
  
For Zsh users, change the last line of ~/ros/setup.zsh to
+
Currently, groovy is the only (semi-)supported ROS release that has Arch packages. The core, comm, and robot variants have meta-packages that should install all the necessary packages: {{AUR|ros-groovy-ros}}, {{AUR|ros-groovy-ros-comm}}, (TODO: robot metapackage). In addition, {{AUR|ros-groovy-rviz}} (along with its dependencies) has a package. Beware, the dependency tree goes at least five levels deep at times. {{AUR|yaourt}} handles it (somewhat), {{AUR|packer}} falls flat. It is strongly recommended that you install {{AUR|ros-groovy-ros}} first to prevent yaourt's ridiculous dependency thrashing.
  
source $ROS_ROOT/tools/rosbash/roszsh
+
The packages are all available in the maintainer's github: [https://github.com/zootboy/arch-ros-stacks arch-ros-stacks]. Not all packages there are in a working state, so use with caution. Please, report any issues with the packages on their respective AUR pages.
  
before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with
+
== Usage Notes - Groovy ==
  
echo "source ~/ros/setup.zsh" >> ~/.zshrc
+
Due to the fact that Ubuntu and Arch handle the python2/3 binary split differently, catkin_make[_isolated] will not work on its own. To use these commands, create the following aliases in your ~/.bashrc (or equivalent):
  . ~/.zshrc
+
alias catkin_make='catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so'
 +
  alias catkin_make_isolated='catkin_make_isolated -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so'
  
== Tutorials==
+
Without these lines, cmake will default to python 3, which you don't want. It is also possible to simply add the defines into any call of catkin_make[_isolated] (which you have to do if you want to call those commands within a script).
  
Now, to test your installation, please proceed to the [http://www.ros.org/wiki/ROS/Tutorials ROS Tutorials].
+
For further information on how to use ROS, see the [http://www.ros.org/wiki/ROS/Tutorials ROS Tutorials].

Revision as of 17:50, 27 May 2013

ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.

Setup Notes - Groovy

Currently, groovy is the only (semi-)supported ROS release that has Arch packages. The core, comm, and robot variants have meta-packages that should install all the necessary packages: ros-groovy-rosAUR, ros-groovy-ros-commAUR, (TODO: robot metapackage). In addition, ros-groovy-rvizAUR (along with its dependencies) has a package. Beware, the dependency tree goes at least five levels deep at times. yaourtAUR handles it (somewhat), packerAUR falls flat. It is strongly recommended that you install ros-groovy-rosAUR first to prevent yaourt's ridiculous dependency thrashing.

The packages are all available in the maintainer's github: arch-ros-stacks. Not all packages there are in a working state, so use with caution. Please, report any issues with the packages on their respective AUR pages.

Usage Notes - Groovy

Due to the fact that Ubuntu and Arch handle the python2/3 binary split differently, catkin_make[_isolated] will not work on its own. To use these commands, create the following aliases in your ~/.bashrc (or equivalent):

alias catkin_make='catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so'
alias catkin_make_isolated='catkin_make_isolated -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so'

Without these lines, cmake will default to python 3, which you don't want. It is also possible to simply add the defines into any call of catkin_make[_isolated] (which you have to do if you want to call those commands within a script).

For further information on how to use ROS, see the ROS Tutorials.