Table of contents
- Learning Outcomes
For communication, we’ll be using Ed. Ed is where you will see all announcements and get help from staff and other students on assignments and concepts. You will be added to Ed automatically.
Lecture: Monday - Wednesday - Friday, 3:45 PM - 4:35 PM at Olin Hall 255
Office Hours: See Ed
Keep an eye out on the schedule page as links to slides/notes for some of the lectures may be posted there. These links would usually be before the lecture starts or a few hours after it ends. There is no one textbook that covers the content of this course the way we intend on covering it, though we will link supplementary readings under Resources.
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.
The rough topic breakdown is as follows:
- Week 1: ROS Fundamentals
- Week 2-7: Robot Kinematics
- Week 8-9: State Estimation
- Week 10-11: Motion Planning
- Week 12-15: Control
By the end of this course, students should be able to:
- 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
- Understand and integrate various sub-fields of robotics such as state estimation, motion planning, and controls towards developing a robotic system that can perform intelligent tasks
MATH 1920 or MATH 2220 and MATH 2940 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.
We will be using several websites this semester. Here’s what they’re all used for:
- Course Website: where all content will be posted.
- 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 material, lecture recordings, homework assignments, solutions, grades and announcements. It is the responsibility of the students to check the website frequently.
- Ed: discussion forum where all announcements will be sent, and where all student-TA and student-student communication will occur.
- 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.
- Canvas: where all the slides/notes/homeworks are published.
- Gradescope: where all homeworks are submitted.
Please refer to the syllabi available on this page for the detailed grading rubric. Here’s a rough breakdown of how we will compute your grade.
Undergraduate Course Version
|Coding Assignments (5 total)||80%|
|Written Assignments (2 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%|
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.
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 Gradescope within one week of when an assignment is returned to the student. You must provide a justification for the regrade request.
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.
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.
Students are expected to follow Cornell’s Code of Academic Integrity which can be found here. 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) 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 and Accomodations
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.