0% found this document useful (0 votes)
10 views6 pages

METR4202_PS1_v1.2(1)

Uploaded by

songpengyuan123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views6 pages

METR4202_PS1_v1.2(1)

Uploaded by

songpengyuan123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

METR4202 – Robotics and Automation

METR4020 – Robotics & Automation


Problem Set 1
This assignment is worth 15% of your final grade
Due date: Friday, 11.09.2020 (23:59hrs.)
Submission method: Files upload via Blackboard Test

Objective
The objective of this Problem Set 1 is designed to test your understanding on the topics covered in W1-W5 on
Degrees of Freedom, Rigid Body Motions, Forward and Inverse Kinematics.

Instructions
This is an open book assessment– all materials permitted. The use of MATLAB is required for this assessment.
Beware that this is an individual assessment and normal academic integrity rules apply.
When problems require the use of software, you are required to document the process within your submitted
typed responses (i.e. show snippets of your code instead of 'this was found using Matlab'). Also, you will be
required to submit your code.
You will be required to upload a single PDF per Problem within the corresponding File Upload question in
Blackboard.
Software files should be organized per problem, for example one folder containing code for Px, another folder
for Py, etc. Make sure you name the files and comment your code appropriately. Folders should be compressed
and submitted as a single ZIP file in the appropriate File Upload question

There are 100 marks in total (+15 extra marks)

Updates and Corrections


• DH Table has been corrected.

1/6
METR4202 – Robotics and Automation

Problem 1 – Degrees of Freedom [15 points]


The dragonfly robot shown in Figure 1.1 has a body, four legs, and four wings. Each leg is connected to each
adjacent leg by a USP (Universal-Spherical-Prismatic) linkage. Use Grübler's formula to answer the following
questions. Provide justifications to your answers (not just dof=x).
(a) [5 points] - Suppose the body is fixed and only the legs and wings can move. How many degrees of freedom
does the robot have?
(b) [5 points] - Now suppose the robot is flying in the air. How many degrees of freedom does the robot have?
(c) [5 points] - Now suppose the robot is standing with all four feet in contact with the ground. Assume that
the ground is uneven and that each foot-ground contact can be modeled as a point contact with no slip.
How many degrees of freedom does the robot have?

Figure 1.1 – Dragonfly robot


(source: K. Lynch and F. Park, Modern Robotics, 2019)

Problem Set 1 continues next page….

2/6
METR4202 – Robotics and Automation

Problem 2 – Rigid body motions [15 points]


Two toy cars are moving on a round table as shown in Figure 2.1. Car 1 moves at a constant speed 𝜐𝜐1 along the
circumference of the table, while car 2 moves at a constant speed 𝜐𝜐1 along a radius.

(a) [10 points] - Find T01 and T02 as a function of time t.

(b) [5 points] - Find T12 as a function of time t.

Figure 2.1 – Positions of the two cars at t = 0


(source: K. Lynch and F. Park, Modern Robotics, 2019)

Problem Set 1 continues next page….

3/6
METR4202 – Robotics and Automation

3 – MARCO
For the following problems you will be deriving the forward and inverse kinematics solution for the Manipulator
Arm with Revolute Controlled Operation – MARCO. This 6-DOF robot consists of 6 revolute joints, decoupled into
an arm for mobility, and a wrist for dexterity, as shown in Figure 3.1 and 3.2.

Figure 3.1 – MARCO robot. Note that base is denoted as frame {s} and end-effector as frame {b} throughout the exercise
(credit: Miguel Valencia)

Figure 3.2 – MARCO robot link lengths (left) and rotation axes (right) indicated by the cylinders, with the blue face
pointing in the direction of rotation.
(credit: Miguel Valencia)
4/6
METR4202 – Robotics and Automation

Problem 3.1 - Forward Kinematics using PoE formulation [15 points]


(a) [5 points] – Calculate the screw axes ℬ𝑖𝑖 in {b} for the MARCO robot, and express the end-effector
configuration 𝑇𝑇𝑠𝑠𝑠𝑠 ∈ 𝑆𝑆𝑆𝑆(3) using the PoE formulation.
(Note: is ok to express your answer using the exponential matrix notation)
(b) [10 points] – Program the PoE formulation in (a) in MATLAB using equation 3.88 from the book Modern
Robotics (K. Lynch and F. Park, 2019). The function should be of the form:
function T_sb = marco_poe_fk(th1, th2, th3, th4, th5, th6)

Report the following:


i) A screenshot(s) of your well-commented implementation of the function ma r c o_poe _f k (also submit
your actual MATLAB code)
ii) Come up with non-straight robot pose (as an example, a pose like in Figure 3.1) by choosing your own
values of joint angles th1, th2,… th6 (in radians). Report the values in this specific format (make sure
it is text, not a figure):
th = [th1,th2,th3,th4, th5,th6]
iii) Use the values reported in ii) in your function ma r c o_poe _f k and report the output T_sb.

Problem 3.2 - Forward Kinematics using classic D-H formulation [15 points]
(a) [5 points] – Use the D-H parameter of Table 3.1. to express the end-effector configuration 𝑇𝑇𝑠𝑠𝑠𝑠 ∈ 𝑆𝑆𝑆𝑆(3)
using the classical D-H representation.
(Note: is ok to express your answer using the transformation matrices in series)

Table 3.1 – D-H parameters (classical convention) for MARCO. Note that the robot is modeled as an arm, and a spherical wrist.

(b) [10 points] – Program the D-H formulation in (a) in MATLAB. The function should be of the form:
f unc t i on T_s b = ma r c o_dh_f k( t h1, t h2, t h3, t h4, t h5, t h6)

Report the following:


i) A screenshot(s) of your well-commented implementation of the ma r c o_dh_f k (also submit your
actual MATLAB code)
ii) Use the same robot pose reported in P3.1 in your new function ma r c o_dh_f k and report the output
T_sb.

5/6
METR4202 – Robotics and Automation

Problem 3.3 - Geometric Jacobian [15 points]


[15 points] – Program your own MATLAB function to calculate the Geometric Jacobian (body form) of MARCO,
for any given value of joint angles.
function J _b = ma r c o_j a c obi a n( t h1, t h2, t h3, t h4, t h5, t h6)

Report the following:


i) A screenshot(s) of your well-commented implementation of the function ma r c o_j a c obi a n (also
submit your actual MATLAB code)
ii) Use the same robot pose reported in P3.1 in your new function ma r c o_j a c obi a n and report the
output J _b .

Problem 3.4 - Inverse Kinematics – Numerical Method [25 points]


[25 points] – Program your own implementation of the Newton-Raphson method to calculate an inverse
kinematics solution for MARCO, returning six joint angles in a vector s ol _t h , given six starting angles
t h1_0, t h2_0, …, t h6_0 , and a final end-effector configuration T_s b_1 . You may use the functions you developed
in P3.1-P3.3.
f unc t i on s ol _t h = ma r c o_nr _i k( t h1_0, t h2_0, t h3_0, t h4_0, t h5_0, t h6_0, T_s b_1)

Report the following:


i) A screenshot(s) of your well-commented implementation of the function ma r c o_nr _i k (also submit
your actual MATLAB code)
ii) Use the same robot pose t h reported in P3.1 as your starting angles; come up with a desired end-
effector configuration T_s b_1. Use your function ma r c o_nr _i k to find the joint angles s ol _t h for
the desired end-effector configuration. Document and discuss the iteration process by the showing
figures (or tables) of the intermediate configurations computed inside your function ma r c o_nr _i k.
iii) Repeat (ii) for a different desired end-effector configuration T_s b_1.

Problem 3.5 - Inverse Kinematics – Analytical Method [15 points – EXTRA]


Determine and report the analytic (exact) solutions for the inverse kinematics problem. Discuss the possible
challenges in these analytical formulations. Program one of the solutions in MATLAB:
function s ol _t h = marco_exact_ik(T_s b_1 )
Use the same values of T_s b_1 used in P3.4, compare and discuss your answers.

6/6

You might also like