Robotics as an application draws from many different fields and allows automation of products as diverse as cars, vacuum cleaners, and factories. This course is a challenging introduction to basic computational concepts used broadly in robotics. Topics include simulation, kinematics, control, optimization, and probabilistic inference. The mathematical basis of each area is emphasized, and concepts are motivated using common robotics applications and programming exercises. Students will participate in a series of projects over the course of the semester, in which they will implement algorithms that apply each of the topics discussed in class to real robotics problems. This course prepares students to take CS 4752/MAE 4750: Robotic Manipulation and MAE 4180/CS 3758: Autonomous Mobile Robots, among others.
By the end of this course, I will understand the basic concepts and theory governing the programming of robots that perform autonomous tasks such as navigation and manipulation.
After this course, I will be able to:
- describe the different physical forms of robot architectures.
- kinematically model simple manipulator and mobile robots.
- mathematically describe a kinematic robot system.
- analyze manipulation and navigation problems using knowledge of coordinate frames, kinematics, optimization, control, and uncertainty.
- compute forward and inverse kinematics for a small serial kinematic chain.
- consider trade-offs among position control, velocity control, and force control when solving a robot control problem.
- perform stability analysis of a controller-robot system, and describe why it is important.
- model uncertainty in robot processes.
- program robotics algorithms related to kinematics, control, optimization, and uncertainty.
(MATH 1920 or MATH 2220) and MATH 2940 and (CS 1110 or CS 1112) or permission of instructor. That is, multivariable calculus, linear algebra, and introduction to computing.
*=on reserve in Uris Library
- Mark W. Spong, Seth Hutchinson, and M. Vidyasagar, Robot Modeling and Control, Wiley, 2006.
- Kevin M. Lynch and Frank C. Park, Modern Robotics: Mechanics, Planning, and Control, Cambridge University Press, 2017.
- John J. Craig, Introduction to Robotics, Addison-Wesley Publishing, 1989.*
- Alonzo Kelly, Mobile Robotics: Mathematics, Models, and Methods, Cambridge University Press, 2013.*
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox, Probabilistic Robotics, MIT Press, 2005.*
- Bruno Siciliano and Oussama Khatib, eds. Springer Handbook of Robotics, Springer, 2008.*
These texts are not required, but can serve as useful references for different parts of the course.
- Main course website: http://www.cs.cornell.edu/courses/cs4750/2017fa/
- CMS (assignments): https://cms.csuglab.cornell.edu/
- Piazza (discussion board): https://piazza.com/class/j641h48teqh6ba
- Syllabus: http://www.cs.cornell.edu/courses/cs4750/2017fa/syllabus/
- Projects (4 coding): 25%
- Homework (5 written): 25%
- Reading quizzes: 10%
- Prelims (2 total): 18%
- Final exam: 20%
- Completing course evaluation: 2%
Regrades: Regrade requests will be handled through the course CMS website. All regrade requests must be submitted within 10 days of receiving the grade.
Homework submission: Homeworks will be submitted, and grades returned, through the course CMS website. Late submission of written homeworks and coding projects will be accommodated through slip days. A maximum of five slip days may be used by each student through the course of the semester. A slip day allows an assignment to be submitted one day later than the deadline without penalty, and they are cumulative. Each assignment allows up to three slip days to be used. Any attempt to submit an assignment that uses more than the allotted number of slip days either on one assignment or overall for the semester will result in a zero on that assignment.
Reading quizzes: The reading quizzes are due before each class and are submitted on the CMS website.
Collaboration: Written homeworks and projects are to be submitted individually, but working together in groups of any size is explicitly encouraged. Note that each student is responsible for writing a separate solution to written and coding homeworks. No student should ever see another’s solution. Solutions that are too similar may trigger an academic integrity hearing. For all homeworks, you must write who you collaborated with.
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. Knepper. Copying work of others (code and/or text) — or allowing others to copy your work — is considered a violation of Cornell’s code.
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 with respect. If you feel your needs are not being adequately accommodated by the other students or instruction staff, please contact Prof. Knepper. You may do so anonymously at http://www.cs.cornell.edu/~rak/mail_ross.html or on Piazza.
This course is taught as a standard lecture. Lecture notes are distributed on the website in advance of the class, and students are assigned one short reading per class, usually under 10 pages. Students complete a short (1 or 2 question) quiz to check reading comprehension. Classroom activities will comprise lecture and synthesis of information, with some discussion. In addition, homework assignments comprise a mixture of written response and algorithm implementation on a variety of simulations of mobile and manipulator robots. There are two in-class prelims and one take-home final exam.