I will be using ROS Kinetic with Ubuntu 16.04, but you should be able to use Indigo and 14.04 by following these alternate instructions.
Given a fresh install of Ubuntu 16.04 (update and upgrade), perform the following steps.
Install ROS Kinetic
Follow this tutorial (make sure to complete the steps for ros-kinetic-desktop-full).
Install Additional ROS Packages
These packages are needed for the Neato simulator (which is based on the Turtlebot simulator)
$ sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs
Install gstreamer
We are using the gstreamer package for low-latency video streaming.
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-* gstreamer1.0-libav* gstreamer1.0-plugins*
Due to some issues with Olin's firewall, we will need to go through some contortions to allow video streaming from the robot to a computer connected to the ethernet (note: I have yet to successfully get the current version of the CompRobo Neato to work when plugged into the Ethernet, please use the OLIN-ROBOTICS Wifi network instead).
$ sudo apt-get install hping3
$ sudo setcap cap_net_raw+ep /usr/sbin/hping3
Setup your Catkin Workspace
For more context on what is going on here, see this ROS tutorial.
$ source /opt/ros/kinetic/setup.bash
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace
$ cd ..
$ catkin_make
Edit your ~/.bashrc file so that the following line appears last in that file:
$ source ~/catkin_ws/devel/setup.bash
You must perform the rest of the setup in a new terminal window. To make sure you have done the previous steps correct, type roscd
. You should be in the directory ~/catkin_ws/devel
if you did the previous steps correctly.
Setup Your CompRobo GitHub Repository
First create a fork of the base CompRobo repository. If you don't know how to create a fork of a repository, check out the relevant GitHub documentation here.
Next, clone your forked repository inside your catkin workspace. You will also be performing the step of adding my CompRobo repository as a remote. Finally, you will clone another ROS package (teleop_twist_keyboard
) that we will use to control the Neato.
$ cd ~/catkin_ws/src
$ sudo apt-get install git subversion libv4l-dev
$ git clone https://github.com/your-user-name-here/comprobo17.git
$ cd comprobo17
$ git remote add upstream https://github.com/paulruvolo/comprobo17.git
$ cd ..
$ git clone https://github.com/ros-teleop/teleop_twist_keyboard.git
$ cd ..
$ catkin_make
If catkin_make
exits with no error messages, then your laptop is ready to use with the Neatos!
Additional Instructions for Virtual Machines
In order to use the video streaming, you should change the network settings on your virtual machine to "Bridged". When setting up bridged mode you have to indicate what host interface (Wifi, Ethernet, Thunderbolt Ethernet, etc.) you want to bridge. Pick the appropriate interface, and everything should work.