Curriculum
Below you will find the proposed order of tutorials and exercises for the robotics section of the From-Code-to-Robot project.
0. Basics
This package contains some tutorials explaining how to use basic Matlab functions. Understanding these concepts is crucial for the following parts of the Robotics tutorial.
Matrix Manipulation
This tutorial explains how to setup and use matrices in MATLAB.
Symbolic Math Toolbox
This tutorial explains how to use symbolic variables in MATLAB.
Structures
This tutorial illustrates how to access different elements of a structure and how to work with them.
Cells
This tutorial illustrates how to access different elements of a cell and how to work with them.
Simulink
This tutorial explains the basics of Simulink
1. Modelling
This package explains the basics modelling a robot with the Robotic System Toolbox. It contains Tutorials to understand the concepts using the Symbolic Toolbox.
Transforms
This tutorial explains what a translation and rotation is, how they can be expressed in vectors and matrices and their combination as a homogeneous transform matrix. Additionally different rotation representations are explained.
Exercise 1.1 - Find the Transforms
In this exercise you will need to find different transformations to describe the relative pose of two frames.
Modelling with the Robotic System Toolbox
This tutorial explains how to setup a robot using the Robotic System Toolbox.
Exercise 1.2 - Modeling of a Robot
In this exercise you will setup a Universal Robot using the Robotic System Toolbox.
Exercise 1.3 - Find the DH parameters
In this exercise you will compute the DH parameters for an arbitrary robot manipulator and set it up using the Robotic System Toolbox
2. Kinematics
This package explains the relations between joint angles and resulting pose of endeffectors. Using this knowlege you will compute required joint angles for a desired pose and trajectories to move the joints in a controlled manner.
Forward Kinematics
This tutorial explains how to compute the resulting transformation of a manipulator given a joint configuration on the example of a Universal UR3.
Exercise 2.1 - Forward Kinematics
In this exercise you will compute the resulting transform for a given configuration using the Symbolic Toolbox and the Robotic System Toolbox.
Inverse Kinematics
This tutorial explains how to compute one or multiple solutions to the question, what joint angles are required to achieve a desired transformation.
Exercise 2.2 - Inverse Kinematic Planar Arms
In this exercise you will compute the inverse kinematic solutions for simple planar robots.
Exercise 2.3 - Inverse Kinematic Anthropomorpic arm with Spherical Wrist
In this exercise you will compute the analytical inverse kinematic solutions for an Anthropomorpic arm with Spherical Wrist using the techniques explained in the tutorial.
Joint Space Trajectory Planning
This tutorial explains how to compute a trajectory from one joint state to another using specific velocity profiles.
Exercise 2.4 - Joint Space Trajectory Planning
In this tutorial you will setup different functions to compute trajectories for single joint and complete manipulators. You will adjust the functions to fulfill specific requirements.
3. Differential Kinematics
This package explains the relation between joint velocities and cartesian velocities of the endeffector. Building on this knowlege you will learn how to setup a numerical inverse kinematic algorithm and learn about the manipulability of robots and what challanges occure.
Jacobians
This tutorial explains the computations of geometric and analytical Jacobian matrix using the Symbolic Toolbox. Additionally you will learn how to utilize the Robotic System Toolbox for the computations.
Manipulability
This tutorial explains if and with how much efford a robot can move in specific configurations. It will explain the concept of singularities and redundancy and showcase some examples in Rviz.
Exercise 3.1 - Jacobian
In this exercise you will setup functions to symbolically compute the geometric and analytical jacobians and calculate the required joint speeds to achieve a specific motion. You will visualize this motion in Rviz and will analyze how the manipulability and joint speeds change when being near a singular configuration.
Inverse Kinematic Algorithm
This tutorial explains two approaches on how to utilize the jacobians to setup a numerical inverse kinematic algorithm.
Exercise 3.2 - Inverse Kinematic Algorithm
In this exercise you will setup the pseudo inverse kinematic algorithm and analyze the convergence and error it procudes. You will use quaternions to compute the orientation error using the analytical jacobian.
Exercise 3.3 - Velocity Teleoperation
In this exercise you will simulate a robot and controll the endeffector with your keyboard by computing the required joint speeds.
4. Dynamcis
This package explains the relation between joint states, - speeds and - torques using the lagrange formulation. You will also learn how to estimate parameters of your robot given sufficient testing data, this allows you to approximate e.g. the weight or inertia matrices of your robot maipulator.
Dynamics Lagrange Formulation
This tutorial will explain what the different terms of the lagrange formulation are and how they are computed using the Symbolic Toolbox and the Robotic System Toolbox. Additionally a technique for the identification of linear dynamic parameters is presented.
Exercise 4.1 - Dynamic Term Computations
In this exercise you will setup functions to calculate the different terms of the lagrange formulation for an arbitrary manipulator using the symbolic toolbox.
Exercise 4.2 - Effort-Based Control using the Dynamic Model
In this exercise you will control a ur3e robot to hold a weight in different configurations using the physics simulation engine gazebo. You will compute the required joint torques to hold a weight using the lagrange formulation.
5. Control
This package explains differnet approaches to robotic control algorithms. E.g. centeralized and decenteralized control schemes.
Control Schemes
This tutorial explains the basic ideas behind different control schemes.
Exercise 5.1 - Threelink effort control using Symbolic Matrices
In this exercise you will control a threelink manipulator using an inverse dynamic algorithm. You will setup a control scheme in simulink using the symbolic matrtices you have computed in Exercise 4.1 and compute more efficient matrices to reduce the compuational load.
Exercise 5.2 - Threelink effort control using PD control and extenstions
In this exercise you will control a threelink manipulator using torque control and set up a PD control scheme that is augmented with additional terms theouout the exercise. Resulting in a PID+Gravity compensation
Exercise 5.3 - UR effort control using Robotic System Toolbox
In this exercise you will control a UR robot of your choice, using an inverse dynamic control scheme by utilizing the simulink blocks of the Robotic System Toolbox.
Exercise 5.4 - Universal Robots in task space using velocity control
In this exercise you will control a UR robot in task space using an inverse jacobian scheme.
Exercise 5.5 - Universal Robots in task space using effort control
In this exercise you will control a UR robot in task space using a centralized and decentralized scheme.
6. Capstone Project
Now you will combine your work from the Computer Vision and AI with your robotics knowledge, to detect and track a fruit and use it to teleoperate the robot.