Title image Spring 2017

Syllabus for Spring 2017

Topics and Reading Assignments

Course Description

Robotics addresses the problems of controlling and motivating mechanical devices to act intelligently in dynamic, unpredictable environments. Major topics will include sensing, navigation and control, mapping and localization, robot perception using vision and sonar, and robot kinematics. In addition to short homework assignments, students will undertake more extensive projects using both existing software and implementing their own algorithms on medium sized mobile robots capable of functioning in human spaces. Projects will focus on enabling the robots to execute tasks, explore, and interact with people and objects in their environment.

Learning Goals

  1. Students understand and can implement fundamental algorithms for robot control and navigation.
  2. Students understand and can make use of a variety of sensors to enable autonomous robot behaviors.
  3. Students understand the concept of state estimation applied to sensing, localization, and mapping.
  4. Students work in a group to design software for controlling a robot.
  5. Students present methods, algorithms, results, and designs in an organized and competently written manner.
  6. Students write, organize, and manage a large software project.

Grading rubric and course goals.



In-class Exams (2) 30%
Final Project & Presentation 10%
Class Participation 5%
Assignments 40%
Homeworks 15%

Assignments and homeworks will account for over half of your grade, with exams and class participation accounting for the remainder. The grading policy on assignments is that the tasks specified explicitly in the lab description will constitute about 85% of the assignment. If you complete the specified parts of the assignment properly, and produce a high-quality writeup, it's worth up to a B+ grade. In addition, the lab description will include a variety of extensions to the assignment, or you can come up with your own. Completing one or more extensions, in addition to the specified parts of the assignment, will earn you some flavor of A.


Weekly homeworks will mostly be small programming assignments or problem sets, which are expected to take less than a couple of hours to complete. Homeworks are due by class time on the given due date. The homework deadline is a hard deadline, since we will usually discuss them in class. Homeworks should be your own work. You are encouraged to discuss the homework concepts among yourselves, but your code and your answers should be your own.

Assignments will be longer projects. You will be working in groups for most of them. Each group will submit one code tree and one writeup. For full credit, assignments need to be submitted prior to midnight on the due date. Assignments submitted late will be graded on no less than an 80% scale. No work will be accepted after the final exam date.

Collaboration on assignment concepts and ideas between groups is acceptable, but you need to understand everything you do, and your code should be your own group's code. If you use ideas from another group, be sure to indicate that within your code or writeup. Err on the side of caution. The worst thing that can happen is the professor noticing disturbing similarities in homeworks or assignments with no attribution of credit. Please see the Academic Honesty guidelines below.

30-Minute Rule:

You will encounter difficulties in this course. If you have been stuck on a problem for more than 30 minutes and have made no progress, despite your best efforts, please stop and get help. Email one of us, or consult a peer. If you don't get an answer immediately, do something else for a while. Please do not waste your time on one problem.


For the assignments, you will need to put together a report on a wiki page or web page (you are free to do either). The report should describe the assignment, explain any required theory, and present the results. Your audience for the writeup is your fellow students who might be interested in what you're doing. To hand in your code, use the Courses server Private handin directory of one of your group members (be consistent). Create a subfolder in your Private directory for each assignment.

Weekly Topics and Readings

  • Introduction to robots
  • Robot History
S. & N. Chapter 1
  • Robot Mechanisms and Designs
  • Proprioception
  • Sensors
S. & N. Chapter 2
  • Motion, State
  • Kinematics
  • Basic Control Theory
S. & N. Chapter 2-3
  • Navigation Strategies/Algorithms
  • Wall-Following / Velocity Space
  • Feature Identification
Lecture Notes
  • Finite State Automata
  • Reinforcement/Q-Learning
  • Markov Decision Processes/POMDP
  • State Estimation and Bayesian Filters
  • Kalman Filters
  • Particle Filters
  • Exam
Lecture notes
  • Configuration Space
  • Exact/Cell Decompositions
  • Search / Planning
  • Localization
  • Markov Localization
  • Particle System Localization
  • SLAM
  • Visual SLAM
  • Least Squares Optimization
  • Emotion and Robotics
  • Current Robot Systems
  • Robot Teams
  • Robot soccer
  • Role selection
  • Topics
  • Presentations

Collaboration and Academic Honesty

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.

The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby’s Academic Integrity policies and procedures, see www.colby.edu/academicintegrity/.

If you have had a substantive discussion of any homework or programming solution with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask us or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together. You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not Java.

The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with College policies.

As a member of this community, I pledge to hold myself and others accountable to these values.

Sexual Misconduct/Title IX Statement

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to sexual assault and sexual harassment).

If you wish to speak confidentially about an incident of sexual misconduct, please contact Colby Counseling Services (207-859-4490) or the Director of the Gender and Sexual Diversity Program, Emily Schusterbauer (207-859-4093).

Students should be aware that faculty members are considered responsible employees; as such, if you disclose an incident of sexual misconduct to a faculty member, they have an obligation to report it to Colby's Title IX Coordinator. "Disclosure" may include communication in-person, via email/phone/text, or through class assignments.

To learn more about sexual misconduct or report an incident, visit http://www.colby.edu/sexualviolence/.