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 2023 - 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 4710 or ENGRD 2700 or equivalent, MATH 1920 or equivalent, and MATH 2940 or MATH 2210 or equivalent, and CS 1110 or CS 1133 or equivalent. 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 Ruolin Ye ry273@cornell.edu  
TA Jonathan Moon hm447@cornell.edu  
TA Gonzalo Gonzalez-Pumariega gg387@cornell.edu  
TA Boao Dong bd324@cornell.edu  
TA Tianjing Zhang tz346@cornell.edu  
TA Ridhit Bhura rb749@cornell.edu  
TA Diego Virtue dtv25@cornell.edu  
TA Yifei Hu yh464@cornell.edu  
TA Vanshaj Jain vj53@cornell.edu  
TA Arnav Parashar ap736@cornell.edu  
TA Kevin Huang kbh64@cornell.edu  
TA Taha Jafry taj43@cornell.edu  
TA Xiaoyu Liang xl434@cornell.edu  
TA Matthew Taub mrt88@cornell.edu  
Consultant Kunal Gupta kg379@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 Thursday 8:30 AM - 10:30 AM Gates 315
Ruolin Ye Wednesday 10:00 am - 12:00pm Rhodes 406
Jonathan Moon Wednesday 7:00 pm - 9:00 pm Rhodes 404
Gonzalo Gonzalez-Pumariega Tuesday 5:00 pm - 7:00 pm Rhodes 402
Boao Dong Tuesday 7:00 pm - 9:00 pm Rhodes 412
Tianjing Zhang Monday 12:00 pm - 2:00 pm Rhodes 404
Ridhit Bhura Tuesday 3:00 pm - 5:00 pm Rhodes 404
Diego Virtue Wednesday 8:00 pm - 10:00 pm Rhodes 406
Yifei Hu Tuesday 8:00 am - 10:00 am Rhodes 406
Vanshaj Jain Friday 5 pm - 7 pm Rhodes 404
Arnav Parashar Thursday 3:00 pm - 5:00 pm Rhodes 404
Kevin Huang Tuesday 9:00 pm - 11:00 pm Rhodes 406
Taha Jafry Friday 2:00 pm - 4:00 pm Rhodes 406
Xiaoyu Liang Saturday 1:00 pm - 3:00 pm Rhodes 405
Matthew Taub Thursday 12:30 pm - 2:30 pm Rhodes 404
Kunal Gupta Friday 11:00 am - 1:00 pm Rhodes 406

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; Quaternions (optional for undergraduate students)

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

  • 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 (20%) assignments): Feedback control, LQR for cartpole (optional for undergraduate students), 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:35 PM - 4:25 PM

Location: Philips Hall 101

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 (except the last assignment which has maximum 1 slip day), 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 day 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. If students use ChatGPT for a particular assignment, they should mention how they used it (what prompts they used, what information they provided etc.) and cite it. Even if they use ChatGPT, it is the responsibility of the student to make sure they understand the concepts for their own benefit. 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 23, 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