CMSC 477: Robotics Perception and Planning



Course Logistics


Welcome to CMSC477: Robotics Perception and Planning, a class by Prof. Yiannis Aloimonos. Levi Burner and Botao He will serve as the teaching assistants.

The course is a hands-on introduction to perception and planning for robotics, including rigid body transformations and rotations, dynamics and control of mobile robots/drones, graph based and sampling based planning algorithms, camera models and calibration, projective geometry, visual features, optical flow, pose estimation, RANSAC and Hough transform, structure from motion, visual odometry, machine learning basics, visual recognition and learning.

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.

Instructors










Yiannis Aloimonos
Instructor







Levi
Burner
Teaching Assistant







Botao
He
Teaching Assistant


Pre-requisites


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; or permission of Computer Science department.


Lab Hours


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

  • Section 0101: Monday 2:00pm - 4:50pm
  • Section 0102: Wednesday 2:30pm - 5:20pm
  • Extra Lab sessions:
      — Tuesday: 10:00 am - 1:00 pm
      — Thursday: 10:00 am - 1:00 pm
      — Friday: 10:00 am - 3:00 pm
      — Email the lab manager Ivan Penskiy at ipenskiy@umd.edu 24 hours before using one of the extra lab sessions.

    Assignments and Grading Breakdown


    There is one final examination, one homework, and 4 projects with the projects making up a large portion of the coursework. The projects are worked on during lab sessions. The grading breakdown is as follows:

    Teamwork


    At the beginning of the semester students will be assigned to teams of three or, if necessary, teams of two. Each team will have one robot at their disposal. The teams will work on the projects. The homework is to be submitted individually.


    Hardware


    We will use the DJI RoboMaster as the robotic platform for this course. The robot will be controlled via a Python program running on student's laptops.


    Late Policy


    It is very important to keep up with the material as the course moves quickly. To encourage this, late assignments are docked 20% for the first day, and 10% per day after that. However, since life is unpredictable, each group has four late days to spend on projects 0, 1, and 2. Late days push 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).

    Participating in project 3 competition, submitting the project 3 final report, and taking the final exam cannot be submitted late because their due dates correspond with the final exam time slot, last day of finals, and last day of classes respectively. Late days cannot be used for homework 1.

    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.


           

 info[at]prg.cs.umd.edu