Teaching > ECE470S
ECE470S - Robot Modelling and Control (Winter 2025)
Calendar Description
3/1.50m/1m/0.50
III,IV-AECPEBASC, III,IV-AEELEBASC,
IV-AEESCBASER,
IV-AEESCBASET,
IV-AEESCBASEZ
Classification of robot manipulators, kinematic modeling, forward and
inverse kinematics, velocity kinematics, path planning, point-to-point
trajectory planning, dynamic modeling, Euler-Lagrange equations,
inverse dynamics, joint control, computed torque control,
passivity-based control, feedback linearization.
Prerequisite: ECE311H1 or ECE356H1
Exclusion: AER525H11
Graduate Attributes
- Problem analysis:
- Demonstrate the ability to formulate and interpret a model
- Demonstrate the ability to execute solution process for an engineering program/li>
- Investigation:
- Demonstrate the ability to use critical analysis to reach valid conclusions supported by the results of the plan
- Use of Engineering tools:
- Demonstrate ability to use discipline specific techniques, resources and engineering tools
- Show recognition of limitations of the tools used
Reference: UofT Engineering Graduate Attributes Poster
Learning Objectives
This course gives a thorough coverage of the five foundational problems of manipulator robotics:
- The forward kinematics problem: How to compute the position and orientation in space of the robot's end effector as a function of the robot's joint variables (angles or displacements of each link)
- The inverse kinematics problem: The converse of the forward kinematics problem: given a desired position and orientation of the robot's end effector, determine the corresponding (generally non-unique) joint variables.
- The motion planning problem: Using the artificial potential method, determine reference signals for the robot's joints making the robot transition between desired initial and final configurations, while avoiding obstacles.
- Robot dynamics: Using the Euler-Lagrange equations, determine the equations of motion of a robot in an algorithmic fashion.
- Robot control: Given reference signals for the joint variables of the robot originating from the solution of the motion planning problem, design feedback control loops making the robot joint variables asymptotically approach the reference signals.
Instructor
M. Maggiore
GB344
maggiore (at)
control.utoronto.ca
Teaching Assistants
Saima Ali | saiima.ali (at) mail.utoronto.ca |
Liza Babaoglu | liza.babaoglu (at) mail.utoronto.ca |
Lukasz Jagodzinski | lukasz.jagodzinski (at) mail.utoronto.ca |
Bokai Shang | bokai.shang (at) mail.utoronto.ca |
Emily Vukovich | emily.vukovich (at) mail.utoronto.ca |
Lectures
Mon 10-11 | MC254 |
Tue 12-13 | GB119 |
Wed 9-10 | SF1101 |
Composition of Final Mark
Labs | 20% |
Homework Assignments | 5% |
Midterm Exam | 25% |
Final Exam | 50% |
Textbook
Spong, Hutchinson, Vidyasagar, Robot Modeling and Control, Wiley, 2006 or alternatively, the second edition of this book, published in 2020.
Note: previous versions (pre-2006) of this text cannot be used for this course.
Additional Reference Texts
- P. Corke, Robotics, Vision and Control, Springer, 2nd ed., 2017
- J.J. Craig, Introduction to Robotics, Modeling and Control, Prentice Hall, 3rd ed., 2005
Course Outline
- Classification of robotic manipulators and common kinematic arrangements
- Rigid motions
- Rotations, rotational transformations, and their parametrizations
- Composition of rotations
- Homogeneous transformations
- Forward and inverse kinematics
- Kinematic chains and forward kinematics
- Denavit-Hartenberg convention
- Inverse kinematics
- Velocity kinematics
- Angular velocities; addition of angular velocities; linear velocities
- Geometric and analytical Jacobian
- Static relationship between end effector forces and joint torques
- Inverse velocity and acceleration
- Kinematic singularities
- Path planning using artificial potential fields
- Independent joint control
- Dynamics
- D'Alembert-Lagrange principle and Euler-Lagrange equations of motion
- Kinetic and potential energies of a robot
- Equations of motion of a robot
- Nonlinear control of robot manipulators
- PD control with gravity compensation
- Feedback linearization
- Adaptive passivity-based control
Calendar of deliverables
Deliverable | Due date |
---|---|
Assignment 1 | Jan 27 |
Assignment 2 | Feb 3 |
Assignment 3 | Mar 3 |
Midterm test | Mar 7 |
Assignment 4 | Mar 26 |
Assignment 5 | Apr 7 |
The calendar above does not contain lab deliverables. The dates of these will depend on the practical section you are in. See the Assignments section of Quercus for these deadlines.
Late Submission Policy for Homework Assignments
We do not accept late online submissions, under any circumstance. We do not accept submissions via email. This policy is strictly enforced for labs and assignments. A late submission will receive a mark of 0.
If you deem it unavoidable to submit a deliverable after the deadline, you need to contact the instructor before the deadline of the deliverable, explain the circumstances surrounding the expected delay, and check whether or not the instructor gives you permission to submit late. In the absence of such an advance permission, the policy above applies.
Midterm Exam
Date/Time | Room |
---|---|
Friday, March 7, 6-8PM | BA1130 |
Tutorials
Section | Day and Time | Dates |
---|---|---|
TUT101 and TUT102 | Thu 4-5PM, BA1220 | weekly starting on Jan 9 |
Homework Assignments
There are five homework assignments posted on Quercus. The first four assignments are taken from the textbook. You need to use the 2006 or 2020 editions of this text, as previous versions of the book contain different exercises. Each submission will be given full credit (1 out of 1), independently of its correctness, provided that it is clearly legible and complete. Poorly written or incomplete assignments will not be given credit. We will not post solutions of the assignments, but the most interesting/challenging problems will be solved in tutorials.
Laboratories (BA3114)

You will perform five labs in this course. The lab documents are posted on Quercus. The experimental setup used in the lab is the Kuka robot in the figure.
Lab 0 familiarizes you with the KUKA robot and safety procedures to work with it. Lab 1 is Matlab-based. In it, you'll write Matlab code implementing forward and inverse kinematics for a PUMA560 manipulator. Lab 2 is hardware-based, and it deals with the Kuka robot depicted in the figure. You will first familiarize yourself with safety procedures and learn how to manually move each of the robot axes. Then, you will adapt the code you've developed in Lab 1 to run on the actual Kuka robot. Using this adapted code, you will make the Kuka robot draw patterns on paper. Lab 3 is Matlab-based. You will write Matlab code for motion planning of a PUMA560 manipulator. Lab 4 is hardware-based. You will adapt the Lab 3 code for implementation in the actual Kuka robot. First, you'll make the robot pick up an object and drop it at a different location, while avoiding two large obstacles. Then, in a creative development phase, you'll develop your own motion planning algorithm making the Kuka robot perform more complex maneuvers.
All labs will be run in BA3114. Attendance is mandatory, and there are no make-up labs. Labs are performed in groups of two or three students. You will form groups at the beginning of Lab 0.
All labs, except lab 0, require a preparation. Each lab group submits the preparation on Quercus at least 48 hours before the beginning of the lab. After the lab is completed, each lab group submits their code, photos and videos (as applicable) on Quercus.
Section | Day and Time | Lab 0 | Lab 1 | Lab 2 | Lab 3 | Lab 4 |
---|---|---|---|---|---|---|
PRA0101 | Tue 9AM-12PM | Jan 21 | Feb 4 | Feb 25 | Mar 11 | Mar 25 |
PRA0102 | Tue 9AM-12PM | Jan 28 | Feb 11 | Mar 4 | Mar 18 | Apr 1 |
PRA0103 | Fri 3-6PM | Jan 24 | Feb 7 | Feb 28 | Mar 14 | Mar 28 |
PRA0105 | Wed 12-3PM | Jan 22 | Feb 5 | Feb 26 | Mar 12 | Mar 26 |
Lab policies
- Labs 1-4 are graded according to the following marking scheme:
- Preparation: 3 points
- Code: 5 points
- In-lab performance: 2 points. The preparation and code component of the grade is assigned to the group, while the in-lab performance component is assigned individually to each student.
- Attendance of Lab 0 is mandatory. Students who fail to attend it will not be given access to the hardware labs, lab 2 and 4.
- We do not accept requests to manually switch a student to a different practical section. Any section switch must occur through ROSI.
- If you fail to attend a lab, only your preparation will be graded so your maximum grade for the lab will be 3/10.
- Labs 1-4 have a preparation. Each group must submit one preparation at least 48 hours before the beginning of their lab session. Late submissions will receive a penalty of 50% of the preparation grade (i.e., 1.5 points).
- It is essential that you arrive in time at the lab. Late arrivals will be subject to a penalty of 1 point.