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 2026 — 4 credits — Letter grades only.

Time: Tuesday – Thursday, 10:10 AM – 11:25 AM

Location: Statler Hall 185 (Auditorium)

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

InstructorProf. Tapomayukh Bhattacharjeetb557@cornell.edu
TARundong Luorl897@cornell.edu
TAChuanruo Ningcn356@cornell.edu
TAAarush Umapau225@cornell.edu
TADyllan Hofflichdrh253@cornell.edu
TAAnanya Jajodiaaj477@cornell.edu
TANidhi Somans848@cornell.edu
TAAnand Bannerjiab2585@cornell.edu
TAJoyce Yangjby33@cornell.edu
TAFalak Rahejafr273@cornell.edu
TAGavin Chengc487@cornell.edu
TAYujean Choiyc2588@cornell.edu
TAAnamitra Rawatar2342@cornell.edu
TATudor Braicutb574@cornell.edu
TAJess Wangjw2773@cornell.edu
TAPaige Yunphy6@cornell.edu
TASamuel Jinsj922@cornell.edu
TAAlice Umatu2@cornell.edu
ConsultantAndrea Richardasr292@cornell.edu
ConsultantDaniel Kimdk725@cornell.edu
ConsultantJulius Samwerjcs557@cornell.edu
ConsultantMihili Herathmnh49@cornell.edu
ConsultantAidan Chanamc564@cornell.edu
ConsultantAlan Munschyapm238@cornell.edu
Admin supportKimberly Buddkj37@cornell.edu
Robot Lab supportGustavo Mendezgmm224@cornell.edu

Office hour days, times, and venues will be posted on Ed; see the Office Hours section below.

Websites

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

  1. Introduction to ROS: ROS Fundamentals
  2. Robot Kinematics: Rigid body abstraction; Translation, rotations, and homogeneous transformations; Mobile robot and serial arm kinematics, forward and inverse kinematics, and Jacobians
  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

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: