Syllabus
Cross Listed: MAE 4760, ECE 4770
Graduate version: Co-meets with CS 5750 but requires extra problems
in assignments
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.
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
CS 2110 (Programming proficiency), CS 1112 (Python proficiency), CS 2800 (Probability and Math proficiency), MATH 1920 (Calculus proficiency), MATH 2940 (Linear Algebra proficiency) or their equivalents.
This course is targeted towards senior-level undergraduate students and junior graduate students. Graduate students should enroll in the graduate version of the course. Graduate students coming from undergraduate institutions other than Cornell should have similar backgrounds in above topics.
Course staff
| Instructor | Prof. Tapomayukh Bhattacharjee | tb557@cornell.edu |
| TA | Rundong Luo | rl897@cornell.edu |
| TA | Chuanruo Ning | cn356@cornell.edu |
| TA | Aarush Umap | au225@cornell.edu |
| TA | Dyllan Hofflich | drh253@cornell.edu |
| TA | Ananya Jajodia | aj477@cornell.edu |
| TA | Nidhi Soma | ns848@cornell.edu |
| TA | Anand Bannerji | ab2585@cornell.edu |
| TA | Joyce Yang | jby33@cornell.edu |
| TA | Falak Raheja | fr273@cornell.edu |
| TA | Gavin Chen | gc487@cornell.edu |
| TA | Yujean Choi | yc2588@cornell.edu |
| TA | Anamitra Rawat | ar2342@cornell.edu |
| TA | Tudor Braicu | tb574@cornell.edu |
| TA | Jess Wang | jw2773@cornell.edu |
| TA | Paige Yun | phy6@cornell.edu |
| TA | Samuel Jin | sj922@cornell.edu |
| TA | Alice Um | atu2@cornell.edu |
| Consultant | Andrea Richard | asr292@cornell.edu |
| Consultant | Daniel Kim | dk725@cornell.edu |
| Consultant | Julius Samwer | jcs557@cornell.edu |
| Consultant | Mihili Herath | mnh49@cornell.edu |
| Consultant | Aidan Chan | amc564@cornell.edu |
| Consultant | Alan Munschy | apm238@cornell.edu |
| Admin support | Kimberly Budd | kj37@cornell.edu |
| Robot Lab support | Gustavo Mendez | gmm224@cornell.edu |
Office hour days, times, and venues will be posted on Ed; see the Office Hours section below.
Websites
-
Main Course Website: https://www.cs.cornell.edu/courses/cs5750/2026fa/
Note, in case of a conflict between the syllabus and the course website, students should follow the information on the website. The course website will be used to post course schedule. It is the responsibility of the students to check the website frequently. - Ed (discussion board) — Use Ed for all questions and discussions: https://edstem.org/us/courses/102170/discussion
- Canvas: https://canvas.cornell.edu/courses/88338
- Gradescope: https://www.gradescope.com/courses/1358250
Office Hours
Office hours are the part of teaching we enjoy the most, so make our days and come see us! Office hour days, times, and venues will be posted on Ed once the semester begins.
Topics covered
- Introduction to ROS: ROS Fundamentals
- Robot Kinematics: Rigid body abstraction; Translation, rotations, and homogeneous transformations; Mobile robot and serial arm kinematics, forward and inverse kinematics, and Jacobians
- State Estimation: Probability fundamentals; Bayesian, Kalman, and particle filtering techniques
- Motion Planning: Graph-based planning methods (A* and its variants); Sampling-based motion planning (RRT and its variants)
- Controls: Feedback control fundamentals; PID control; Position, velocity and force control; Linear-Quadratic Regulator (LQR); Model Predictive Control (MPC)
Assignments
All coding assignments and the final project are carried out on physical rover hardware and are completed in groups. Each group is assigned one robot, which the group checks out and is jointly responsible for. Failure to return the robot at the end of the course will result in a fee. All written assignments and quizzes are completed individually.
- HW1.1 (written assignment, 4%): ROS architecture reasoning — nodes, topics, message types, services, the Parameter Server, bags — and inspecting a live ROS graph on your own rover
- HW1.2 (coding assignment, 5%): Assemble and test your rover, install the software toolchain, and bring up your first ROS nodes with visualization and teleoperation
- HW2.1 (written assignment, 8%): Rotations, homogeneous transformations, Euler angles and quaternions, manipulator Jacobians and differential inverse kinematics, and mobile-robot steering mechanisms
- HW2.2 (coding assignment, 10%): Identify a differential-drive kinematic model, implement forward and inverse kinematics, and compute an odometry solution on the rover
- HW3.1 (written assignment, 6%): Bayesian filtering and the Kalman filter, correlated process noise, probabilistic motion models, and particle-filter behavior
- HW3.2 (coding assignment, 11%): Calibrate the rover's gyroscope, implement a probabilistic sensor model and resampling, and localize the rover in a known map
- HW4.1 (written assignment, 8%): A* correctness and optimality, admissible and consistent heuristics, heuristic design, and sampling-based planning tradeoffs
- HW4.2 (coding assignment, 7%): Implement a rapidly-exploring random tree (RRT) and generate paths in a known map
- HW5.1 (written assignment, 6%): Feedback control and PID tuning, Linear-Quadratic Regulator design for a planar drone, and model-predictive control
- HW5.2 (coding assignment, 10%): Implement a pure pursuit path-following controller and test it on the rover in the real world
- Quizzes (10% total): six short in-class quizzes, one per course module plus a final integrative quiz. Your lowest score is dropped
- Final Project (coding assignment, 10%): Integrate localization, planning, and control on the rover to complete an end-to-end task
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
- Coding assignments (HW1.2, HW2.2, HW3.2, HW4.2, HW5.2): 43% (Group)
- Final Project (Coding): 10% (Group)
- Written assignments (HW1.1, HW2.1, HW3.1, HW4.1, HW5.1): 32% (Individual)
- Quizzes: 10% (Individual). Lowest quiz score is dropped
- In-class participation and completing course evaluation: 5% (Individual). See Ed for details.
- Every member in a group gets the same point for a coding assignment
Quizzes
There are six short in-class quizzes over the semester, one for each of the five course modules and a final integrative quiz. Each is worth 2% of your course grade, and your lowest score is dropped.
Each quiz opens a few minutes into the class period and closes before instruction begins. You have fifteen minutes. Quizzes are administered through Gradescope. They are closed-book and closed-notes, and no external tools or assistance of any kind are permitted. Question order and answer-choice order are randomized for each student. Some questions have more than one correct answer, and you are not told which. Credit is awarded only when your selection matches the correct set exactly.
Quiz dates are posted on the course website and announced on Ed.
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). Students have six 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.
Slip days on group submissions (the coding assignments and the Final Project) are charged to every member of the group: a one-day extension costs each member one slip day. A group may therefore only take an extension if all of its members have enough slip days remaining. Slip days on written assignments are charged to the individual student only. 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 must be submitted through Gradescope, on the specific question in question, within one day of when an assignment is returned to the student. You must provide a justification for the regrade request. Regrade requests sent by email or posted on Ed will not be considered.
Collaboration policy
Written assignments (HW1.1–HW5.1) are individual work. What you submit must be the result of your own effort only, and every rule in this section applies to them in full.
Coding assignments (HW1.2–HW5.2) and the Final Project are group work. Each group is assigned one robot and submits one deliverable per assignment. Collaboration within your own group is expected and does not need to be acknowledged. Every restriction below on sharing, possessing, or observing someone else's work applies between groups exactly as it applies between individuals on written assignments. Each member of a group is responsible for understanding all of what the group submits.
In both cases, 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 not encouraged to use generative AI tools (ChatGPT, Copilot, Claude etc.) for assignments. If students use AI tools for any assignment, they must cite all instances of AI tool usage for that assignment, including mentioning how they used it (full prompts, input, etc.). 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 and (for coding assignments) their own group, then the student must acknowledge this help on the submitted assignment. Failure to comply with above rules (regarding Gen-AI and/or peer consulting) will result in penalty points (see assignment rubrics).
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 “public” code snippets on the discussion board.
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 https://deanoffaculty.cornell.edu/faculty-and-academic-affairs/academic-integrity/code-of-academic-integrity/. 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 the instructors, 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 us. 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 us. 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, 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 the instructor 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 us. 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 Cornell 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: