Welcome to CMSC498F!

An introduction to the design and programming of robotics systems


This course offers an introduction to the design and programming of robotics systems. The course covers topics in the area of navigation using vision and 3D depth sensors, localization and map making, basic image processing for visual navigation and recognition, and vision and depth based grasping and manipulation. You will be developing algorithms, and learn how to use current state-of the art vision and software tools, such as OpenCV, MoveIt and the Point Cloud Library. The software components will be developed under the Robotic Operating System ( ROS).

The course will be organized around a few projects, starting with navigation in a map, then localization using the map, then finding objects, and finally a project of object manipulation. The software will first be developed in simulation, before testing it on the platform, where students will work in groups of three to four.

Programming environment and languages

As robot platform we will use the Turtlebot , the Phantom Pincher Robot Arm Kit, and the Baxter Robot. Software development will be under ROS/Linux, and programming in C++ and/or Python.


Students taking the class should be comfortable with linear algebra and calculus