Ubuntu ARM install of ROS Indigo

There are currently builds of ROS for Ubuntu Trusty armhf. These builds include most but not all packages, and save a considerable amount of time compared to doing a full source-based installation.

Supported/Tested Platforms

If this install works for your platform, please list it here:


Configure your Ubuntu repositories

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Set your Locale

Boost and some of the ROS tools require that the system locale be set. You can set it with:


If there is a problem. Then try (other languages could be added):

  • $ export LANGUAGE=en_US.UTF-8
    $ export LANG=en_US.UTF-8
    $ export LC_ALL=en_US.UTF-8
    $ locale-gen en_US.UTF-8
    $ dpkg-reconfigure locales

Setup your sources.list

Setup your computer to accept software from the ARM mirror on packages.ros.org.

Due to limited resources, there are only active builds for Trusty armhf (14.04), since this is the stable, long-term Ubuntu release and is the most-requested distribution in conjunction with ROS Indigo.

  • Ubuntu 14.04 (Trusty armhf)

    • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

Set up your keys

  • sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116


First, make sure your Debian package index is up-to-date:

  • sudo apt-get update

There are many different libraries and tools in ROS - not all compile fully on ARM. You can also install ROS packages individually.

  • ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.

    • sudo apt-get install ros-indigo-ros-base

Add Individual Packages

  • You can install a specific ROS package (replace underscores with dashes of the package name):
    • sudo apt-get install ros-indigo-PACKAGE
      • e.g.
      sudo apt-get install ros-indigo-navigation

To find available packages, use:

apt-cache search ros-indigo

The Ubuntu ARM package status is available here

Install Sizes

Base Package

robot variant

desktop variant

407 MB

572 MB


Initialize rosdep

Before you can use ROS, you will need to install and 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 apt-get install python-rosdep
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/indigo/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, you can type:

source /opt/ros/indigo/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/indigo/setup.zsh" >> ~/.zshrc
source ~/.zshrc

Getting rosinstall

rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.

To install this tool on Ubuntu, run:

sudo apt-get install python-rosinstall

Verifying OS name

Make sure your OS name defined at /etc/lsb-release is as the following. Since ros does not recognize Linaro as an OS, this is necessary. The following is for Ubuntu 14.04, trusty. Modify the release number and name as per your target.


Build farm status

The packages that you installed were built by ROS build farm. You can check the status of individual packages here.


Now, to test your installation, please proceed to the ROS Tutorials.

Obtain source code of the installed packages

If you know the location of the repository of each package, you know you can obtain all the code there. But it's often hard even for experienced developers to reach the correct maintained repository of certain packages. Also, in some situations you just want to get the source of the released, installed version of a package. The methods described here the best for these cases.

  • In earlier days of ROS (supposedly electric or earlier) you can obtain by the way noted in this question.

  • Now just apt-get source (sudo not needed) as following. You don't even need to explicitly specify deb-src entry etc. This downloads from the server all the files in the released version of the package (i.e. things not installed in the installation rule (e.g. CMakeLists.txt) are also included).

    $ apt-get source ros-hydro-laser-pipeline
    Drawback might be that you have to specifify a single, exact package name (asterisk doesn't work).

Using RVIZ

It is not recommended to run rviz on most ARM-based CPUs. They're generally too slow, and the version of OpenGL that is provided by the software (mesa) libraries it not new enough to start rviz.

'IF' you have a powerful board with a GPU and vendor-supplied OpenGL libraries, it might be possible to run rviz. The IFC6410 and the NVidia Jetson TK1 are two such boards where rviz will run, although neither is fast enough for graphics-heavy tasks such as displaying pointclouds.

Note that rviz will segfault if you have the GTK_IM_MODULE environment variable set, so it's best to unset it in your ~/.bashrc:



Wiki: indigo/Installation/UbuntuARM (last edited 2016-03-29 20:45:06 by TullyFoote)