ZCM driver for iRobot Create 1 and 2 based on the ROS driver from AutonomyLab. This package wraps the C++ library libcreate, which uses iRobot's Open Interface Specification. This software is constructed according to the Pods software policies and templates (with the notable exception of
lcmtypes.cmake; this is replaced by a corresponding
zcmtypes.cmake which is identical to the former except for replacing all instances of
The programs were mainly designed as an alternative to the ROS driver for the RaspberryPi. Installing ROS on the Pi can be difficult and time consuming but the dependencies required for this repo are lightweight. However, these have been tested on a generic laptop connected to the robot, as well.
Besides the following documentation, please refer to the Wiki for supported robots, features, the main driver documentation, and other useful information.
Author: Sudhanva Sreesha (University of Michigan)
make. The project will be installed to
make BUILD_PREFIX=/usr/local as root.
The binaries will be compiled to
build/bin/. Here's an overview of the binaries:
./craebot-joystick: A node that publishes data from a generic Linux joystick to the
CRAEBOT_JOYSTICKchannel. Should typically be run on a base computer.
./craebot-teleop: A node that publishes teleop (linear and angular velocities) messages (to the
CRAEBOT_TELEOPchannel) by subscribing to the joystick channel. Should typically be run on a base computer.
./craebot-driver: The main driver that runs on the CPU connected to the robot. This mainly listens to the teleop, and other command messages, and controls the robot. It also publishes the various sensors' data at a certain frequency.
Each of the programs provide help text with a detailed description of the various command line arguments.
Docker's a great way to run the aforementioned binaries in isolated environments. Please refer to the wiki for more information on how to use Docker to develop, build, and run the codebase.