My favorite class so far at USC has been CSCI 445. The class is a general introduction to robots and teaching students a broad range of topics from robot kinematics to robot learning. Bust the best part of the class was the final project. The final project asks each group of students to create a robot that can navigate an environment and physically interact with the objects inside – all autonomously.
The first challenge was creating a robot with the required sensors and manipulators for the task. Each group was handed a Gumstix-based controller board with a USB webcam and a simple 2D compass. We build the robot structure was built from miscellaneous Lego parts including a craw which could grab on to objects. The second challenge was building code interfaces to interpret all of the I/O devices. For example, a custom blob segmentation algorithm had to be created in order to distinguish between objects in the environment and determine each object’s position.
My favorite part of the project was creating a particle filter to localize the robot in the environment. Odometry was estimated from motor commands and a one dimensional sonar was rotated around on a servo. Both of these information sources were compared against a known map to localize the robot. The video below shows an early run of the robot which was mostly successful.The full report from our group is linked to in the downloads section for more information.