Syllabus

Cross Listed: MAE 4760, ECE 4770
Graduate version: Co-meets with CS 5750 but requires extra problems in assignments

PDF for the syllabus

Description:

Robotics is interdisciplinary and draws inspiration from many different fields towards solving a variety of tasks in real-world environments using physical systems. This course is a challenging introduction to basic computational concepts used broadly in robotics. By the end of this course, students should have a fundamental understanding of how the different sub-fields of robotics such as kinematics, state estimation, motion planning, and controls come together to develop intelligent behaviors in physical robotic systems. The mathematical basis of each area will be emphasized, and concepts will be motivated using common robotics applications. Students will be evaluated using a mixture of theoretical and programming exercises throughout the semester.
This course is offered in two versions; one for undergraduate students, and one for CS graduate students. While both versions cover similar material, the graduate version includes additional deliverables, including additional problems in some assignments. If you are a graduate student, you need to enroll in the graduate version of the course. For any questions, please contact Prof. Bhattacharjee.
Credits: Fall 2022 - 4 credits - Letter grades only.

Learning outcomes:

  • Describe the different physical forms of robot architectures

  • Use the Robot Operating System (ROS) framework to build robot applications

  • Model simple manipulator and mobile robots kinematically

  • Analyze manipulation and navigation problems using knowledge of coordinate frames, homogeneous transformations, and kinematics

  • Compute forward and inverse kinematics for a small serial robot arm

  • Perform state estimation using filtering techniques

  • Plan robot movements using graph-based and sampling-based motion planning algorithms

  • Control the robot using a variety of feedback controllers

  • Integrate various sub-fields of robotics such as state estimation, motion planning, and controls towards developing a robotic system that can perform intelligent tasks

Prerequisites:

MATH 1920 or MATH 2220, MATH 2940 or Math 2210, and CS 1110 or permission of instructor. This course is targeted towards senior-level undergraduate students and junior graduate students. Graduate students should enroll in the graduate version of the course. There are two optional co-requisites. The first is CS 1133, which is a half-semester course designed to teach python for students who learned MATLAB in CS 1112. We strongly encourage you to take CS 1133 if you don’t know python. The second is CS 3220, which provides a rigorous foundation in the mathematical background concepts used in this course. Graduate students coming from undergraduate institutions other than Cornell should have similar backgrounds in above topics.

Course staff:

Roll Name Email Office
Instructor Prof. Tapomayukh Bhattacharjee tapomayukh@cornell.edu Gates 315
TA Rajat Kumar Jenamani rj277@cornell.edu  
TA Ruolin Ye ry273@cornell.edu  
TA Jonathan Moon hm447@cornell.edu  
TA Luke Griffiths lsg84@cornell.edu  
TA Nathaniel Chin nlc62@cornell.edu  
Admin Sara Perkins sep247@cornell.edu  

Office Hours:

Office hours are the part of teaching we enjoy the most, so make our days and come see us!

Name Day Time Location
Tapomayukh Bhattacharjee Wednesday 9 AM - 11 AM Gates 315
Rajat Kumar Jenamani Wednesday 12:30 PM - 2:30 PM Rhodes 400
Ruolin Ye Friday 9 AM - 11 AM Rhodes 574
Jonathan Moon Tuesday 6 PM - 8 PM Rhodes 400
Luke Griffiths Monday 5 PM - 7 PM Rhodes 400
Nathaniel Chin Thursday 2:30 PM - 4:30 PM Rhodes 404

Websites:

Topics covered:

  1. Introduction to ROS: ROS Fundamentals

  2. Robot Kinematics: Rigid body abstraction; Translation, rotations, and homogeneous transformations; Mobile robot and serial arm kinematics, DH parameters, and forward and inverse kinematics

  3. State Estimation: Probability fundamentals; Bayesian, Kalman, and particle filtering techniques

  4. Motion Planning: Graph-based planning methods (A* and its variants); Sampling-based motion planning (RRT and its variants)

  5. Controls: Feedback control fundamentals; PID control; Position, velocity and force control; Linear-Quadratic Regulator (LQR); Model Predictive Control (MPC)

Assignments:

Undergraduate Course Version:

  • HW1 (coding assignment, 10%): Master ROS fundamentals by writing your own publisher and subscriber

  • HW2.1 (written assignment 10%): Rotation matrices and homogeneous transformations

  • HW2.2 (coding assignment 15%): Implement mobile robot (car) kinematics and serial arm kinematics

  • HW3 (written (5%) + coding (15%) assignments): State estimation, implement a particle filter

  • HW4 (coding (20%) assignments): Motion planning, implement A* and RRT

  • HW5 + Final Project (coding assignment 20%): Feedback control, implement PID and MPC

The undergraduate version of the course will also include advanced optional problems for undergraduate students to further master course materials. However, these optional problems are required for all graduate students.

Graduate Course Version:

  • HW1 (coding assignment, 5%): Master ROS fundamentals by writing your own publisher and subscriber

  • HW2.1 (written assignment 10%): Rotation matrices and homogeneous transformations; Quaternions (optional for undergraduate students)

  • HW2.2 (coding assignment 15%): Implement the mobile robot (car) kinematics and serial arm kinematics; Tune car kinematic model parameters (optional for undergraduate students)

  • HW3 (written (10%) + coding (15%) assignments): State estimation, Kalman Filter problem (optional for undergraduate students), implement a particle filter

  • HW4 (coding (20%) assignments): Motion planning, implement A* and RRT

  • HW5 + Final Project (written (5%) + coding (15%) assignments): Feedback control, LQR for cartpole (optional for undergraduate students), implement PID and MPC

Time: Monday - Wednesday - Friday, 3:45 PM - 4:35 PM

Location: Hollister Hall B14

Course textbooks:

There are no required textbooks for this course. The following is a list of optional but useful references for different parts of the course.

  • Probabilistic Robotics, S. Thrun, W. Burgard, and D. Fox. MIT Press, Cambridge, MA, 2005.

  • Planning Algorithms, Steven M. LaValle. Cambridge University Press.

  • Artificial Intelligence: A Modern Approach (Third Edition), Russell, Stuart J., and Peter Norvig. Pearson Education Limited, 2016.

  • Modeling and Control of Robot Manipulators, L. Sciavicco and B. Siciliano, Springer.

  • Modern Robotics: Mechanics, Planning, and Control, Kevin M. Lynch and Frank C. Park, Cambridge University Press.

Grading:

Undergraduate Course Version:

  • Coding assignments (5 total): 80%

  • Written assignments (3 total): 15%

  • In-class participation and completing course evaluation: 5%

Graduate Course Version:

  • Coding assignments (5 total): 70%

  • Written assignments (3 total): 25%

  • In-class participation and completing course evaluation: 5%

Late policy:

Written assignments must be submitted electronically in PDF format. Coding assignments and related deliverables must be submitted electronically via Gradescope. No other formats will be accepted! Assignments must be submitted by 11:59pm on the due date. You can continue to resubmit your assignments as many times as you would like up until the deadline, so please feel free to upload early and often. If you submit an assignment even one minute past the deadline, the assignment will be marked as late.

Each student has a set of slip days that may be used when submitting assignments. Each slip day provides an automatic 24-hour extension. You may use up to two slip days on any single assignment, meaning that the maximum automatic extension is 48 hours. Student have four slip days for use on assignments in total. To use a slip day, simply submit your assignment late. You are responsible for keeping track of how many slip days you have remaining. If you accidentally submit an assignment late without the proper number of slip days remaining, then although the system will allow the upload, we will deduct 20% from that assignment per late day outside your slip days (or we will grade the latest upload before the due date). Note that you cannot use slip days partially. If you submit an assignment 1 minute after the deadline, one slip day will be used. The purpose of the slip day system is to give you the freedom to more effectively manage your time. The due dates for the course are available at the beginning of the semester, so please plan ahead so you can handle weeks with many other deadlines.

Regrade Policy:

Addition errors in the total score are always applicable for regrades. Regrades concerning the actual solution should be rare and are only permitted when there is a significant error. Please only make regrade requests when the case is strong and a significant number of points are at stake. Regrade requests should be submitted online via a private post on Ed within one week of when an assignment is returned to the student. You must provide a justification for the regrade request.

Collaboration policy:

The work you submit in this course is expected to be the result of your individual effort only. Your work should accurately demonstrate your understanding of the material. The use of a computer in no way modifies the standards of academic integrity expected under the University Code.

You are encouraged to study together and to discuss information and concepts covered in lecture with other students. You can give “consulting” help to or receive “consulting” help from other students. Students can also freely discuss basic computing skills or the course infrastructure. However, this permissible cooperation should never involve one student having possession of or observing in detail a copy of all or part of work done by someone else, in the form of an email, an email attachment file, a flash drive, a hard copy, or on a computer screen. Students are not allowed to seek consulting help from online forums outside of Cornell University. Students are not allowed to use online solutions (e.g., from Course Hero, Chegg) from previous offerings of this course. Students are encouraged to seek consulting help from their peers and from the course staff via office hours and the online Ed discussion forums. If a student receives consulting help from anyone outside of the course staff, then the student must acknowledge this help on the submitted assignment.

Ed discussion:

Students are highly encouraged to post questions and answers on the course Ed discussion site, linked in Canvas.

  • The site will be monitored on business days by the course staff. Students can expect an answer within one business day.

  • Students are expected to communicate in a professional manner.

  • Students may NOT write code snippets on the discussion board.

Masking:

Masks are encouraged but not required in classrooms for Fall 22, according to university policy. However, the University strongly endorses compliance with requests to mask from students, staff, or faculty who are health compromised. If you are immunocompromised and would like Prof. Bhattacharjee to request that the class be masked, please send Prof. Bhattacharjee an email with any rationale that you are comfortable with Prof. Bhattacharjee sharing. Prof. Bhattacharjee does not need to identify you unless you would prefer that Prof. Bhattacharjee does.

Quarantine policy:

If you are a close contact with someone who is diagnosed with COVID19, even if you do not experience symptoms, you should test yourself mask for five days after exposure regardless of the outcome.

If you have symptoms of COVID19 and have not been tested:

  • Do not come to class.

  • Email [Prof. Bhattacharjee, TA] before class starts to let [Prof. Bhattacharjee, TA] know that you are not coming.

  • Get an antigen test.

  • If the test is negative, you may return to the next class. Please wear a mask until your symptoms are gone, even if you test negative.

  • If your antigen test is positive, you must immediately upload the result to Daily Check: http://dailycheck.cornell.edu. This action will trigger instructions and a letter of temporary accommodation. You must forward the temporary accommodations email to [Prof. Bhattacharjee, TA] to receive an accommodation. (The system will not send it for you.) Once [Prof. Bhattacharjee, TA] receives the letter, we will provide guidance on how you should keep up with material for the next 5 days.

  • You may return to class on day 6 provided you are asymptomatic. You must wear a mask through the end of day 10 from your first onset of symptoms.

Inclusion statement:

Students in this course come from a variety of backgrounds, abilities, and identities. In order to ensure an environment conducive to learning, all members of the course must treat one another and the course staff with respect. If you feel your needs are not being adequately accommodated by the other students or instruction staff, please contact Prof. Bhattacharjee.

Academic integrity:

Students are expected to follow Cornell’s Code of Academic Integrity which can be found at http://cuinfo.cornell.edu/aic.cfm. The purpose of this code is to provide for an honest and fair academic environment. As such, it should be clear to students what is expected of them in the course (see the collaboration policy) and in case of doubt, students should ask Prof. Bhattacharjee. Copying work (code and/or text) and allowing others to copy work are considered violations of Cornell’s code. Course staff will use software tools (such as MOSS or Gradescope’s Code Similarity) to detect code plagiarism.

For fairness to all students and to discourage inappropriate behavior, violations of the code related to any homework or assignment, will result in an automatic zero. In addition, at the discretion of Prof. Bhattacharjee, violators will be prosecuted.

Life happens policy:

In case of a legitimate situation or medical emergency that arises during the semester that is going to hinder your ability to complete the work on time, contact Prof. Bhattacharjee as soon as possible. Extensions (beyond the already assigned slip days) will be granted only in exceptional circumstances, such as documented illness, not for situations such as job interviews or large workloads in other courses. Note, the students are free to use the slip days mentioned above (See Late policy) for any reasons they want.

Expectations:

We expect you to complete your own assignments honestly. If you have any questions, we are here to help. Come to office hours with any question you have, and we are more than happy to help you. However, do not expect us to write code or complete written assignments for you. If you cannot make to any office hours during a certain week, don’t hesitate to reach out to the TAs and schedule a meeting with them.

Student Disability Accommodations:

Your access in this course is important to me. Please request your accommodation letter early in the semester, or as soon as you become registered with Student Disability Services (SDS), so that we have adequate time to arrange your approved academic accommodations.

  • Once SDS approves your accommodation letter, it will be emailed to both you and me. Please follow up with [Prof. Bhattacharjee, TA, etc.] to discuss the necessary logistics of your accommodations.

  • If you are approved for exam accommodations, please consult with [Prof. Bhattacharjee, TA, course staff, etc.] at least two weeks before the scheduled exam date to confirm the testing arrangements.

  • If you experience any access barriers in this course, such as with printed content, graphics, online materials, or any communication barriers, reach out to Prof. Bhattacharjee or SDS right away.

  • If you need immediate accommodation, please speak with Prof. Bhattacharjee after class or send an email message to Prof. Bhattacharjee and SDS at sds_cu@cornell.edu.

If you have, or think you may have a disability, please contact Student Disability Services for a confidential discussion: sds_cu@cornell.edu or visit sds.cornell.edu to learn more.

Mental health and well-being:

Your health and wellbeing are important to me. There are services and resources at Cornell designed specifically to bolster undergraduate, graduate, and professional student mental health and well-being. Remember, your mental health and emotional well-being are just as important as your physical health. If you or a friend are struggling emotionally or feeling stressed, fatigued, or burned out, there is a continuum of campus resources available to you: https://mentalhealth.cornell.edu/get-support/support-students. Help is also available any time day or night through Cornell’s 24/7 phone consultation (607-255-5155). You can also reach out to Prof. Bhattacharjee, your college student services office, your resident advisor, or Cornel Health for support. Also, kindly refer to the resource guide compiled by the members of Body Positive Cornell, EARS, Reflect, and Cornell Minds Matter.

Additional resources:

Other related resources can be found here:

Study Resources

Writing Resources

Library Liaisons

Cornell Caring Community