Experiences Of Installing Ubuntu ROS and Gazebo on A Raspberry PI 2 (Updated July 2016)

I am writing these notes to summarise my experiences of installing Ubuntu on a Raspberry PI and getting ROS (the robot operating system) and Gazebo (the robot simulator) running mainly for the benefit of my AI and Robotics meetup group.

When I last tried I had not managed to get ROS running on a PI.  There is however a new ROS version out so I will need to try again.  The new version rather than require you to update the OS on your PI actually just supports Rasbian directly (See http://wiki.ros.org/ROSberryPi/Setting%20up%20ROS%20on%20RaspberryPi).

I have managed to install ROS on my laptop using the latest Ubuntu 16.04 LTS (LTS=Long Term Support) on my laptop and this time got both ROS and Gazebo to install.

The old instructions involved first installing Ubuntu 14.04.03  but Ubuntu updates about HTTPS security had caused this to break.  DO NOT USE Raspberry PI 2 Ubuntu install  http://wiki.ros.org/indigo/Installation/UbuntuARM. DO NOT USE http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi (although of course these links might get fixed at some point).  Historically I also got this same HTTPS problem when trying to install ROS on the PI with Raspbian and also on a laptop running 14.04.03 Ubuntu  The errors I saw are described on the web and had not been fixed for over a year.  Issue Details – I got the error rosdep init gives “Website may be down.” when I ran the command: sudo rosdep init.  I got a bit further by taking the following manual copy / setup step https://github.com/ros/rosdistro/issues/9721.  But I got a later problem described at:  http://answers.ros.org/question/234425/how-to-fix-error-when-running-rosdep-update.  You can avoid all these issues on a laptop at least by using the latest Ubuntu LTS and new ROS versions I described above.  BUT I had found that my working version of Eclipse / Papyrus on Ubuntu 14.04.03 had problems with the 16.04 LTS.  So I currently have both Ubuntu versions installed as a dual boot.  14.04.03 for Papyrus / UML development and 16.04 for running ROS / Gazebo.  Not very satisfactory but no doubt the issues will get fixed.

You could run NOOBS – the new out of the box OS installer or buy / make an SD Card for Raspbian. BUT you would get lot of extras that are designed to teach kids programming.  With the latest ROS updates I will be sticking with Raspbian for the time being.  Maybe someone can suggests tips for stripping out the OS to level just techie non-kiddie stuff.


Installing Ubuntu ROS And Gazebo (The  Robot Operating System and Simulator) On A Raspberry PI 2

(<- Learn some basic linux first ???  (I did a course years ago on unix when I used it professionally so did not bother).  Tips anyone ? – You could try http://www.ee.surrey.ac.uk/Teaching/Unix/)

Quick Tips
– I found I needed to reboot my home hub to get wireless + ethernet networking going.
– I have a blue tooth logitech keyboard with an integrared mouse pad that operates with my PI for about £30.
I tried a smaller cheaper game console like one but when it arrived it was broke.
You could spend about £10 on such a thing from amazon but the keys are tiny.
NOTE! Apparently not all USB keyboards work so check it out first or buy one that is for the PI (I got mine at Maplin)
– I got a PI wifi USB dongle of amazon for next to nothing.  It just plugs in and works.
– I got a 3.2 inch PI touch screen for the PI for £16 !  It works with Raspbian the NOOBS installed version but so far not the recomended Ubuntu install
I have followed some instructions but it has not worked.  I will be putting in a support request.
– Creating an SD Card with a new PI operating system on it https://www.raspberrypi.org/documentation/installation/installing-images/windows.md
– I missed a step during the install about resizing the second partition after reboot and I soon got an out of disk space error.  Be careful.
– I currently use an HDMI cable from my television to my PI to allow me to find out my PIs IP address but if my PI auto emailed me its IP address when it booted up I could simply connect to via my laptop using putty (teminal emulator software you can download) or VNC (to get a connection to a GUI running on the PI.  I initially chose to install kubuntu but later backed off on this as my laptop is old and Kubuntu was a bit slow.).

For a text editor I use to always use vi when I used unix before – it is always guaranteed to be available.  There is now something called nano (but do not forget to run it as sudo nano as unless you are in your default $Home folder you will not be able to save (cd $home  will return you to home if you strayed into /etc/network etc ).

Laptop Access https://www.raspberrypi.org/documentation/remote-access/vnc/

Networking ???
– ??? Go anywhere laptop integration with no screen?

  1. Auto email the PI IP address??  I looked at using WhatsApp but the ports this APP use were blocked in a local pub.
  2. Get support for two wireless network adapters on your laptop and get your PI to access the web over wirless to a fixed IP address on your laptop the access the web via the second wireless shared internet connection on your laptop.
  3. URL access using dynamic dns for remote internet access.  But you need to configure your wireless router to allow the dynamic IP address configuration through.  Which is not going to work in the pub ???

Implementing Autostart Commands ???

Further documentation – More news and comment Soon


Gazebo The Robot Simulator

I am not even yet sure it is a good idea to even put Gazebo on a PI so I have tried and succeeded getting it running on my laptop instead.  You can run Gazebo without ROS on Ubuntu 14.04.03

Also if you want to run the binaries on the PI only up to version 2 is possible yet version 7 is available if you build from source.  I failed to do this on my laptop when I last tried.  I think I will stick to running Gazebo on my ubuntu laptop instead of messing with it on my PI.  I am seeing the PI as a delivery target rather than a development environment.

Actually what I am really after is being able to understand the object models available from the world / object mapping implementations within ROS:


We have had a quite a few meetups on this topic knowledge modelling / understanding topic which I will have to write up.  More soon…