ROBOTICS ASSIGNMENT 1:
ROTATION MATRICES AND
TRANSFORMATIONS
Course Information
Textbook: Craig, J.J. (2013). Introduction to Robotics: Mechanics and
Control (3rd ed.). Pearson Education.
Assignment Scope: This assignment covers fundamental concepts in
rotation matrices and homogeneous transformations from Chapter 2.
PART A: ROTATION THEORY (CHAPTER 2)
Exercise Group 1: Velocity Mapping and Rotation
Efficiency
Problem A1 (Based on Exercise 2.12)
Topic: Velocity as a free vector
Task: Given a velocity vector expressed in frame ,
transform it to frame using the rotation matrix .
Requirements:
Write the transformation in matrix form:
Explain why translation does not appear in velocity
transformation (hint: velocities are free vectors)
Discuss the implication for constructing Jacobians in
Chapter 5
Problem A2 (Based on Exercise 2.16)
Topic: Computational efficiency in rotation matrix chains
Scenario: A vector must be mapped through three rotation
matrices:
The vector updates at 100 Hz
Rotation matrices , , update at 30 Hz (from
vision system)
Requirements:
1. Identify two computational strategies:
Strategy 1: Pre-multiply matrices:
, then compute
Strategy 2: Sequential multiplication with the vector
at each step
2. Count multiplication and addition operations for each
strategy
3. Recommend the optimal approach given the update rates
Exercise Group 2: Rotation Theory and Representations
Problem A3 (Based on Exercise 2.19)
Topic: Moving axes vs. fixed axes rotations
Context: When rotating about body-attached axes (moving
frame), the composition differs from fixed-axis rotations
Task:
Use the similarity transform approach:
to derive the rotation matrix
equivalent to Euler angles
The result should match Equation 2.72 in the textbook[1]
Provide a brief geometric explanation of how "changing
reference frames" via similarity transform affects the
rotation order
Problem A4 (Based on Exercises 2.20 & 2.21)
Topic: Rodrigues' formula and infinitesimal rotations
Part 1 (Exercise 2.20): Derive Rodrigues' formula for rotating vector
about axis by angle :
Start from using Equation 2.80[1]
Part 2 (Exercise 2.21): Using small-angle approximations ( ,
, ):
Derive the rotation matrix for infinitesimal rotation about
general axis
Show it has the form (first-order
approximation)
Problem A5 (Based on Exercise 2.22)
Topic: Commutativity of infinitesimal rotations
Task:
Using the first-order rotation matrix from Problem A4,
prove that two infinitesimal rotations commute:
Discuss why this property does NOT hold for finite (large)
rotations
Problem A6 (Based on Exercise 2.35)
Topic: Determinant of rotation matrices
Task:
Prove that for any rotation matrix
Use the orthonormality property:
Explain why we choose (not ) for proper
rotations
PART B: MATLAB EXERCISES - ROTATION
AND TRANSFORMATIONS
Problem B1 (MATLAB Exercise 2A)
(a) Forward Problem: Write a MATLAB program to calculate
rotation matrix from Euler angles
Test cases:
(i)
(ii)
For case (i), verify the six orthonormality constraints for rotation
matrices
Demonstrate:
(b) Inverse Problem: Write MATLAB code to extract Euler angles
from a given rotation matrix
Calculate both possible solutions (there are always two)
Verify results using circular check: angles → matrix → angles
(c) Vector Transformation: For simple rotation of 20° about Y-axis
only, with :
Calculate
Create a sketch verifying your results geometrically
(d) Verification: Check all results using the Corke MATLAB Robotics
Toolbox
Functions: rpy2tr, tr2rpy, rotx, roty, rotz
Problem B2 (MATLAB Exercise 2B)
(a) Write MATLAB code to calculate homogeneous transformation
matrix from Euler angles and position vector
Test cases:
(i) ,
(ii) ,
(b) For case (ii), given , calculate and verify with a
sketch
(c) Write code to compute inverse transformation
using:
1. Symbolic formula
2. MATLAB's numerical inv() function
Verify:
(d) Let = result from (a-i) and = result from (a-ii)
(i) Calculate and ; draw transformation graph
(ii) Given and (assume you don't know ), recover it
and compare with known answer
(iii) Given and (assume you don't know ), recover it
and compare
(e) Verify all results using Corke Toolbox functions: rpy2tr, transl
SUBMISSION REQUIREMENTS
Deliverables:
1. Written Solutions: Hand calculations for Part A (Problems A1-
A6)
2. MATLAB Code: Well-commented scripts for Part B (Problems B1-
B2)
3. Plots: All required graphs with proper labels, legends, and units
4. Report:
Brief discussion of results for each problem
Answers to conceptual questions
Comparison with Robotics Toolbox verification
Format:
PDF document combining written work and printed code
Separate MATLAB .m files (one per problem)
All plots embedded in PDF report
Grading Rubric (50 points):
Part A (Rotation Theory): 25 points
Part B (MATLAB Implementation): 20 points
Code quality and documentation: 5 points
Due Date:
[Instructor to specify]
ADDITIONAL RESOURCES
Textbook Sections:
Chapter 2: Sections 2.2-2.9 (Rotation representations and
transformations)
MATLAB Toolbox:
Peter Corke's Robotics Toolbox: Download from [Link]
[Link]/toolboxes/robotics-toolbox/
Installation: Add to MATLAB path and run startup_rvc
Office Hours:
[Instructor to specify]
Good luck! This assignment will strengthen your understanding
of rotation matrices and coordinate transformations essential for
robotics.
References
[1] Craig, J.J. (2013). Introduction to Robotics: Mechanics and Control
(3rd ed.). Pearson Education.