CMSC 477: Robotics Perception and Planning

Course Logistics

Welcome to CMSC477: Robotics Perception and Planning, a class by Prof. Yiannis Aloimonos. The course is freshly designed by Chahat Deep Singh, Levi Burner and Botao He which will also serve as the teaching assistants for this course. This is a hands-on course that deals with the integration of robot perception, planning and control on a real-world mobile robot.

All the class announcements will be made through Piazza. Please use Piazza to contact TAs, rather than email.
All the projects and homeworks are to be submitted using ELMS.
All the projects and homeworks will be coded in Python programming language. All the projects are to submitted in a group while the homework is to be submitted individually.

Current Members

Yiannis Aloimonos

Chahat Deep Singh
Teaching Assistant

Teaching Assistant

Teaching Assistant


The student should have completed one of the courses: MATH240, MATH341, MATH461 and one from (ENEE467 or CMSC420). We recommend familiarity with Python and basic Linear Algebra.
Restriction: Must be in the Robotics and Autonomous Systems minor; and permission of Computer Science department.

Lab Hours

The class will be held in IRB 2207 every Tuesday and Thursday from 2:00pm - 2:50pm. Although the lab sessions will be at EAF 3119.
Lab Sessions:

  • Monday: 2:00 pm - 4:50 pm
  • Tuesday: 9:00 am - 11:50 am
  • Extra Lab sessions:
      — Wednesday: 2:00 pm - 4:50 pm
      — Thursday: 10:00 am - 12:50 pm

      Course Structure

      This is a hands-on course, centered around four projects and one homework. The grading breakdown is as follows: NOTE: The grading scheme may undergo variation depending on the speed and difficulty of the course.


      All projects are intended to be done in groups of 2-3 students. However, the homework MUST be done individually. However, we encourage you to discuss with your peers. For further details, read the "Collaboration Policy and Honor Code" below.

      Topics Covered

      Graph Based Planning, Breadth First Search, Depth First Search, Djikstra Algorithm, Position Controllers, Filtering, Image Processing, Camera Models and Calibration, Projective Geometry, Machine Learning Basics, Visual Features and Correspondences, Epipolar Geometry, Triangulation, Visual Odometry, Stereopsis, Optical Flow, Active Perception.


      We will use Python as the programming platform throughout this course along with the robot software and SDK. More details to the software will be later updated here.

      Late Policy

      This course moves quickly, and concepts tend to build on top of each other. Therefore it's very important to keep up with the material. To encourage this, late assignments are docked 20% for the first day, and 10% per day after that. But life is unpredictable; we all need a break sometimes. So, we allow you overall four late days, to spend on any assignment(s) except the final project. You may submit an assignment late (after the due date) using a late day without any penalty. Think of a late day as pushing the deadline back by a day. So, to get full credit on a 2-days-late assignment, you'd need to use two late days. Late days can only be spent as full days (i.e., you can't use only half a late day for an assignment you submit 12 hrs late). If you are using a late day, mention it in the title of your submission as "USING X LATE DAY(S)"

      Collaboration Policy and Honor Code

      Collaboration is encouraged, but one should know the difference between collaboration and cheating. Cheating is prohibited and will carry serious consequences. Cheating may be defined as using or attempting to use unauthorized assistance, material, or study aids in academic work or examinations. Some examples of cheating are: collaborating on an in-class exam or homework unless explicitly allowed; copying homework; handing in someone else's work as your own; and plagiarism. You are welcome to collaborate with your peers on Piazza and in person. However it's important that the work you submit is an expression of your understanding, and not merely something you copied from a peer. So, we place strict limits on collaboration:
      • Firstly, you must clearly cite your collaborators by name at the top of your report. This includes Piazza posts referenced.
      • You may not share or copy each other's code. You can discuss how your code works, and the concepts it implements, but you can't just show someone your code.
      • For homeworks, when it comes to formulating or writing solutions, you must work alone. For example, if you're working with your peers on a common whiteboard, you may not simply copy from that whiteboard; you must write your answer separately, based on your own understanding of what you discussed.

      You may use free and publicly available sources, such as books, journal and conference publications, and web pages, as research material for your answers. (You will not lose points for using external sources.) You may not use any service that involves payment, and you must clearly and explicitly cite all outside sources and materials that you made use of. We consider the use of uncited external sources as portraying someone else's work as your own, and as such it is a violation of the University's policies on academic dishonesty. Instances will be dealt with harshly and typically result in a failing course grade. Unless otherwise specified, you should assume that that the UMD Code of Academic Integrity applies.