Tuesday, 11 December 2012

Learning ROS (Robot Operating System)

I am currently learning ROS (robot operating system) which is an open source system for autonomous robots.  It is a collection of device drivers, libraries, and programs designed to make sophisticated robotics accessible to anyone. 

ROS runs on Ubuntu Linux, so I downloaded the Ubuntu Windows installer which sets up a dual boot.  I originally downloaded Ubuntu 12.10 which, when I tried to install ROS it would not install. So I tried an old version of Ubuntu 10 it worked but was buggy as hell, so I eventually installed Ubuntu 12.04 LTS (Long term support) ROS installed and everything worked perfectly. 

It was a bit weird at first trying to learn ROS and Linux terminal commands but Linux was surprisingly straightforward. 

The ROS website has tutorials on how to install and set up your environment.  The ROS wiki has 20 beginner level tutorials which teach you how to use ROS. I had to do some of the tutorials a few times to get the hang of it, also to learn a bit about how Linux works on the command line. Adding this line "source /opt/ros/fuerte/setup.bash" to your ~/.bashrc helped me a lot i.e. "sudo gedit ~/.bashrc".

After doing a few of the beginner's tutorials I decided to try out some of the visualisation tools in ROS i.e. openni_launch with RVis. So I bought myself a Microsoft Kinect from Dick Smith.  It took a bit of fiddling but I got it working in a few hours.  The results were pretty awesome, the image below is the result, it is a combination image between the camera and the laser rangefinder on the Kinect. With this, ROS is able to build a map of the environment allowing the robot to navigate autonomously. 

I've only been playing with ROS for a week and a half  and I've made a lot of progress so far.  I'll let you all know how I go over the next few weeks.