Industrial Robotics
Assignment - 1
17 October 2025
Exercise 1
Write a clear explanation of how an arbitrary rotation vector ω = ˆωθ˙ can be employed to represent a general Rotation Matrix: in doing so, make sure to use your own drawings/schematics and mathemat-ical steps and clarify why this type of representation would be more effective than using compounding of rotation matrices to represent an arbitrary orientation. Then solve the following exercises:
1. the Rotation Matrix Rsb
(1)
can be achieved equivalently by using both the compounding of 3 elementary rotations in the order
(2)
as well as by performing the matrix exponential:
(3)
explain the steps to compute α, β, γ, ˆω, θ.
2. write and upload a Matlab code (make sure to include comments in the code to explain what each command is doing) that solves the problem in exercise 1.1 and then plots in the same figure: (a) Rsb in blue from eq. 1, (b) Rsb in red from eq. 2, (c) Rsb in green from eq. 3 and (d) the vector ˆω. Explain the steps of the Matlab code in your report and show the final figure. Are there any differences between the rotation matrices obtained?
3. write and upload a Matlab function called extract_element.m, such that:
[a,b,c,d,e] = extract_elements(R)
the function takes as input any rotation matrix and outputs the parameters α, β, γ, ˆω, θ. Make sure to show a few examples in your report to demonstrate that your function works well.
Exercise 2
In Fig. 1 you can see a typical scenario where different robots are cooperating and need to be controlled together. In the scene depicted you can see a depth camera mounted on a flying drone, identified by frame. {d}, a humanoid robot {r} with its own manipulator and gripper identified by frame. {g} and a box {b} on top of which sits a bottle {m}. The fixed reference frame. is {s}. The drone inspects the scene by using its own depth camera, which can capture position and orientation of most of the objects in the space. The robot uses the information from the drone to grab the bottle located on the box.
Figure 1: (From exercise 2) Schematics of a scenario where a drone and a humanoid robot are cooper-ating. The drone monitors the scene with a depth camera in order to provide accurate positions and orientation of the robot and the box. The robot uses the positional information from the drone to reach the bottle.
Starting from the fixed frame.
(4)
you are given:
• the pose of the drone with respect to the fixed frame.
(5)
• the pose of the robot with respect to the drone:
(6)
• the pose of the box’s corner with respect to the drone:
(7)
• the pose of the robot gripper with respect to the robot head:
(8)
• and finally, because the drone’s camera cannot see the bottle, you only know that the bottle grasping point is identified by a reference frame. located a distance a = (0.8, 0.6, 0.3) from frame. {b} and rotated -175◦ with respect to {b}.
You are required to:
1. write the pose of the bottle Tsm
2. write the homogeneous transformation matrices Tsr, Tsg and plot them with Matlab together with Tsb and Tsm (include a clear figure in your report).
3. compute the Euler angles (ϕ, ψ, ξ) from the sequnce ZY Z and the roll, pitch, yaw angles (α, β, γ) of the flying drone and test whether your calculation is correct by using Matlab: explain your code and your reasoning in the report to demonstrate that the calculations are correct,
4. finally, you want to control the robot gripper {g} to grasp the bottle {m} performing the trans-formation Tgm; show the calculation and explain the procedure. How can you verify if the result is correct? demonstrate that your results are right by using Matlab calculations and explaining your reasoning.
Exercise 3
You are given an initial frame. {s} and a Screw Axis S1 (expressed with respect to {s}) defined by a unit axis rotation vector ˆω1 = (0.4082, 0.8165, 0.4082), a vector q1 = (1.0, 1.0, 0.5) and a screw pitch h = 1. Solve the following exercises:
1. verify whether ˆω1 is a unit vector, if it is not, make sure to extract the unit vector from it,
2. provide detailed written explanation on how you compute the new pose {b} of the original frame. {s} after a rotation θ = 250◦ around screw axis S1. Explain clearly the various passages required to compute S1 and Tsb and write (and upload) a Matlab program that can perform. the calculation and plot the final configuration of {b}.
3. compute and plot the pose of {b} at five intervals for θ = 50◦
, 100◦
, 150◦
, 200◦ between the initial and final configuration in order to visualize the various stages during the transformation Tsb.
4. finally write a Matlab function called drawMatrixExp.m that, given a screw axis Ss defined in the fixed reference frame. {s}, an angle of rotation θ and a HTM Tsb which defines a different reference frame. {b}, computes the new configuration Tsc of reference frame. {b} after it has rotated and translated around Ss and automatically plots {s}, {b} and {c} (i.e the plotting commands must be included in the function).
The function should be executed in Matlab by running the following command:
Figure 2: (From exercise 4) Schematic of 3RP planar manipulator.
Figure 3: (From exercise 4) Example demonstration of how you should plot (a) a trajectory of the end-effector, (b) the end-effector coordinates and (c) the joint angles, during a time-varying forward kinematic task.
[Tsc] = drawMatrixExp(S,theta,Tsb)
In the document you should explain how this function works step by step and prove that it works by performing a number of tests.
Exercise 4
With reference to Fig. 2, the schematics shows a 3RP planar manipulator defined by 3 consecutive rotational joints and one prismatic joint where L1 = 0.2m, L2 = 0.3m, L3 = 0.15m and L4 = 0.1m. The angles θ1, θ2, θ3 respectively belong to joint-1, joint-2 and joint-3 while θ4 defines the linear elongation of prismatic joint-4. Only the reference frames attached to the base joint and the end-effector are prescribed, the other ones are based on your own choice. Solve the following exercises:
1. derive and explain each passage to compute the forward kinematic of this kind of manipulator using pure geometrical reasoning (i.e only using Homogeneous Transformation Matrices), make sure to draw a schematics that demonstrates how you assign reference frames,
2. derive and explain each passage to compute the forward kinematic of this kind of manipulator using Screw Theory (in this case treat joint 4 as a screw with pitch h4 = 1), make sure to draw the schematics that shows the screw axes,
3. following the solution with Screw Theory, write a Matlab code that solves the Forward Kinematic and draws the workspace when θ1 = 15◦
, θ2 = 30◦
, −90◦ ≤ θ3 ≤ 90◦ and 0.0m ≤ θ4 ≤ 0.4m. Make sure to plot the results in a professional and readable manner,
4. solve the Forward Kinematic with both the geometrical method and the screw theory method and draw the full workspace in both cases when the joint angles are allowed to span every possible angle, i.e. 0◦ ≤ θ1, θ2, θ3 ≤ 360◦ and 0.0m ≤ θ4 ≤ 0.3m; make sure to compare the results from the two methods and evaluate whether they differ in any way,
5. finally use Matlab to solve the Forward Kinematic when the joints are commanded to rotate and translate with the following angular and linear velocities: θ
˙
1 = 0.2 rad/s, θ
˙
2 = 0.3 rad/s, θ
˙
3 = 0.1 rad/s and θ
˙
4 = 0.01 m/s (notice that θ
˙
4 is a linear velocity). Present the trajectory of the end-effector in its plain of motion during an interval of 20 seconds, as well as a time history of the joint values (angular and linear) and end-effector positions, as demonstrated in Fig. 3.
Figure 4: (From exercise 5) An RRPRRR serial spatial manipulator.
Exercise 5
Given a spatial manipulator of type RRPRRR, such as the one shown schematically in Fig. 4, in the home configuration. You are required to solve the Forward Kinematics with the Product of Exponential method. Write a detailed explanation of the process of derivation of the screw axes and the equations involved, noticing the arrangement of the end-effector reference frame. Then, assuming L0 = 0.05m, L1 = 0.1m, L2 = 0.25m, L3 = 0.2m, L4 = 0.3m, L5 = 0.15m, L6 = 0.2m and L7 = 0.2m, write and upload a Matlab program to solve the following problems:
1. present the results of the forward kinematic when θ1 = 20◦
, θ2 = 0◦
, θ3 = 0.1m (with a pitch h3 = 1), θ4 = 90◦
, θ5 = −45◦
, θ6 = 90◦
; you should show the whole structure of the manipulator and the reference frames of the end-effector,
2. compute and draw the Workspace assuming all revolute joints can rotate 180◦ and the prismatic joint can have a range of linear motion 0.0 ≤ θ ≤ 0.2 m. Make sure to present the results in a professional manner, ensuring that the shape of the Workspace can be visualized properly;
3. compute the trajectory of the end-effector during a motion of t = 10 sec in the case where θ
˙
1 = 8◦/s, θ
˙
2 = 2◦/s, θ
˙
3 = 0.03m/s, θ
˙
4 = 5◦/s, θ
˙
5 = 0◦/s, θ
˙
6 = 0.0
◦/s and plot both the three-dimensional path of the end-effector as well as the evolution of the end-effector position in time, similarly to the one previously shown in Fig. 3.