The course will provide a general overview of robotics. The fundamental concepts, mathematical models, and actuation/sensing devices that are necessary to design and control a robotic system will be studied, including:
Both autonomous mobile robots and robotic arms will be studied, considering both single and multi-robot systems. Robot programming and control will be based on ROS, while Gazebo will be used for simulation studies.
Students who successfully complete the course will acquire:
The course will include theory classes, hands-on classes, and homework. Students will learn how to use the ROS (Robot Operating System) and the (multi-robot) simulator Gazebo, and will apply the learned concepts through the programming of both simulated and real robots.
Whereas the lectures emphasize the underlying math and algorithms of each sub-discipline of robotics, the lab projects will emphasize the pragmatic facets of implementing and controlling robotic and mechatronic devices.Homework will be assigned weekly and will include both questions to be answered and programming assignments (in simulation and with real robots).
Formal prerequisites: 21-240 (Matrix Algebra) Min. grade C, or 21-241 (Matrices and Linear Transformations) Min. grade C, or 18-202 (Mathematical Foundations of Electrical Engineering) Min. Grade C, or 21-260 (Differential Equations) Min. grade C, or 24-311 (Numerical Methods) Min. grade C.
Practical prerequisites: Since the course will cover a number of different topics, students should also have: experience with Linux systems, previous programming experience (programming assignments will be given in Python), a solid general CS background, basic notions of calculus, and basics of probability theory.
Please talk to the instructor if you are unsure whether your background is suitable or not for the course.
Grading will assigned based on the following weighting: 60% Homework, 25% Final exam, 15% Midterm exam. The final exam will consist of a written part plus the demonstration of a complex robot scenario that will require the integration of the major results from the homework completed during the course.
There is no required textbook for this class. The students should be able to learn everything from lecture handouts and homework and the additional material provided by the instructor. However, the following books will cover good parts of the course:
|8/20||Introduction, Road map|
|8/22||Representation of robot pose||Full pdf from 8/27||P. Corke book, Ch. 2 + Sec. 4.1|
|8/23||Lab: Introduction to ROS and Gazebo||Start with ROS (mandatory)|
|8/27||Pose transformations (continued)|
|8/29||(Non)Holonomic Robots, Wheeled robots, Kinematics||R. Siegvart et al. book, Ch. 2-3, Handbook of Robotics, Ch. 17 (Wheeled robots)|
|8/30||Kinematic constraints on wheels/actuators||R. Siegvart et al. book, Ch. 3|
|9/3||Eid al-Adha break|
|9/5||Eid al-Adha break|
|9/6||Eid al-Adha break|
|9/10||Degrees of maneuverability, DOFs, ICR||R. Siegvart et al. book, Ch. 3|
|9/12||Holonomy, DOFs, DDOFs, Kinematic equations|
|9/13||Kinematic equations, dead reckoning using odometry||Euler method, Runge-Kutta method (general overview slides on these two methods for numerical ODE integration, from Josh Thompson)|
|9/17|| Closed-loop motion control for mobile robots 1
Lab notes on reference frames in ROS
lab notes pdf
|P. Corke book, Sec 4.1.1, ROS Coordinate frames|
|9/19||Closed-loop motion control for mobile robots 2||P. Corke book, Sec 4.1.1, Practical intro to PID controllers, The math behind PID control|
|9/20||Feedback-based control, dynamic systems, linearization|
|9/24||Differential flatness, path and trajectory definition and following||Control theory approaches for wheeled robots|
|9/26||Reactive controllers, Behavior-based architectures, Navigation with obstacles||Dynamic Window Approach (DWA)|
|9/27||Potential fields for local path planning and navigation|
|10/1||Solving together the excercise set from homework 3|
|10/4||Sensors 2||R. Siegvart et al. book (1st ed.), Ch. 4|
|10/8||Robot lab session 1|
|10/10||Robot lab session 2|
|10/11||Robot lab session 3|
|10/17||Robot lab session 4|
|10/18||Robot lab session 5|
|10/22||Obstacle Avoidance, Local Maps|
|10/24||Kalman filter 1||
A short summary on multivariate Gaussian distributions (J. Templin)
Explaining KF (from IEEE Signal Processing magazine)
|10/25||Kalman filter 2|
|10/29||Extended Kalman Filters|
|10/31||Map building with EKF (known number of landmarks)|
|11/5||SLAM Properties, Data Association Problem|
|11/7||Data Association, Feature Extraction||R. Siegvart et al. book (1st ed.), Sect. 184.108.40.206|
|11/8||Road map to the final exam|
|11/12||ROS: RVIZ, TF|
|11/14||Bayesian filters: Particle Filters||Bayes filters, Particle filter|
|11/15||Path planning 1|
|11/19||Path planning 2|
|11/21||Multi-robot systems 1|
|11/22||Multi-robot systems 2|
|11/26||Lab: A full multi-robot stack (SLAM, Navigation, Planning, Task allocation)|
|11/28||Lab: A full multi-robot stack (SLAM, Navigation, Planning, Task allocation)|
|11/29||Summary + Q&A|
|12/7||Final Exam (8:30 - 11:30, Room 2051)|
|Homework 1: Basic use of ROS and Gazebo||homework-1.pdf||Aug 31, 2017|
|Homework 2: Reactive controller for robot navigation in ROS||homework-2.zip||Sep 17, 2017|
|Labwork 1: TurtleBot 2, basic use of sensors and actuators||labw1.pdf||October 10, 2017|
|Homework 3: Summary of topics so far||homework-3.pdf||October 13, 2017|
|Homework 4: Open-loop and Closed-loop motion control|| homework-4.pdf
Visualization node (show_path.py)
|Homework 5: Kalman filters for sensor fusion and pose estimation|| homework-5.pdf
Gazebo world file
|Homework 6: Path planning, Multi-robot systems||homework-6.pdf||November 30|
Homework is due on autolab by the posted deadline. Assignments submitted past the deadline will incur the use of late days.
You have 6 late days, but cannot use more than 2 late days per homework. No credit will be given for homework submitted more than 2 days after the due date. After your 6 late days have been used you will receive 20% off for each additional day late.
You can discuss the exercises with your classmates, but you should write up your own solutions. If you find a solution in any source other than the material provided on the course website or the textbook, you must mention the source. You can work on the programming questions in pairs, but theoretical questions are always submitted individually. Make sure that you include a README file with your andrew id and your collaborator's andrew id.
In general, for both assignments and exams, CMU's directives for academic integrity apply and must be duly followed.
The class includes both a midterm and a final exam. The midterm is set for October 11.
During exams students are allowed to consult 1-page cheatsheet
(written in any desired format).
|Gianni Di Carofirstname.lastname@example.org||Thursdays 2:30-3:30pm + Drop in at my office any time ...||M 1007|