CS 148 ("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? We answer this question through a series of lectures, class discussions and group projects.
CS148 projects center on a "robot soccer" task, where we program a robot vacuum-like devices to play soccer in structured environments. Various approaches to robot control (spanning reaction to deliberation) are covered using the Robot Operating System (ROS) framework and relatively low-cost mobile robots, specifically the iRobot Roomba/Create platform with onboard subnotebook computers and color cameras.
CS148 class meetings explore the technical, societal, and philosophical aspects of autonomous robots and human-robot interaction. Discussions amongst the class pose and address questions related to how robots can contribute to society, what technical functionality is needed, and how will such technologies affect the human-robot dynamic.
Meeting time/place: M,W,F 1:00-1:50 (F Hour) in CIT 368
Prerequisites: Any one of the following: CS15, CS17, CS19, or permission from the instructor
Mailing list: cs148.2010-11.f(at)lists.cs.brown.edu
The up-to-date syllabus is available on the cs148 google calendar. Labs and projects are also posted on the website, but the outgoing and due dates are not official until announced in class. Refer to the web page and course mailing list often. Any important announcements posted on the mailing lists and web site MOTD page.
Make sure you are subscribed to the CS148 mailing list.
Please use the CS148 mailing list as the primary means for correspondence with the course staff. Many questions, issues, and concerns are typically applicable to the class as a whole. Help us avoid redundancy by using the mailing list first. Issues relevant to specific individuals or working groups can be addressed to the course staff via cs148tas. Issues involving sensitive information can be addressed to the instructor and/or HTA through cs148headtas, but should be used only if absolutely necessary.
Office hours for the course staff will be posted on the website.
This course involves a significant amount of programming and decision making under uncertainty. Robotics is about understanding and functioning in the real world. However, the real world is highly dynamic, uncontrolled, and nondeterministic. These factors result in uncertainty that is unlike the structure and determinism of traditional computer science. Programming in the face of such uncertainty is a persistent challenge faced at all levels of robotics. Consider yourself warned.
While problematic, the challenges of the physical world offers new and great opportunities for the pioneering spirit. Think of robotics as a means to extend computing and the Internet beyond controlling digital environments into autonomously working in the physical world. This is the perfect time to be a roboticist. Similar to "personal computing revolution" a few decades ago, robotics is the dawn of its own "personal robotics revolution", where many great robotic technologies that are now starting to come together. CS 15, 17, or 19 should provide an adequate programming background for the projects in this course. In addition, motivated students who have taken CS 4 should consult with the instructor before enrolling in CS148. Interested students who have not taken any of these courses at Brown, but have some other strong programming experience should consult with course instructor.
Lectures and activities in CS148 are centered around the basic notion of an autonomous robot control loop, as illustrated below. CS148 focuses mostly on autonomous ("cognitive") aspects of this loop, pertaining to programming procedures for perception (estimation of the state of the world), decision making (deciding how to act), and motion control (executing decided actions). CS148 does not cover in substance topics within robot engineering for building the "embodiment" (actuators, sensors, physical parts) of a robot.
Algorithms covered in lectures are cast as components in this loop that will be used to form complete project implementations. For example, the Object Seeking project involves color blobfinding for perception, a finite state machine for decision making, and proportional-derivative control for motion control.
Topics covered during lectures will be grounded in implementations during interactive sessions and 7 assignments. Interactive sessions will be devoted to a hands-on introduction to ROS and working with our iRobot Create platforms leading up to autonomous robot projects. The first 2 assignments are an introduction to implementing robot controllers using the ROS robot middleware as well as basic issues for autonomous robotics:
The remaining projects explore different approaches to autonomous robot control in the context of robot soccer:
Contribution of assignment grading towards determining the final grade are weighted as follows:
Consult the course calendar for more information about the timing and due dates for these projects.
Completion of each assignment involves an interactive demonstration of your implementation and a web-based written report. These deliverables are described in the Project Deliverables section. The implementation demos and written report are weighted equally in the grading of each assignment and are used to evaluate your hands-on and conceptual grasp of the material.
CS148 can be taken for 200-level (graduate) credit. 200-level credit involves completing all assignments for a full grading in addition to completing an additional project (in robot learning) or written survey in a specific area of robotics research. Please consult the course instructor for more information.
CS148 projects will center around developing controllers to play robot soccer. Robot soccer has been an active topic of research for over a decade. RoboCup is the worldwide effort to advance the state of the art in robot soccer through yearly competitions. Paraphrasing Hiroaki Kitano, the RoboCup goal is to field a team of robot soccer players capable of winning against the human World Cup champion by 2050 Wikipedia description.
This class considers a constrained version of this problem using the low-cost mobile robot platform and a highly structured soccer environment. Your robots this semester will likely not outplay any humans or RoboCup-level robots, but should be a fun way to explore the basic topics in autonomous robot control.
"ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers."
The brown-ros-pkg repository provides code and instructions for ROS support of the iRobot Create and other hardware/software needed by course robots.
ROS is installed on all netbooks in the 404 Roomba Lab. The ROS project is still relatively new and has only been used experimentally in previous offerings of CS 148. Thus, your understanding and cooperation will be appreciated when problems arise. The ROS community actively uses the ros-users mailing list for questions and discussions, which you are also welcome to utilize.
Robot platforms used in this course are meant to be reproducible by students and individuals beyond this class. Hardware used by robots in CS 148 is comprised of "off the shelf" components that can be readily purchased and assembled without custom engineering. Software used in CS 148 is all open source and free for download. Brown Robotics strives to maintain current instructions for assembling and getting up-and-running robots we use in class:
Projects are graded assignments that consist of a implementation and a report. Projects are to be implemented by groups of students working in teams, but with individually composed written reports. Implementations will be demonstrated during scheduled class periods for grading by the course staff. Project reports are meant to explain your work for the project with respect to the scientific method.
Project reports must be submitted in a web-viewable format. We highly recommend basic HTML with minimal styling to ensure proper rendering across a variety of web browsers.
The course staff will provide a git repository for each student group to check in project source code and reports. Please refer to this tutorial for an in-depth introduction to git and version control. We expect students to use these repositories for collaborative development as well as project submission. It is the responsibility of each student group to ensure their repository adheres to the collaboration policy and submission standards for each assignment. Submission standards and examples will be described for each assignment.
Each report is meant to be a scientific report about your project, the methods underlying your work, and its basis in the science of robotics. As such, the paper should follow the scientific method: observation, hypothesis, experiment, analysis, and conclusion. It should be objective and scientific in tone (avoid informal writing and unsubstantiated claims and adjectives; use the first person sparingly). The paper should have a central testable hypothesis that can is supported by statistical hypothesis testing. Informal claims and additional results can be provided in supplement to the central hypothesis testing.
The report should include the following sections:
A writeup should be crisp and succinct. It should be formatted in two columns, with 11 point font. The body of the writeup should not exceed 2 pages. Detailed or highly technical explanations may be added as appendices after the main body of the writeup. Pointers to video footage of your robot trials are greatly appreciated. Complaints and subjective criticisms in the report will be disregarded during grading and likely weaken the quality of the report.
A final note: illustrations with good captions and labeling are extremely useful. The instructor is a sucker for pretty pictures.
If a team is a day late for a project demo, that assignment is considered late for every member of the team. Late project submissions will lose credit at a rate of 10% a day. That means a maximum possible grade of 90% on an assignment that is one day late, and 80% for two days late, etc.
Any requests for extensions on projects (demos and/or reports) should be made to the instructor and HTA prior to the due date. Extensions are granted at his discretion of the instructor and HTA. Late final projects will not be accepted.
Students will implementation projects in groups with access to provided mobile robot platforms. Students in a group can and should collaborate fully towards their implementations and demos. Project-related discussions between teams may occur in a limited fashion. Groups may discuss the concepts of the assignment, and even approaches to a particular problem. Until an assignment is graded in its entirety, students in separate groups are prohibited from sharing or dictating code for the assignment under any circumstances.
Written assignments and reports are to be completed individually by students. Data and images from tests and demos may be shared, but each team members' writeup must uniquely express their own thoughts and ideas. Any usage of material, ideas, or concepts other than your own must be explicitly cited in your submission and will not count as central to your submission.
Throughout the semester and especially during project matches, robots are typically swapped among groups and the code of another group may be left behind on one of the netbooks. In this situation, we are leaving it up to the honor system that students absolutely do not plagiarize code or run another group’s code. If this policy is broken there will be severe repercussions. Additionally, all students in a group are responsible for taking proper security measures for their repositories and the Roomba Lab. Groups will be held liable for any theft or damage due to improper security measures on their part.
Though Wilson's book has a humorous tone, it does cover many of the topics in CS148 in a substantive and accessible manner.
Selected passages from the following books will be used during this course:
The Roomba Lab will be the venue where demos, soccer matches, and interactive sessions will be held. Robots used for this class will reside in this lab and will be accessible via the wireless "AIBO" network. Through the AIBO network, your control programs running on any department machine will be able to access and control the robots. There will also be machines available in the lab for project work.
The Roomba Lab has a card reader on the door. All students on the class mailing list will be given card access to the lab and floors 3-5 of the CIT building. Again, it is important to make sure you are subscribed to the CS148 mailing list! Given that everyone will have access to the lab, it is in the best interest of all involved to keep the lab organized and clean. The lab should never be left open and unattended; it contains hardware that is difficult to replace.
Important: If you are leaving the lab, even just for a minute, DO NOT leave the door propped open. It is critical that the robots and machines for the course remain secured. Careless treatment of the course equipment will not be tolerated and may affect the grades of students acting irresponsibly.
Refer the course web page for the individual TA's hours and locations. Students will have access to the Roomba Lab at all hours. Students may use the computers in the Roomba Lab for CS148 project work only.
The schedule is available the course calendar. Please let us know if the current times do not work. We do not want to hold hours when no one can take advantage of them. Thus, feedback through the course mailing list would be appreciated.
The TAs will answer questions related to lectures, labs, and course-related material. However, if you have not completed the labs and/or preparatory assignments the TAs will answer your questions at their discretion.