introduction into robotics


The course covers fundamentals of robotics including rigid motions; homogeneous transformations; forward and inverse kinematics; velocity kinematics; motion planning; trajectory generation; sensing, vision; control. The overall goals and course objectives, here.

who, when, where

lecture: Tu-Th, 12:30-1:50pm ECE1015. (videos are here; to view them you need to log in. you can also subscribe to the channel.)

labs will be held in ECEB 3071. Labs will start the second week of class. The lab website:

homework etc will be submitted on gradescope (entry code E7JKR3).

we will be using canvas for the course administration, discord channel for informal exchanges.


  • 8.23 (Tu) introduction. overview of the course. annotated lecture slides.
  • 8.25 (Th) linear algebra review. quiz 1. annotated notes
  • 8.30 (Tu) lecture is online only! view on the class media channel. configuration spaces, dof. Mod. Rob. Ch 2 annotated notes
  • 9.01 (Th) more configuration spaces. velocity constraints. quiz 2. MR chapter 2. annotated notes.
  • 9.06 (Tu) holonomic and non-holonomic constraints. rigid body motion mr 3.1-2.
  • 9.08 (Th) rotations, matrix exponentials and logarithms. mr 3.1-2. annotated notes
    homework 1 (submit on gradescope)
  • 9.13 (Tu) Rodrigues formula. homogeneous coordinates. twists. annotated notes. mr 3.3
  • 9.15 (Th) twists and screws annotated notes mr 3.3.
  • 9.20 (Tu) Forward Kinematic Map: Product of Exponentials (PoE) annotated notes mr 4.1-4.2,
  • 9.22 (Th) map in body frame; Denavit-Hartenberg. annotated notes mr 4.1-2, App C
    homework 2 on gradescope.
  • 9.27 (Tu) Velocity Kinematics mr 5.1-5.2
  • 9.29 (Th) Velocity Kinematics. quiz 4. annotated notes mr 5.1-5.2
  • 10.04 (Tu) review session
  • 10.06 (Th) exam 1: during the class time (12:30-1:50pm), either in ECEb1015 or by zoom. Information here.
  • 10.11 (Tu) Inverse Kinematics: analytic, annotated notes mr 6.1
  • 10.13 (Th) inverse Kinematics: numeric, annotated notes mr 6.2
  • 10.18 (Tu) Statics and Kinematics of Closed Chains annotated notes Mr 7.1, 7.2
  • 10.20 (Th) Project Day
    homework 3 on gradescope.
  • 10.25 (Tu) elements of Dynamics, annotated notes mr 8.1
  • 10.27 (Th) dynamics, cont’d. Introduction to Robot Control annotated notes mr 11.1,11.2
  • 11.01 (Tu) Introduction to Robot Control, cont’d annotated notes mr 11.3,11.4
    homework 4 on gradescope
  • 11.03 (Th) Introduction to Robot Control, cont’d annotated notes mr 11.3,11.4
  • 11.08 (Tu) election day, no lecture: go vote!
  • 11.10 (Th) trajectory generation annotated notes mr 9
  • 11.15 (Tu) motion planning Mr 10.1-10.2
  • 11.17 (Th) motion planning, cont’d annotated notes
  • 11.22 (Tu) FALL BREAK
  • 11.24 (Th) FALL BREAK
  • 11.29 (Tu) exam 2 during the class time (12:30-1:50pm), either in ECEb1015 or by zoom. Information here.
  • 12.01 (Th) in-class presentations
  • 12.06 (Tu) in-class presentations
  • 12.08 (Th) wrap-up
  • Linear algebra review
  • Degrees of freedom, configuration space
  • Rigid body motion, transformations, screw theory
  • Forward Kinematics
  • Velocity Kinematics
  • Inverse Kinematics
  • Dynamics
  • Robot Control
  • Motion Planning


  • lectures are streamed synchronously and posted on mediaspace.
  • labs will be held in ECEB 3071. Labs will start the second week of class. The lab website:
  • prerequisites: readiness to code in MATLAB, or python. Some analytic maturity: basic linear algebra, calculus, and elements of probability.
  • required text: Modern Robotics, Lynch and Park, Cambridge University Press, 2017,
    suggested text: Probabilistic Robotics, Thrun, Burgard, and Fox, MIT Press, 2005,
  • grading:
    • exams = 35% (17.5% each)
    • HW = 20%: written assignments to be submitted via Gradescope on Fridays by 8pm CT.  There will be around 6 homework assignments; no homework will be dropped. For one week after the deadline, you may submit a late assignment for up to 50% credit.
    • Lab = 20%: weekly laboratory sessions. Attendance is required. You will work in groups to do in-lab activities, will show in-lab demos to your TA, and will submit reports via gradescope.
    • Project = 20%: small teams (up to 4 members) will work on a project where you will simulate a robot (of your choice) to complete some task (of your choice). You’ll be asked to integrate each topic of the course into your robot pipeline (concrete details to be provided on the website) and put together a compelling pitch to “sell” your intelligent robot. Every few weeks there will be a checkpoint (referred to as a project update), to make sure you’re making progressing and implementing course content.  At the end of the semester, you’ll give a short presentation to the class and submit a final report.
    • quizzes = 5%
  • there will be no dropped homework or quiz allowances. However, in justified cases (doctor note, dean of students letter or similar documents will be required) missed quiz, homework or test will be replaced by the average of the student’s scores. Not applicable to the final project.
  • The final grades weren’t curved, but the thresholds shifted thusly: A>85>B>79>C>69>D>60>F.
    Altogether there were 37 As, 17 Bs, 10 Cs and 5 Ds.


You will be tasked with coming up with a fun problem setting (e.g., what objects will you be working with? why is it an important (or fun) application?) and creating a dynamic simulation (i.e., a simulation of real physics like Gazebo), in which at least one robot effectively executes an interesting pick and place task. You may use your preferred simulator and language, and you are encouraged to use existing robot and object models. All of the code that controls the robot (e.g., forward kinematics, inverse kinematics, path planning, etc.) must be your own; however, you are encouraged to explore the open-source robotics community for ideas and to build on previous work, as long as you give credit to code bases you use or take inspiration from.

You are free to explore simulation options (e.g., Gazebo, Webots, CoppeliaSim), but we encourage you to use Gazebo, an open-source simulator that integrates with ROS. We will provide a simple Gazebo simulation that mirrors the labs may be used as a starting point. Note that the course staff will help you conceptually design your system and help you with the fundamentals, but they will not provide debugging support. This assignment is meant to encourage exploration and help you practice unguided project development, and you will be assessed and graded with that in mind.

Schedule your slot here


Your project grade will be computed as follows:

– 20% project updates — detailed below. Each update is equally weighed.
– 20% final project video / presentation
– 50% final report (due during finals)
– 10% peer evaluation on perceived difficulty and teamwork


For each project update, you’ll be asked to submit (1) your current codebase for the TAs to run, (2) a well-written readme, (3) a short description of your progress, and (4) a video uploaded to youtube demonstrating the deliverable.

You’ll be graded on the following (if applicable): (1) Was the update submitted on time? (2) Is your codebase and readme in good shape? (3) Does your video show the deliverable?

The deadlines for submission will be kept up to date on the Important Dates page.

Project Update 0

Form a team and tell us about a task you’d like your robot to perform.
Deliverable: Submit a 1pg pdf on Gradescope with your team name, list of team members, and one paragraph about what pick and place challenge you’d like to implement.

Project Update 1

Show us that you can interface with your simulator, that you can move the robot, and that you can access some sensor measurements.  Check to make sure that your original project plan seems testable in the simulator environment you’ve chosen.
Deliverable: Submit a max 2pg pdf on Gradescope with your team name, list of team members, and an update to your project based on what you think is feasible.  Provide a link to (1) your current codebase for the TAs to review, including a well-written readme, and (2) a video uploaded to youtube demonstrating that you can use your simulator, move the robots, and access the sensors.

Project Update 2 (recently combined with update 3!)

Demonstrate that you can detect the objects of interest and understand the forward kinematics of your robot. You should be close to integrating inverse kinematics, decision making, and planning. Try to be able to pick and place at least one item. Update us on the status of your project and let us know what the major roadblocks are for you achieving your goal.
Deliverable: Submit a max 2pg pdf on Gradescope with your team name, list of team members, and an update to your project based on what progress you have made for detecting the objects you will be picking up as well as a description of the model of your robot (i.e., can you describe the kinematics of your robot?). You should be able to move your robot to the object of interest and start working on grasping. Provide a link to (1) your current codebase for the TAs to review, including a well-written readme, and (2) a video uploaded to youtube demonstrating that you have made progress towards your goal.

In class presentations

During the last full week of class, you and your team will show a three-minute video to the class of your project along with a short elevator pitch for your proposed challenge.

In the video, you must (1) describe/motivate your problem, (2) show a quick demo of what you have thus far, (3) give a short description of challenges / what you plan to finish (as applicable), and (4) a blooper (if time)

You will be graded by your peers on the following criteria:

  • Difficulty rating for the group size
  • Video quality
  • Project creativity

Submission link is on the Important Dates tab.

Final report

Summarize what you accomplished, the technical details that power your robot, and what you learned.

Your report will be submitted via Gradescope. You will be asked to submit typed responses and/or files for the following questions:

  1. Team and Links: Provide a list of your team members and NetIDs; your team name; link to your Github; and link to your final video
  2. Introduction: Provide brief motivation for your pick and place application, conveying why this is an important (or fun) task. Also provide a brief summary of the approaches you used.
  3. Task Description: Give a detailed description of your task and robot pipeline. Include specifications and design choices you made to make the task easier. Provide a block diagram that shows the different components of your system (e.g., perception/sensing, planning, grasping/picking). Describe how you implemented all of the different components in your system (e.g., how did you model your system? how did you implement inverse kinematics? what planner did you use?). If you built off of existing codebases, please give credit to the original authors.
  4. Experimental Setup: Carefully describe your simulator setup, both in terms of the environment design and the robot. Summarize how you generated scenarios to test and gather results (e.g., did you randomly generate blocks to be sorted? how did you control for difficulty).
  5. Data and Results: Describe how you measured the success of your robot (i.e., what metrics did you use?). Analyze the data you collected, providing quantitative metrics (e.g., success rates, error analysis, etc), and qualitative examples of success and/or failures you encountered (e.g., describe the behavior and show a few examples). Provide at least one plot illustrating your robot’s performance. Include an error analysis and discussion of sources of error. Characterize under what conditions your system performs well, and under what conditions your robot fails. Summarize what you varied when testing your robot. In particular: What parameters did you vary to get things to work? What are the tradeoffs made in your design?
  6. Summary and Challenges: Briefly summarize your project and what you found. Discuss what you learned, as well as some challenges you encountered (if any). Tell us what you would do differently if you were to attempt this project again and/or had more time.

There is no page limit to this report, but please try to keep it as concise as possible.

due dates

  • homework 1: released on Thursday, 9.8, due on Thursday 9.15.
  • project update 0: due by Tuesday 9.13.
  • homework 2: released on Thursday, 9.22, due on Thursday 9.29.
  • project update 1: due by Sunday 10.16.
  • homework 3: released on Thursday, 10.20, due on Thursday, 10.27.
  • homework 4: released on Tuesday, 11.1, due on Wednesday, 11.9.
  • homework 5: released on Thursday, 11.10, due on Thursday, 11.17.
  • project update 2: due by Sunday 11.20.
  • homework 6: released on Friday, 11.25, due on Sunday, 12.4.


Academic Integrity

The University of Illinois at Urbana-Champaign Student Code should also be considered as a part of this syllabus. Students should pay particular attention to Article 1, Part 4: Academic Integrity. Read the Code at the following URL:

Academic dishonesty may result in a failing grade. Every student is expected to review and abide by the Academic Integrity Policy: Ignorance is not an excuse for any academic dishonesty. It is your responsibility to read this policy to avoid any misunderstanding. Do not hesitate to ask the instructor(s) if you are ever in doubt about what constitutes plagiarism, cheating, or any other breach of academic integrity.

Emergency Response Recommendations

Emergency response recommendations can be found at the following website: I encourage you to review this website and the campus building floor plans website within the first 10 days of class.

Sexual Misconduct Reporting Obligation

The University of Illinois is committed to combating sexual misconduct. Faculty and staff members are required to report any instances of sexual misconduct to the University’s Title IX Office. In turn, an individual with the Title IX Office will provide information about rights and options, including accommodations, support services, the campus disciplinary process, and law enforcement options.

A list of the designated University employees who, as counselors, confidential advisors, and medical professionals, do not have this reporting responsibility and can maintain confidentiality, can be found here:

Other information about resources and reporting is available here:

Religious Observances

Illinois law requires the University to reasonably accommodate its students’ religious beliefs, observances, and practices in regard to admissions, class attendance, and the scheduling of examinations and work requirements. You should examine this syllabus at the beginning of the semester for potential conflicts between course deadlines and any of your religious observances. If a conflict exists, you should notify your instructor of the conflict and follow the procedure at to request appropriate accommodations. This should be done in the first two weeks of classes.

Disability-Related Accommodations

To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, you may visit 1207 S. Oak St., Champaign, call 333-4603, e-mail or go to If you are concerned you have a disability-related condition that is impacting your academic progress, there are academic screening appointments available that can help diagnosis a previously undiagnosed disability. You may access these by visiting the DRES website and selecting “Request an Academic Screening” at the bottom of the page..

Family Educational Rights and Privacy Act (FERPA)

Any student who has suppressed their directory information pursuant to Family Educational Rights and Privacy Act (FERPA) should self-identify to the instructor to ensure protection of the privacy of their attendance in this course. See for more information on FERPA.

covid 19

Vaccines: All students, faculty and staff are required to be fully vaccinated with a university-accepted COVID-19 vaccine. Learn more about the vaccine requirement.

Student location address You should insert and/or update your “Student Location” in Student Self-Service every time your living location changes. Typically, this is at the beginning of each academic year but could change throughout the year. 
Maintaining updated location information enables campus health and wellness units to communicate proper protocols to students that will help us all maximize safety during the pandemic.

Feeling ill and absences: Students need to take responsibility for checking their symptoms every day. Students who feel ill must not come to class. 
In addition, students who test positive for COVID-19 or have had an exposure that requires testing and/or quarantine must not attend class. The University will provide information to the instructor, in a manner that complies with privacy laws, about students in these latter categories. These students are judged to have excused absences for the class period and should contact the instructor via email about making up the work.    

Run > Hide > Fight

Emergencies can happen anywhere and at any time. It is important that we take a minute to prepare for a situation in which our safety or even our lives could depend on our ability to react quickly. When we’re faced with almost any kind of emergency – like severe weather or if someone is trying to hurt you – we have three options: Run, hide or fight.

Run: Leaving the area quickly is the best option if it is safe to do so. Take time now to learn the different ways to leave your building. Leave personal items behind. Assist those who need help, but consider whether doing so puts yourself at risk. Alert authorities of the emergency when it is safe to do so.

Hide: When you can’t or don’t want to run, take shelter indoors. Take time now to learn different ways to seek shelter in your building. If severe weather is imminent, go to the nearest indoor storm refuge area. If someone is trying to hurt you and you can’t evacuate, get to a place where you can’t be seen, lock or barricade your area if possible, silence your phone, don’t make any noise and don’t come out until you receive an Illini-Alert indicating it is safe to do so.

Fight: As a last resort, you may need to fight to increase your chances of survival. Think about what kind of common items are in your area which you can use to defend yourself. Team up with others to fight if the situation allows. Mentally prepare yourself – you may be in a fight for your life.

Please be aware of people with disabilities who may need additional assistance in emergency situations.

Other resources: for more information on how to prepare for emergencies, including how to run, hide or fight and building floor plans that can show you safe areas. to sign up for Illini-Alert text messages.