Introduction to Robotics
An introduction to the modern, geometric treatment of robot manipulators. The course starts from rigid-body motion — rotation matrices, homogeneous transformations, orientation representations and exponential coordinates — and builds up twists, wrenches and the product-of-exponentials formulation of forward kinematics.
From there it covers Jacobians, statics and singularities, analytical and numerical inverse kinematics, velocity control in joint and task space, trajectory generation over SO(3) and SE(3), the dynamics of single rigid bodies and open chains, and torque, force and impedance control. A sequence of assignments builds a complete pick-and-place pipeline for a 7-DoF manipulator in simulation, and a weekly laboratory teaches ROS 2, taking students from their first nodes to running code on real robots.
- Lec. 1Introduction
- Lec. 2Transformations and Orientation Representations
- Lec. 3Twists, Exponential Coordinates and Wrenches
- Lec. 4Forward Kinematics & Introduction to Jacobians
- Lec. 5Differential and Inverse Kinematics
- Lec. 6Velocity Control and Introduction to Trajectory Generation
- Lec. 7Trajectory Generation
- Lec. 8Dynamics of a Single Rigid Body
- Lec. 9Dynamics of Open Chains
- Lec. 10Dynamics in the Task Space and Force Control
The laboratory teaches ROS 2, the middleware used on most research and industrial robots, from first principles up to running code on real hardware. Sessions run in two alternating teams, and each builds on the previous one: from nodes, topics and Raspberry Pi electronics, to visualizing, simulating and finally driving real robots.
Lab instructors: Lampros Printzios & Konstantinos Asimakopoulos (PhD students)
- Nodes, topics, services and custom interfaces
- Packages, parameters and launch files
- Raspberry Pi LED circuits controlled from ROS 2
- Describing robots with URDF/xacro
- Publishing joint states and robot state
- RViz displays and RQt plugins
- Modeling the lab’s double pendulum
- Streaming camera images into ROS 2
- Reading the double pendulum’s joint encoders
- Visualizing a real robot’s state and trajectory in RViz
- Simulating robot models in Gazebo and MuJoCo
- Connecting simulators to ROS 2
- Running the same ROS 2 stack in simulation and on hardware
- Deployment on the lab’s robots
Slides for each lecture, grouped by teaching week.
- Introduction to Robotics
- What is a robot?
- Configuration space
- Task space
- 2D Rigid Body Motion
- 2D Rotation Matrices
- 3D Rigid Body Motion
- 3D Rotation Matrices
- Homogeneous Transformations
- Orientation Representations
- Angular Velocity
- Exponential Coordinates for Rotations
- Examples
- Twists
- Screw Axes
- Exponential Coordinates for full transformation matrices
- Wrenches
- Forward Kinematics
- URDF
- Product of Exponentials for FK
- Intro to Jacobians
- Jacobians
- Statics
- Singularity Analysis
- Inverse Kinematics
- Analytical Solutions (briefly)
- Numerical Inverse Kinematics
- Inverse Kinematics via Optimization
- Control in Velocity
- Single Joint Control
- Multiple Joint Control
- Task-space Control
- Jacobian Pseudo-inverse
- Trajectory Generation
- Point-to-point motions
- Trajectory Generation over SO(3)
- Trajectory Generation over SE(3)
- Dynamics of a single rigid body
- Newton-Euler Dynamics
- Inertia Matrix
- Steiner's Theorem
- Statics
- Change of Frame
- Dynamics of Open-Chain Robots
- Lagrangian Formulation
- Newton-Euler Dynamics
- Forward Dynamics
- Inverse Dynamics
- Closed-form solutions
- Torque/Force Control
- Single Joint Force Control
- Multiple Joint Force Control
- Task-space Force Control
- Impedance Control