Robot Operating System

ROS is an essential tool for robotics engineers to know and master. I’ve been learning it recently, so I’m sharing here my learning experience.

Installing ROS on your machine

Maybe it’s worth mentioning what hardware you need. For me,  I have Ubuntu 14.04 and ROS Indigo. For which, I needed as minimum 4 GB RAM and 20 GB of space on my disk.
Ubuntu> RAM: 1 GB (2 is better)  – Disk: 6 GB (8 is better)
ROS>       RAM: 4 GB (8 is better) – Disk: 7 GB

Firstly, you need to have a machine with Linux installed on it (you can have virtual machine if you prefer). I use Linux Ubuntu 14.04 (if you don’t already have, you may want to check this page here: If you are not familiar with Linux, you can familiarize yourself by following this course here: and if you don’t feel good with the terminal, you can check this website:

Note: to save yourself time and hassle with installing Linux whether you have BIOS or EFI machine, you may want to use Rufus to create the boot disk. I used to have a BIOS machine and when I got an EFI one, I had a lot of confusion with the installation process as many online tutorials suggest different things. However, with Rufus everything was pretty smooth. You can download it for free from here: (or just Google Rufus if the link is broken for any reason)

Now you’re ready to install ROS, there is a tutorial on ROS wiki here for installation: (I’m using ROS Indigo).

Briefly, to install ROS, you can type this in the terminal

sudo sh -c 'echo "deb $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp:// --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install ros-indigo-desktop-full
apt-cache search ros-indigo
sudo rosdep init
rosdep update
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall 

Now you’re ready to try out ROS. You can start your way up by following these tutorials here:

Here, I’m actually building upon these tutorials and the classwork I had in my ROS course in college.

  1. ROS Basics
  2. URDF
  3. Camera AR tag
  4. Sensor driver
  5. SLAM
  6. Motion Planning