Brown University Robotics:Cs148 Course Development Book
From Brown University Robotics
Teaching Autonomous Robotics using Player and ROS
CS148: Building Intelligent Robots is an introduction to fundamental topics in autonomous robot control. This course focuses on the development of "brains" for robots. That is, given a machine with sensing, actuation, and computation, how do we develop programs that allow the machine to function autonomously? The course development book is meant to be a resource for anyone interested in teaching a similar undergraduate robotics course or for robot hobbyists who want to get up and running with both a robot hardware and software platform. CS148 projects center on a "robot soccer" task, where students program the Brown iRobot Create/ASUS robots using either the Player/Stage/Gazebo (PSG) or the Robot Operating System (ROS) middleware framework.
Draft Table of Contents
The following outlines each of the chapters in the book:
Chapter 1: Course Objectives - An introduction to the course, a motivation for robotics, the concepts taught and 148 projects.
Chapter 2: Getting Started - The steps for assembling and remotely controlling a low-cost mobile robot, which we call the "SmURV", from "commercial off-the-shelf" (COTS) components.
Chapter 3: Robot Middleware - Introductions to Player and ROS, two middleware packages that provide an abstraction between the hardware and the robot client. This chapter walks through the steps of writing a simple client application in both middleware systems.
Chapter 4: Create Spotting - The first project for students to become familiar with the Create hardware functionality and introduce/highlight the importance of scientific writing.
Chapter 5: Enclosure Escape - This project acquaints students with writing robot clients that control basic planar movement using either Player or ROS. The students are tasked with implementing either a reactive or deliberative robot control policy to escape from an arbitrary static enclosure.
Chapter 6: Object Seeking - In this project, students extend the basic control client to perform an object seeking task by recognizing and driving towards a set of objects in a continual fashion. Students use a USB webcam with the SmURV platform to perform color blobfinding for recognizing objects.
Chapter 7: Path Planning - Given a map of the field and an overhead camera view of the robots, students are to develop a deliberative planning-based robot client for visiting specific locations and pushing a ball into a goal.
Chapter 8: Localization - Without an external localization system, students are to develop an autonomous robot controller using only on-board sensing and perception.
Chapter 9: Subsumption - This project entails writing a robot controller that does not rely upon any state variables or history; rather the controller should simply react to what is sensed at the current time instance to make a decision that
Chapter 10: Multi-Robot Coordination - Given a team of Create robot platforms, students are to develop a competitive multi-robot strategy and individual controllers.
Chapter 11: Learning - For this project, students should guide a fixed learning algorithm to play a control policy without explicit programming.