Robotics Class 2011

From HacDC Wiki

This is the class page for the summer of 2011 Robotics Class at There is a HacDC robotics mailing list.

Hacdc robotics 2011 floating faces.png

Course prerequisites:

Basic knowledge of python programming

Basic linux knowledge (operating from the unix command line). Ubuntu 10.04 LTS will be used for this class.

A native Electric ROS installation on your computer.

VirtualBox note: It appears that trying to use the gazebo simulator with VirtualBox is problematic. For this reason we suggest that if you are trying to do the homeworks on your own that you use a native installation of Ubuntu on your machine. There are numerous ways of installing Ubuntu, including onto a separate partition, or even on an external USB disk.


The class is now over, but the homeworks are freely viewable and should be self explanatory.

Course syllabus:

Class 1 (June 4, 2011 10:30am - 12:30pm) Introduction to ROS and the robot we will be using for the class. Assignment will involve interpreting robot sensor state and developing a robot "mood metric". More information regarding Assignment 1 "Endowing a robot with emotions"

Class 2 (June 18, 2011 10:30am - 12:30pm) Introduction to computer vision and face detection using vision_opencv. Assignment will involve processing image data and using the OpenCV toolkit to do face detection (the routine is already provided in OpenCV). More information regarding Assignment 2 "Detecting Faces"

Class 3 (July 2, 2011 10:30am - 12:30pm) Introduction to moving the robot base. The assignment will continue the face detection of the previous class, we will move the robot to track a face, both rotating the base to keep a constant face position, and moving the base forward and backward to keep a constant face scale. More information regarding Assignment 3 "Tracking CLUs on the Grid"

Class 4 (July 16, 2011 10:30am - 12:30pm) Using the smach executive to write robot state machines. Assignment will involve writing a state machine that allows the robot to navigate through the secret HacDC warehouse and investigate the recent claims of paranormal activity. More information regarding Assignment 4 "Paranormal Activities in the HacDC Antiquities Warehouse"

Class 5 (August 6, 2011 10:30am - 12:30pm) Field Trip! Members of the 2011 HacDC robotics class went to visit Dr. Evan Drumwright and the PR2 at GWU.


Class 6 (August 20, 2011 10:30am - 12:30pm) Introduction to point clouds. Visualizing 3D point cloud data using rviz. Using tf to transform point clouds into the robot base frame. Also, we'll have open question time where questions can be asked on any previous homework assignments and questions about how the homeworks were set up, for example the robot description for the simulation. Anything goes!

Course Links:

The iRobot Open Interface Document will be useful for the class: iRobot Create Manuals

The HacDC ROS repository will also be useful: HacDC ROS Repository

An excellent article on PID control: T. Wescott, "PID Without a PhD"

An excellent book on planning algorithms: S. LaValle, Planning Algorithms

A standard text on probabilistic robotics: S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics