Instructions for installing ROS Indigo and the ROS drivers for iRobot Create

  1. Download our script. This script can be used to install ROS and iRobot Create drivers.

    abhishek@abhishek-desktop:~$ wget www.cs.cornell.edu/~aa755/ROSCoq/rosInstall.sh

    It assumes that the iCreate device is commected to the computer at the port /dev/ttyUSB0 . On your machine, it might be /dev/ttyUSB1 or /dev/ttyUSB2 ... (especially if you have multiple USB devices connected). One way to find out is to see the difference between the output of ls /dev/ttyUSB* before and after connecting the iRobot Create via USB. If needed, replace the two occurrences of /dev/ttyUSB0 in the downloaded script.
  2. Now run the script. The script uses apt-get will prompt for permission to download packages. Make sure the robot is connected before executing the script, because it sets the appropriate permissions for the USB device.

    abhishek@abhishek-desktop:~$ bash -x rosInstall.sh

Testing the Robot setup

After the above and before installing the Shim, it is important to check that the robot, its drivers and ROS are working properly. This is a 3 step process
  1. Start roscore as follows:

    abhishek@abhishek-desktop:~$ source ~/.bashrc
    abhishek@abhishek-desktop:~$ roscore

    Wait a few seconds so that the output settles down.
  2. In a new terminal, start the ROS driver (node) representing the icreate robot:

    abhishek@abhishek-desktop:~$ roslaunch turtlebot_bringup minimal.launch

    Wait a few seconds so that the output settles down.
  3. In a new terminal, send a message to the above node to move forward at 0.1 metres per second.

    abhishek@abhishek-desktop:~$ rostopic pub -1 /cmd_vel_mux/input/navi geometry_msgs/Twist '[0.1, 0, 0]' '[0, 0, 0]'

    The robot will move only for a fraction of a second. In contrast to the old drivers where the robot keeps following the last command indefinately, the new drivers stops the robot if no new message was received within 100 milliseconds. So we have written our own driver which provides the old interface by repeatedly sending the last message at 10 Hz to the new driver. While running our Coq programs, we will use that driver instead, because our axiomatization is currently based on the old driver.