Difference between revisions of "Ros"

From ArchWiki
Jump to: navigation, search
(Clarified that current instructions are fuerte-only)
(Added bash alias for catkin_make.)
 
(27 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 
[[Category:Mathematics and science]]
 
[[Category:Mathematics and science]]
 +
[[ja:Ros]]
 +
{{Accuracy|Links to questionable, outdated third-party resource for installation instructions (yaourt, pacman -Sy, etc.)}}
 
[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.
  
With the ROS Fuerte release, it is much easier to get ROS running on an Arch system but still takes some effort. Read the notes below and then go to [http://www.ros.org/wiki/fuerte/Installation/Arch the installation page on the ROS website]
+
== Installation Instructions ==
  
== Setup Notes - Fuerte ==
+
=== Kinetic ===
  
With Fuerte, ROS is split into two levels. The core libraries are installed into the system folders ({{ic|/opt/ros/fuerte}}) while the higher-level stacks and packages are installed in the user folders.
+
Kinetic packages on the AUR are a work in progress. There are [https://github.com/bchretien/arch-ros-stacks/issues/57#issuecomment-228612399 some issues regarding opencv3] that have not been fully resolved yet. That said, installing a metapackage such as {{AUR|ros-kinetic-ros-core}} or {{AUR|ros-kinetic-robot}} should bring in all required dependencies. Beware of AUR helpers, some cannot navigate the highly complex dependency trees that ROS generates.
  
The Arch-specific install page lists the packages (official and AUR) that you will need to install for a full setup.
+
Packages are being added on an as-needed basis. Please send package requests to <aur AT seangreenslade DOT com>, and post any issues with the current packages in their respective AUR comments section.
  
{{AUR|ros-core}}, available in the [[AUR]], is the package for the core libraries.
+
Note that catkin uses python2, and therefore catkin_make may fail unless it it explicitly pointed to the python2 install. To do so, add the following alias to your .bashrc (or equivalent):
  
To build the higher level packages you will need to do some work:
+
alias catkin_make="catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so"
  
# Install [[AUR]] packages: {{AUR|ros-on-arch}} {{AUR|pcl-ros}} {{AUR|swig-wx}} {{AUR|qhull-ros}}
+
=== Jade ===
# Pull the sources with {{ic|rosinstall}}
+
 
# Patch the sources to compile with GCC 4.7 [https://code.ros.org/trac/ros-pkg/attachment/ticket/5417/ros.patch]
+
For ROS Jade, see [http://wiki.ros.org/jade/Installation/Arch Installation Instructions for jade in Arch Linux].
# Resolve dependencies with {{ic|rosdep}}
+
 
# Build with {{ic|rosmake}}
+
{{Note|
 +
If using gcc in version 6.x or above, log4cxx 0.10 (one of dependencies) will not build. Use SVN version ({{AUR|log4cxx-svn}} in aur) until 0.11 is released.}}
 +
 
 +
=== Indigo ===
 +
 
 +
For ROS Indigo, see [http://wiki.ros.org/indigo/Installation/Arch Installation Instructions for Indigo in Arch Linux].
 +
 
 +
== Rebuild when Boost is updated ==
 +
 
 +
When you update a library that ROS depends on, e.g. Boost, then you need to rebuild all the packages that link to it. You can determine which ROS packages depend on Boost with a command similar to the one below.
 +
 
 +
export LANG=C;pacman -Qi boost | grep "Required By" | tr " " "\n" | grep -e "^ros"

Latest revision as of 04:24, 23 December 2016

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Links to questionable, outdated third-party resource for installation instructions (yaourt, pacman -Sy, etc.) (Discuss in Talk:Ros#)

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.

Installation Instructions

Kinetic

Kinetic packages on the AUR are a work in progress. There are some issues regarding opencv3 that have not been fully resolved yet. That said, installing a metapackage such as ros-kinetic-ros-coreAUR or ros-kinetic-robotAUR should bring in all required dependencies. Beware of AUR helpers, some cannot navigate the highly complex dependency trees that ROS generates.

Packages are being added on an as-needed basis. Please send package requests to <aur AT seangreenslade DOT com>, and post any issues with the current packages in their respective AUR comments section.

Note that catkin uses python2, and therefore catkin_make may fail unless it it explicitly pointed to the python2 install. To do so, add the following alias to 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"

Jade

For ROS Jade, see Installation Instructions for jade in Arch Linux.

Note: If using gcc in version 6.x or above, log4cxx 0.10 (one of dependencies) will not build. Use SVN version (log4cxx-svnAUR in aur) until 0.11 is released.

Indigo

For ROS Indigo, see Installation Instructions for Indigo in Arch Linux.

Rebuild when Boost is updated

When you update a library that ROS depends on, e.g. Boost, then you need to rebuild all the packages that link to it. You can determine which ROS packages depend on Boost with a command similar to the one below.

export LANG=C;pacman -Qi boost | grep "Required By" | tr " " "\n" | grep -e "^ros"