Show EOL distros:
Installing on Debian from SVN
Install from SVN requires that you download and compile the source code on your own.
Installation
Setup
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools
If compilation bails out with the error
Failed to find rosdep boost for package rosout on OS:debian version:squeeze
install these packages, too:
liblog4cxx10-dev python-wxgtk2.8 doxygen python-epydoc graphviz libapr1-dev libwxgtk2.8-dev libaprutil1-dev python-paramiko libboost-dev libboost-thread-dev libboost-regex-dev libboost-signals-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev
The error might still be thrown, but ros ("ROS-only") builds fine.
[ rosmake ] Built 73 packages with 0 failures.
For the "Base Install" you additionally need package mercurial, otherwise you get
ERROR: woah, unknown installation method hg not installed, cannot create a hg vcs client
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 -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
source $ROS_ROOT/tools/rosbash/roszsh
before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with
echo "source ~/ros/setup.zsh" >> ~/.zshrc . ~/.zshrc
Installing on Debian from SVN
Install from SVN requires that you download and compile the source code on your own. The main supported version of Debian is "Squeeze", but it is possible that other one are working. If you plan to use a newer version like "Wheezy" or "Sid", please see the bottom paragraph.
Contents
Installation
Setup
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial
It is possible that you need to add "contrib" to your /etc/apt/sources.list for some packages.
Locales
New in Diamondback
Currently, they is a known issue with locales on Diamondback : https://code.ros.org/trac/ros/ticket/3305
A workaround is possible if you do not have US locales :
LANG=en_US.utf-8
It will provoke svn warnings during checkout that you may ignore. Here is an example :
svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct
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 -U rosinstall
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=desktop&overlay=no"
ROS-Full: ROS package, build, communication, and graphical tools.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-full&overlay=no"
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-base&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.
Please reference REP 108 for description of other available configurations.
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
source $ROS_ROOT/tools/rosbash/roszsh
before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with
echo "source ~/ros/setup.zsh" >> ~/.zshrc . ~/.zshrc
Installation on newer versions
If you are using a "Wheezy" or "Sid" version you may have to overwrite the rosinstall OS version detection, with luck it will work as in "Squeeze". Please add this to your environment variables before installing :
export ROS_OS_OVERRIDE=debian:squeeze
If this is not enough, you will have to customize your rosdep.yaml files. Please read http://www.ros.org/wiki/rosdep/rosdep.yaml#Overriding_Mapping_File
Compilation failure
Since "Wheezy" and "Sid" include packages for gcc-4.6 and g++-4.6, you may find that your compilation fails if you have these versions of the compilers installed. To remedy this and successfully compile, you can add these environment variables to your session (or shell defaults, such as in ~/.bashrc).
export CC=gcc-4.5 export CXX=g++-4.5
Installing on Debian from SVN
Install from SVN requires that you download and compile the source code on your own. The main supported version of Debian is "Squeeze", but it is possible that other one are working. If you plan to use a newer version like "Wheezy" or "Sid", please see the bottom paragraph.
Contents
Installation
Setup
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial git-core python-pip sudo pip install -U pip sudo pip install -U rospkg
Depending on the configuration you choosed, it is possible that you need to add "contrib" to your /etc/apt/sources.list for some packages. Especially for nvidia-cg-toolkit. Don't forget to do an "apt-get update" after this change to search for the new packages !
Locales
Currently, there is a known issue with locales on Electric : https://code.ros.org/trac/ros/ticket/3305
A workaround is possible if you do not have US locales :
LANG=en_US.utf-8
It will provoke svn warnings during checkout that you may ignore. Here is an example :
svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct
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 using pip (advanced options for pip):
sudo pip install -U rosinstall vcstools
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop&overlay=no"
ROS-Full: ROS package, build, communication, and graphical tools.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-full&overlay=no"
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-base&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.
Please reference REP 113 for description of other available configurations.
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
source $ROS_ROOT/tools/rosbash/roszsh
before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with
echo "source ~/ros/setup.zsh" >> ~/.zshrc . ~/.zshrc
Managing failed rosdeps
Since Debian is not officially supported it often happens that rosdep packages are not up to date. In general copy/pasting the ubuntu packages is correct (please submit patches to ROS stacks owner so they can update their code).
In some rare case it is not so simple. Here is a list of some customization you have to do to make it working :
Opencv
The opencv-2.3 package is not available on squeeze. The quicker solution is to get libcv-dev. The best solution would be to add a source tarball install in the rosdep.yaml...
=== Yaml-dev ===
Justadd to simulator_gazebo/rosdep.yaml :
- debian: libyaml-dev
Installation on newer versions
If you are using a "Wheezy" or "Sid" version you may have to overwrite the rosinstall OS version detection, with luck it will work as in "Squeeze". Please add this to your environment variables before installing :
export ROS_OS_OVERRIDE=debian:squeeze
If this is not enough, you will have to customize your rosdep.yaml files. Please read http://www.ros.org/wiki/rosdep/rosdep.yaml#Overriding_Mapping_File
Compilation failure
Since "Wheezy" and "Sid" include packages for gcc-4.6 and g++-4.6, you may find that your compilation fails if you have these versions of the compilers installed. To remedy this and successfully compile, you can add these environment variables to your session (or shell defaults, such as in ~/.bashrc).
export CC=gcc-4.5 export CXX=g++-4.5
Installing on Debian from SVN
Install from SVN requires that you download and compile the source code on your own. The main supported version of Debian is version 6, "Squeeze", but it is possible that later versions are working. If you plan to use a newer version like "Wheezy" (version 7) or "Sid" (unstable), please see the bottom paragraph.
Contents
Installation
Setup
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial
Depending on the configuration you choosed, it is possible that you need to add "contrib" to your /etc/apt/sources.list for some packages. Especially for nvidia-cg-toolkit. Don't forget to do an "apt-get update" after this change to search for the new packages !
Install bootstrap dependencies:
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial git-core
Install core library dependencies (aka, 'ROS Base'):
sudo apt-get install python-yaml libapr1-dev libaprutil1-dev libbz2-dev python-dev libgtest-dev python-paramiko libboost-all-dev liblog4cxx10-dev pkg-config python-empy swig
The Python "nose" package version 1.0 or later is required. If you are using Debian 6 (squeeze) or earlier, use pip to install it:
sudo apt-get install python-pip sudo pip install nose
Otherwise, if you are using Debian 7 (wheezy) or later, use the Debian package:
sudo apt-get install python-nose
Next, install graphical library dependencies, if you plan on using ROS graphical tools (aka 'ROS Full'):
sudo apt-get install python-wxgtk2.8 python-gtk2 python-matplotlib libwxgtk2.8-dev python-imaging libqt4-dev graphviz qt4-qmake python-numpy
Next, you must build swig-wx from source if you wish to use the graphical tools in ROS in this installation. swig-wx requires bison and the GNU autotools to build.
sudo apt-get install bison++ automake autoconf git clone https://github.com/ros/swig-wx.git cd swig-wx ./autogen.sh && ./configure && make && sudo make install
Locales
Currently, there is a known issue with Fuerte's svn scripts if you do not have US-english locales : https://code.ros.org/trac/ros/ticket/3305
A workaround is possible if you do not have US locales :
LANG=en_US.utf-8
It will provoke svn warnings during checkout that you may ignore. Here is an example :
svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct
rosinstall
The following steps requires two separate installation steps and will compile ROS-related code into two separate places/layers:
Download and install the underlying core ROS libraries and tools into /opt/ros/fuerte.
Download and build some higher-level ROS libraries using rosmake in ~/ros.
The compiled code from (1) is installed into /opt/ros/fuerte. While it is possible to install elsewhere (e.g. /usr), this is not well tested and you will encounter various problems along the way (e.g. having to change rosinstall files, having to manually install system dependencies, etc...). Please see REP 122: Filesystem Hiearchy Layout for more detailed documentation on how the installed files are placed.
The compiled code from (2) is simply built using rosmake, which is familiar to users of previous versions of ROS. The higher-level ROS stacks are download and build in subdirectories inside the ~/ros directory.
First install rosinstall, rospkg and rosdep as described in their instructions:
If you have trouble using rosws/rosinstall, you can manually download the projects by investigating the respective rosinstall file.
Layer 1: Install core libraries
The following instructions will create a system install of the core ROS libraries and tools. The installation is done using standard CMake/make tools, so experts can adjust to their liking.
ROS-Full: ROS package, build, communication, tutorials and graphical tools.
rosinstall --catkin ~/ros-underlay http://ros.org/rosinstalls/fuerte-ros-full.rosinstall
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall --catkin ~/ros-underlay http://ros.org/rosinstalls/fuerte-ros-base.rosinstall
For people having trouble with rosinstall or catkin on their particular OS: If you have downloaded the source files in a different way, you need to run catkin_init_workspace ~/ros-underlay. This script is part of catkin, which should by now also at least be in your workspace, you can use the script without installing catkin. It should create a suitable global CMakeLists.txt to use in the next step.
If you do not want to use catkin, follow standard cmake procedure for building cmake packages, and install the packages in the dependency order by manually checking the package.xml declarations.
Build and install the underlay into /opt/ros/fuerte:
cd ~/ros-underlay mkdir build cd build
Now, run cmake. The invocation depends on the platform you are on:
- Debian-based platforms (e.g. Ubuntu, Mint) use:
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte
Other platforms use:cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte -DSETUPTOOLS_DEB_LAYOUT=OFF
Finally, build + install the code:
make -j8 sudo make install
Useful TIP: If you encounter problems with the make command due to "Unable to find 'swig.swg'" and "Unable to find 'python.swg'" errors then it probably due to the installation script having placed /swig at the toplevel/root directory.
To get around this problem do the following (and then restart make process as above)
cd / sudo cp -r /swig /usr/local/share cd ~/ros-underlay/build
Useful TIP: If you are having trouble with the make install command due to lib64 and lib problems, a work around is
cd /opt/ros/fuerte/ sudo mv lib/* lib64/ sudo rmdir lib sudo ln -s lib64 lib
This makes the lib and the lib64 directory linked together and the make install command should work now.
Verify the installed environment:
. /opt/ros/fuerte/setup.sh which roscore
You should see:
/opt/ros/fuerte/bin/roscore
You can delete ~/ros-underlay now, if you wish. The ROS core libraries are now installed onto your system.
Layer 2: Higher-level robotics libraries and tools
Now it's time to create the second layer, which contains your main robotics libraries (e.g. navigation) as well as visualization tools like rviz. You will build this layer using rosmake, but it is not installed.
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
NOTE: The rosinstall installation files below assume that you've installed into /opt/ros/fuerte, so you will need to change them manually if you have a different install path.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=fuerte&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=fuerte&variant=desktop&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.
Please reference REP 113 for description of other available configurations.
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
You'll now need to update your environment. You can do this by typing:
source ~/ros/setup.zsh
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.zsh" >> ~/.zshrc . ~/.zshrc
Build Higher-level/tools (Layer 2)
First, initialize your rosdep. ROS Fuerte comes with rosdep 2. If you get a message that your default sources list exists, then don't worry as it means you've done this before.
sudo rosdep init rosdep update
Now, use rosdep 2 to install system dependencies. Many of the system dependencies will install into /opt/ros/fuerte and will not be usable if you have changed the installation prefix.
rosdep install -a
Useful TIP: to get rid of constant prompts of being sure with proceeding, you can use -y switch to tell the package manager to default 'Yes' while installing.
rosdep install -ay
Finally, build the ROS stacks using rosmake.
rosmake -a
Installation on newer versions
If you are using a "Wheezy" or "Sid" version you may have to overwrite the rosinstall OS version detection, with luck it will work as in "Squeeze". Please add this to your environment variables before installing :
export ROS_OS_OVERRIDE=debian:squeeze
If this is not enough, you will have to customize your rosdep.yaml files. Please read http://www.ros.org/wiki/rosdep/rosdep.yaml#Overriding_Mapping_File
Compilation failure
Since "Wheezy" and "Sid" include packages for gcc-4.6 and g++-4.6, you may find that your compilation fails if you have these versions of the compilers installed. To remedy this and successfully compile, you can add these environment variables to your session (or shell defaults, such as in ~/.bashrc).
export CC=gcc-4.5 export CXX=g++-4.5
Work in progress Not yet completed. A quick answer is here: http://answers.ros.org/question/51953/debian-source-install-groovy/
Debian Testing install of ROS Groovy
The following HOW-TO was tested only on Debian Testing (Jessie), as of August 2013. If you want to improve this how-to, feel free to edit this page.
As binary packages are not provided for Debian, you need to download and compile the source code of most packages on your own.
Contents
Prerequisites
There are two ways to install the core ROS packages: using apt-get, as explained by this guide, or pip. Remember that you can't use both pip and apt-get, because packages are in conflict. If you have already installed some package from pip and you want to follow this guide, be sure to correctly uninstall all previous version of the installed packages
Configure your Debian repositories
Setup your computer to accept software from packages.ros.org:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu wheezy main" > /etc/apt/sources.list.d/ros-latest.list'
Set up your keys:
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
Installation
First of all, make sure your Debian package index is up to date:
$ sudo apt-get update
Then, install the bootstrap dependencies and checkinstall:
$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool build-essential checkinstall
Installation
Building the catkin Packages
ROS is in the process of converting itself to a new build system, called catkin. At this moment, not all of the packages have been converted to the new system, and the two build systems cannot be used simultaneously. Therefore it is necessary to build the core ROS packages first (catkin packages) and then the rest.
Create a catkin Workspace
In order to build the core packages, you will need a catkin workspace. Create one now:
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
Next we will want to fetch the core packages so we can build them. We will use wstool for this. Select the wstool command for the particular variant you want to install:
Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
$ rosinstall_generator desktop-full --rosdistro groovy --deps --wet-only > groovy-desktop-full-wet.rosinstall $ wstool init -j8 src groovy-desktop-full-wet.rosinstall
Desktop Install (recommended): ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro groovy --deps --wet-only > groovy-desktop-wet.rosinstall $ wstool init -j8 src groovy-desktop-wet.rosinstall
ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
$ rosinstall_generator ros_comm --rosdistro groovy --deps --wet-only > groovy-ros_comm-wet.rosinstall $ wstool init -j8 src groovy-ros_comm-wet.rosinstall
This will add all of the catkin or wet packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel.
Resolving Dependencies
Before you can build your catkin workspace you need to make sure that you have all the required dependencies. We will use the rosdep tool and checkinstall for this.
Install Collada Dom
collada-dom-dev is a required dependency which is unfortunately not part of the Debian repositories. You should install it by yourself. We suggest to use the checkinstall tool to make it easy and clean to uninstall the package later.
download the collada-dom compressed file (tarball) from the official website
extract it in a folder ($COLLADA_FOLDER)
- issue the following command from a terminal:
cd $COLLADA_FOLDER; cmake .; make; sudo checkinstall make install
When check install runs you may need to update the package name from "collada-dom" to "collada-dom-dev" otherwise the rosdep install may fail to find it.
Run rosdep
Now, we can run rosdep to download and install all the others dependencies:
$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y -r
The only difference with the Ubuntu source installation is the -r parameter, that allows rosdep to continue his work despite errors. This is needed as rosdep can fail to detect some correctly installed deb due to differences in the names: we need to ignore those errors and continue the installation.
Building the catkin Workspace
Once it has completed downloading the packages and resolving the dependencies you are ready to build the catkin packages. We will use the catkin_make_isolated command because there are both catkin and plain cmake packages in the base install, when developing on your catkin only workspaces you should use catkin/commands/catkin_make.
Invoke catkin_make_isolated:
To install it in /opt/ros/groovy
$ ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/groovy
if you install in /opt/ros/groovy, remember that you must have permission to write files in that folder.
To install it in the install_isolated folder, inside the catkin workspace:
$ ./src/catkin/bin/catkin_make_isolated --install
Now source the setup.bash file in your installation directory to setup your envirorment. You can run one of the following commands:
if you have installed ROS in /opt/ros/groovy
$ echo "source /opt/ros/groovy/setup.bash" >> ~/.bashrc
if you have installed ROS in install_isolated folder:
$ echo "source ~/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
Known Issues
There may be some issues when compiling some ROS packages, for which some workaround is here provided. Some of them are a bit quick and dirty: if you have more elegant solutions, feel free to update this page.
qt_gui_cpp doesn't find ShibokenConfig-python3.2.cmake. For debian amd64 installation just run:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/cmake/Shiboken-1.1.2/ShibokenConfig.cpython-33m.cmake /usr/lib/x86_64-linux-gnu/cmake/Shiboken-1.1.2/ShibokenConfig-python3.2.cmake
qt_gui_cpp compilation stops for a missing shared library "libpython3.3m.so". For debian amd64 installation just run:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpython3.3m.so.1 /usr/lib/x86_64-linux-gnu/libpython3.3m.so
rosbag doesn't compile. Simply edit the line reported in the compiler error in the rosbag sources, removing the constant namespace qualifier (in this case boost: )
Build the rosbuild Packages
Now that you have the catkin ROS packages built and sourced, you can build any of the packages and stacks using the rosbuild build system. See the paragraph on the Ubuntu installation tutorial for this.
Hydro Full Install on Debian from source
There are no precompiled binaries of ROS for Debian, while it seems that most of the dependencies are being pulled into the main repositories there are still some missing so compiling requires that the dependencies be made from source as well. This tutorial goes through an example of doing this for a machine running Debian Wheezy.
Configure your Debian repositories Setup your computer to accept software from packages.ros.org:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu wheezy main" > /etc/apt/sources.list.d/ros-latest.list'
Set up your keys:
wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
Refresh:
sudo apt-get update
Prerequisites
Install bootstrap dependencies :
sudo apt-get install python-rosdep python-rosinstall-generator python-wstool build-essential
Next ensure rosdep has been initialized:
sudo rosdep init rosdep update
Create a catkin Workspace
In order to build the core packages, you will need a catkin work-space. Create one now:
mkdir ~/ros_catkin_ws cd ~/ros_catkin_ws
Next we will want to fetch the core packages so we can build them. We will use wstool for this. Select the wstool command for the particular variant you want to install: Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall_generator desktop_full --rosdistro hydro --deps --wet-only > hydro-desktop-full-wet.rosinstall wstool init -j8 src hydro-desktop-full-wet.rosinstall
This will add all of the catkin or wet packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel. The time out is fairly quick, so if you have download cuts out restart it with the following
wstool update -j 4 -t src
Resolving Dependencies
Before you can build your catkin work-space you need to make sure that you have all the required dependencies. We use the rosdep tool for this:
rosdep install --from-paths src --ignore-src --rosdistro hydro -y -r --os=debian:wheezy
This will look at all of the packages in the src directory and find all of the dependencies they have. Then it will recursively install the dependencies.
The --from-paths option indicates we want to install the dependencies for an entire directory of packages, in this case src.
The --ignore-src option indicates to rosdep that it shouldn't try to install any ROS packages in the src folder from the package manager, we don't need it to since we are building them ourselves.
The --rosdistro option is required because we don't have a ROS environment setup yet, so we have to indicate to rosdep what version of ROS we are building for.
The -y option indicates to rosdep that we don't want to be bothered by too many prompts from the package manager. After a while (and maybe some prompts for your password) rosdep will finish installing system dependencies and you can continue.
- The -r flag causes rosdep to ignore minor errors. This is necessary to get the base dependencies installed. After the packages following this section have been installed it would be a good idea to run this command again without the -r to see if there are any dependencies that you forgot or didn't have in your base system (i.e. packages different from what the author of this tutorial had installed).
The --os flag was necessary for the author because of differences in the way that the wheezy version of debian stores version information and what rosdep is expecting. If you are having trouble with any of the dependencies rosdep is supposed to get, make sure that you have the package name right by getting the rosdep base.yaml from this http://docs.ros.org/independent/api/rosdep/html/contributing_rules.html
Once all of the dependencies below are installed you should be able to run rosdep install excluding the -r option without errors by makeing sure all your dependencies are listed in the base.yaml.
Dependencies not available in the Debian Repositories
At the time this article was written (11/2013) the packages for the following libraries did not exist in the Debian stable repository. Collada and Point cloud needed to be downloaded from their respective developers and compiled. Bullet and Python kitchen are available in the testing/experimental repositories and directions are given to back-port them. Please update this tutorial by removing these steps if you notice that they become available in stable.
One place to do this is in a external folder in your catkin work-space. Also install checkinstall.
mkdir ~/ros_catkin_ws/external_src sudo apt-get install checkinstall
Experimental Dependencies
If you are running Debian wheezy instead of testing or unstable, you need to get some packages that are only available there. These packages in stable and testing/unstable are often not binary compatible so they need to be back-ported as in the following directions.
Get the unstable source in your apt repository lists.
sudo sh -c 'echo "deb-src http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list'
Add the wheezy-backports repository in your apt repository lists.
sudo sh -c 'echo "deb http://ftp.us.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list' sudo apt-get update
Installing python-kitchen
apt-get install python-kitchen
Installing Bullet
cd ~/ros_catkin_ws/external_src mkdir backports cd backports sudo apt-get build-dep libbullet-dev sudo apt-get -b source libbullet-dev sudo dpkg -i *.deb
Installing Point Cloud
Install the point cloud libraries from a PPA
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 19274DEF sudo echo "deb http://ppa.launchpad.net/v-launchpad-jochen-sprickerhof-de/pcl/ubuntu maverick main" >> /etc/apt/sources.list sudo apt-get update sudo apt-get install libpcl-all
Install Collada Dom
Download the collada-dom compressed file (tarball) from the official website.
cd ~/ros_catkin_ws/external_src mv ~/Downloads/collada-dom-2.4.0.tgz . tar -xzf collada-dom-2.4.0.tgz cd collada-dom-2.4.0 sudo apt-get install libxml2-dev cmake . make sudo checkinstall make install
When check-install asks for documentation you need to update the package name from "collada-dom" to "collada-dom-dev" otherwise the rosdep install wont find it.
Installing Gazebo
Player Dependency
Download: http://sourceforge.net/projects/playerstage
Implement this fix: http://sourceforge.net/mailarchive/forum.php?thread_name=From_noreply%40sourceforge.net_Sat_Jul_07_17%3A37%3A11_2012&forum_name=playerstage-developers (In our case, filepath is ~/ros_catkin_ws/external_src/player-3.0.2/server/drivers/shell/readlog.cc)
cd ~/ros_catkin_ws/external_src mv ~/Downloads/player-3.0.2.tar.gz . tar -xzf player-3.0.2.tar.gz #fix players libz bug cd player-3.0.2/ cmake . make sudo checkinstall make install
sdformat dependency
Download sdformat via Mercurial. So install Mercurial if you do not have it already:
sudo apt-get install mercurial
cd ~/ros_catkin_ws/external_src hg clone https://bitbucket.org/osrf/sdformat sdformat cd sdformat cmake . make sudo checkinstall make install
Build Gazebo
Install build dependencies:
sudo apt-get install build-essential libtinyxml-dev libtbb-dev libxml2-dev libqt4-dev pkg-config libprotoc-dev libfreeimage-dev libprotobuf-dev protobuf-compiler libboost-all-dev freeglut3-dev cmake libogre-dev libtar-dev libcurl4-openssl-dev libcegui-mk2-dev libopenal-dev
cd ~/ros_catkin_ws/external_src hg clone https://bitbucket.org/osrf/gazebo gazebo cd gazebo hg up gazebo_1.9 cmake . make sudo checkinstall make install
Building Ros
Finally run the build and install command. To install somewhere other than your home directory use the --install-space option.
cd ~/ros_catkin_ws ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release echo "source ~/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
Note: You might want to select a different CMake build type (e.g. RelWithDebInfo or Debug, see http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE).
Now you have to reboot.
Report a Bug
<<TracLink(REPO COMPONENT)>>
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Installing ROS Indigo on Debian Wheezy
Description: These are instructions to install Indigo on Debian Wheezy.Keywords: Debian, Setup, Indigo
Tutorial Level: BEGINNER
Introduction
This tutorial explains how to install ROS Indigo from source on Debian Wheezy. The instructions roughly follow the source installation on Raspbian OS (which is also Debian-based). However, a few dependencies need to be accounted spcifically for Debian Wheezy.
Prerequisites
These instructions assume that Debian (wheezy) is being used. The download page for current images of Debian Wheezy is https://www.debian.org/releases/stable/debian-installer/.
Setup ROS Repositories
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu wheezy main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Enable Wheezy backports repository
Backports are packages from testing or unstable versions od Debian ported back to the stable version to allow access to cutting-edge versions of software on an otherwise stable system.
$ sudo sh -c 'echo "deb http://http.debian.net/debian wheezy-backports main" > /etc/apt/sources.list.d/backports.list'
Now, make sure your Debian package index is up-to-date:
$ sudo apt-get update $ sudo apt-get upgrade
Install bootstrap dependencies
$ sudo apt-get install python-setuptools $ sudo easy_install pip $ sudo pip install -U rosdep rosinstall_generator wstool rosinstall
Initializing rosdep
$ sudo rosdep init $ rosdep update
Installation
Now we will download and build ROS Indigo.
Create a catkin Workspace
In order to build the core packages, you will need a catkin workspace. Create one now:
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
Next we will want to fetch the core packages so we can build them. We will use wstool for this. Select the wstool command for the particular variant you want to install:
ROS-Comm: (recommended) ROS package, build, and communication libraries. No GUI tools.
$ rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-ros_comm-wet.rosinstall $ wstool init -j8 src indigo-ros_comm-wet.rosinstall
Desktop: ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-desktop-wet.rosinstall $ wstool init -j8 src indigo-desktop-wet.rosinstall
This will add all of the catkin or wet packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel.
Note: The roslisp package is excluded in these generators because it is not tested. If it works for you, please edit this tutorial.
So far, only these two variants have been tested on Debian Wheezy in Indigo; however, more are defined in REP 131 such as robot, perception, etc. Just change the package path to the one you want, e.g., for robot do:
$ rosinstall_generator robot --rosdistro indigo --deps --wet-only --tar > indigo-robot-wet.rosinstall $ wstool init -j8 src indigo-robot-wet.rosinstall
Please feel free to update these instructions as you test more variants.
If wstool init fails or is interrupted, you can resume the download by running:
wstool update -j 4 -t src
Resolve Dependencies
Before you can build your catkin workspace you need to make sure that you have all the required dependencies. We use the rosdep tool for this, however, first, a couple of dependencies not available in the repositories must be manually built.
Dependencies not available in the Debian Wheezy branch
At the time this article was written (01/2015) several packages: libconsole-bridge-dev, liburdfdom-headers-dev, liburdfdom-dev, liblz4-dev, and collada-dom-dev are not in the Debian stable branch, and libopencv-dev and OGRE are old versions. The following are needed for each variant:
Needed for Ros_Comm: libconsole-bridge-dev and liblz4-dev
Needed for Desktop: libconsole-bridge-dev, liblz4-dev, liburdfdom-headers-dev, liburdfdom-dev, collada-dom-dev and OGRE and libopencv-dev
These packages can be built from source in a new directory (Also install checkinstall and cmake):
$ mkdir ~/ros_catkin_ws/external_src $ sudo apt-get install checkinstall cmake
libconsole-bridge-dev: Install with the following:
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get install libboost-system-dev libboost-thread-dev $ git clone https://github.com/ros/console_bridge.git $ cd console_bridge $ cmake . $ sudo checkinstall make install
- When check-install asks for any changes, the name (2) needs to change from "console-bridge" to "libconsole-bridge-dev" otherwise rosdep install wont find it. You can also skip generating documentation.
liburdfdom-headers-dev: Install with the following:
$ cd ~/ros_catkin_ws/external_src $ git clone https://github.com/ros/urdfdom_headers.git $ cd urdfdom_headers $ cmake . $ sudo checkinstall make install
- When check-install asks for any changes, the name (2) needs to change from "urdfdom-headers" to "liburdfdom-headers-dev" otherwise rosdep install wont find it.
liburdfdom-dev: Install with the following:
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get install libboost-test-dev libtinyxml-dev $ git clone https://github.com/ros/urdfdom.git $ cd urdfdom $ cmake . $ sudo checkinstall make install
- When check-install asks for any changes, the name (2) needs to change from "urdfdom" to "liburdfdom-dev" otherwise rosdep install wont find it.
collada-dom-dev: Install with the following (Note: You will also need to patch collada_urdf as described here):
$ cd ~/ros_catkin_ws/external_src $ sudo apt-get install libboost-filesystem-dev libxml2-dev $ wget http://downloads.sourceforge.net/project/collada-dom/Collada%20DOM/Collada%20DOM%202.4/collada-dom-2.4.0.tgz $ tar -xzf collada-dom-2.4.0.tgz $ cd collada-dom-2.4.0 $ cmake . $ sudo checkinstall make install
- When check-install asks for any changes, the name (2) needs to change from "collada-dom" to "collada-dom-dev" otherwise rosdep install wont find it.
libopencv-dev: Install with the following (be prepared it's gonna take more than an hour; based on http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html):
$ cd ~/ros_catkin_ws/external_src $ git clone https://github.com/Itseez/opencv.git $ mkdir opencv/release $ cd opencv/release $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. $ make $ sudo checkinstall make install
- When check-install asks for any changes, the name (2) needs to change from "release" to "libopencv-dev" otherwise rosdep install wont find it.
If you have some problems compiling the newest OpenCV, you can try to compile a release version by switching to the 2.4 branch. After git clone, type git checkout 2.4.
- Also, if there is an existing installation of OpenCV 2.3 on the system, you may have to first uninstall it to avoid compilation and installation problems.
liblz4-dev: Install using Wheezy backports:
$ sudo apt-get -t wheezy-backports install liblz4-dev
OGRE: Install newer version through apt-get
$ sudo apt-get remove libogre-1.7.* $ sudo apt-get install libogre-1.8-dev
Note: If you don't want to compile Collada but would like to install the desktop variant, use the following generator:
$ rosinstall_generator desktop --rosdistro indigo --deps --wet-only --exclude roslisp collada_parser collada_urdf --tar > indigo-desktop-wet.rosinstall
Resolving Dependencies with rosdep
The remaining dependencies should be resolved by running rosdep:
$ cd ~/ros_catkin_ws $ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy
This will look at all of the packages in the src directory and find all of the dependencies they have. Then it will recursively install the dependencies.
The --from-paths option indicates we want to install the dependencies for an entire directory of packages, in this case src. The --ignore-src option indicates to rosdep that it shouldn't try to install any ROS packages in the src folder from the package manager, we don't need it to since we are building them ourselves. The --rosdistro option is required because we don't have a ROS environment setup yet, so we have to indicate to rosdep what version of ROS we are building for. Finally, the -y option indicates to rosdep that we don't want to be bothered by too many prompts from the package manager.
After a while rosdep will finish installing system dependencies and you can continue.
Note: Rosdep and apt-get may report that python-rosdep, python-catkin-pkg, python-rospkg, and python-rosdistro failed to install; however, you can ignore this error because they have already been installed with pip.
Building the catkin Workspace
Once you have completed downloading the packages and have resolved the dependencies, you are ready to build the catkin packages.
Invoke catkin_make_isolated:
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
Note: This will install ROS in the equivalent file location to Ubuntu in /opt/ros/indigo however you can modify this as you wish.
Now ROS should be installed! Remember to source the new installation:
$ source /opt/ros/indigo/setup.bash
Maintaining a Source Checkout
Updating the workspace
See the Ubuntu source install instructions for steps on updating the ros_catkin_ws workspace. The same steps should apply to Debian Wheezy.
Adding released packages
You may add additional packages to the installed ros workspace that have been released into the ros ecosystem. First, a new rosinstall file must be created including the new packages (Note, this can also be done at the initial install). For example, if we have installed ros_comm, but want to add ros_control and joystick_drivers, the command would be:
$ cd ~/ros_catkin_ws $ rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-custom_ros.rosinstall
You may keep listing as many ROS packages as you'd like separated by spaces.
Next, update the workspace with wstool:
$ wstool merge -t src indigo-custom_ros.rosinstall $ wstool update -t src
After updating the workspace, you may want to run rosdep to install any new dependencies that are required:
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy
Finally, now that the workspace is up to date and dependencies are satisfied, rebuild the workspace:
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
References
Debian install of ROS Kinetic
We are building Debian packages for Debian Jessie. These packages are more efficient than source-based builds and are our preferred installation method for Debian. Note that there are also packages available from Debian upstream. Please see UpstreamPackages to understand the difference.
Debian packages are built for the following distros and architectures.
Distro |
amd64 |
i386 |
armhf |
arm64 |
Jessie |
X |
|
|
X |
Debian Jessie is End-of-Life and build farm support has been turned off.
You may still use these instructions to install the dependencies required to build from source, see source (download-and-compile) installation instructions.
If you rely on these packages, please support OSRF.
These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.
Contents
Installation
Configure your Debian repositories
Configure your Debian repositories to allow "contrib" and "non-free". You can follow the Debian guide for instructions on doing this.
Setup your sources.list
Setup your computer to accept software from packages.ros.org. ROS Kinetic ONLY supports Jessie (Debian 8) for debian packages.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Source Debs are also available |
Set up your keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Installation
First, make sure your Debian package index is up-to-date:
sudo apt-get update
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt-get install ros-kinetic-desktop-full
or click here
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
sudo apt-get install ros-kinetic-desktop
or click here
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
sudo apt-get install ros-kinetic-ros-base
or click here
Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):
sudo apt-get install ros-kinetic-PACKAGE
e.g.sudo apt-get install ros-kinetic-slam-gmapping
To find available packages, use:
apt-cache search ros-kinetic
Initialize rosdep
Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init rosdep update
Environment setup
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc
If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.
If you just want to change the environment of your current shell, instead of the above you can type:
source /opt/ros/kinetic/setup.bash
If you use zsh instead of bash you need to run the following commands to set up your shell:
echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc source ~/.zshrc
Dependencies for building packages
Up to now you have installed what you need to run the core ROS packages. To create and manage your own ROS workspaces, there are various tools and requirements that are distributed separately. For example, rosinstall is a frequently used command-line tool that enables you to easily download many source trees for ROS packages with one command.
To install this tool and other dependencies for building ROS packages, run:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
Initialize rosdep
Before you can use many ROS tools, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS. If you have not yet installed rosdep, do so as follows.
sudo apt install python-rosdep
With the following, you can initialize rosdep.
sudo rosdep init rosdep update
Build farm status
The packages that you installed were built by the ROS build farm. You can check the status of individual packages here.
Debian install of ROS Lunar
We are building Debian packages for Debian Stretch. These packages are more efficient than source-based builds and are our preferred installation method for Debian. Note that there are also packages available from Debian upstream. Please see UpstreamPackages to understand the difference.
Debian packages are built for the following distros and architectures.
Distro |
amd64 |
armhf |
arm64 |
Stretch |
X |
|
X |
If you need to install from source (not recommended), please see source (download-and-compile) installation instructions.
If you rely on these packages, please support OSRF.
These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.
Contents
Installation
Configure your Debian repositories
Configure your Debian repositories to allow "contrib" and "non-free". You can follow the Debian guide for instructions on doing this.
Setup your sources.list
Setup your computer to accept software from packages.ros.org. ROS Lunar ONLY supports Stretch (Debian 9) for debian packages.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Source Debs are also available |
Set up your keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Installation
First, make sure your Debian package index is up-to-date:
sudo apt-get update
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt-get install ros-lunar-desktop-full
or click here
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
sudo apt-get install ros-lunar-desktop
or click here
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
sudo apt-get install ros-lunar-ros-base
or click here
Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):
sudo apt-get install ros-lunar-PACKAGE
e.g.sudo apt-get install ros-lunar-slam-gmapping
To find available packages, use:
apt-cache search ros-lunar
Initialize rosdep
Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init rosdep update
Environment setup
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:
echo "source /opt/ros/lunar/setup.bash" >> ~/.bashrc source ~/.bashrc
If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.
If you just want to change the environment of your current shell, instead of the above you can type:
source /opt/ros/lunar/setup.bash
If you use zsh instead of bash you need to run the following commands to set up your shell:
echo "source /opt/ros/lunar/setup.zsh" >> ~/.zshrc source ~/.zshrc
Dependencies for building packages
Up to now you have installed what you need to run the core ROS packages. To create and manage your own ROS workspaces, there are various tools and requirements that are distributed separately. For example, rosinstall is a frequently used command-line tool that enables you to easily download many source trees for ROS packages with one command.
To install this tool and other dependencies for building ROS packages, run:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
Initialize rosdep
Before you can use many ROS tools, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS. If you have not yet installed rosdep, do so as follows.
sudo apt install python-rosdep
With the following, you can initialize rosdep.
sudo rosdep init rosdep update
Build farm status
The packages that you installed were built by the ROS build farm. You can check the status of individual packages here.
Debian install of ROS Melodic
We are building Debian packages for Debian Stretch. These packages are more efficient than source-based builds and are our preferred installation method for Debian. Note that there are also packages available from Debian upstream. Please see UpstreamPackages to understand the difference.
Debian packages are built for the following distros and architectures.
Distro |
amd64 |
armhf |
arm64 |
Stretch |
X |
|
X |
If you need to install from source (not recommended), please see source (download-and-compile) installation instructions.
If you rely on these packages, please support OSRF.
These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.
Contents
Installation
Configure your Debian repositories
Configure your Debian repositories to allow "contrib" and "non-free". You can follow the Debian guide for instructions on doing this.
Setup your sources.list
Setup your computer to accept software from packages.ros.org. ROS Melodic ONLY supports Stretch (Debian 9) for debian packages.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Source Debs are also available |
Set up your keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Installation
First, make sure your Debian package index is up-to-date:
sudo apt-get update
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt-get install ros-melodic-desktop-full
or click here
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
sudo apt-get install ros-melodic-desktop
or click here
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
sudo apt-get install ros-melodic-ros-base
or click here
Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):
sudo apt-get install ros-melodic-PACKAGE
e.g.sudo apt-get install ros-melodic-slam-gmapping
To find available packages, use:
apt-cache search ros-melodic
Initialize rosdep
Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init rosdep update
Environment setup
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.
If you just want to change the environment of your current shell, instead of the above you can type:
source /opt/ros/melodic/setup.bash
If you use zsh instead of bash you need to run the following commands to set up your shell:
echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc source ~/.zshrc
Dependencies for building packages
Up to now you have installed what you need to run the core ROS packages. To create and manage your own ROS workspaces, there are various tools and requirements that are distributed separately. For example, rosinstall is a frequently used command-line tool that enables you to easily download many source trees for ROS packages with one command.
To install this tool and other dependencies for building ROS packages, run:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
Initialize rosdep
Before you can use many ROS tools, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS. If you have not yet installed rosdep, do so as follows.
sudo apt install python-rosdep
With the following, you can initialize rosdep.
sudo rosdep init rosdep update
Build farm status
The packages that you installed were built by the ROS build farm. You can check the status of individual packages here.