Revision 88fc1495e924ed94e2bb0863213a893fcb0db10b (click the page title to view the current version)
Changes from 88fc1495e924ed94e2bb0863213a893fcb0db10b to 8e8b5e1b7f285bf347faa6ade2d5acd6e72e63ae
---
title: 3D Mathematics
categories: session
geometry: margin=2cm
fontsize: 12pt
---
**Reading** Ma (2004) Chapter 2 + Appendix A
+ [Previous: [Introduction]()]-[Up: [Overview]()]-[Next: [3D Objects in Python]()]
# Reading
+ Ma (2004) Chapter 2 until Section 2.3 inclusive
+ Ma (2004) Appendix A if necessary to understand Chapter 2.
+ (Szeliski 2022 Chapter 2 until Section 2.1.3 inclusive)
- Szeliski is a lot briefer, for better or for worse
# Briefing
1. [Change of Basis]()
# Exercises
## A stage turntable
Let's try a little 2D exercise before we move to 3D.
Consider a theatre stage with a turntable.
The global co-ordinate system is defined with the origin
at a seat in the middle of the audience.
The $y$-axis points directly towards the stage, and the $x$-axis
is perpendicular, pointing towards the right hand side.
The turntable has its centre at $(0,10)$ in the global co-ordinate system.
The centre of the turntable is also the origin of its local co-ordinate
system.
An actor stands on the turntable at the point $(0,1)$ in the local
co-ordinate system.
1. Draw and annotate the situation.
2. Suppose first that the turntable is turned so that its local $y$-axis
is aligned with the global one. Where is the actor located in the globale
co-ordinate system
3. Suppose the turntable turns clockwise by an angle $\alpha$.
Write down the corresponding rotation matrix.
4. What becomes the new position of the actor in the global co-ordinate system?
5. An actress was positioned at some local co-ordinates $(x,y)$.
What is her global position before and after the rotation by $\alpha$.
6. Note that you can calculate the positions of the two actors either directly
by simple geometric observations and by means of linear algebra and a change
of basis. You should try both and compare the results for validation.
## A crane
![Crane illustration](crane2.png)
Imagine a crane or robot arm with two booms as shown in the figure.
We want to calculate the position of the hand of the arm (i.e. point $A$),
given the position of the two joints.
+ The first boom
- has its base in the global origin.
- can rotate around the $z$-axis (the vertical axis).
- has length $a$ and extends along the $z$-axis.
+ The second boom
- has its base at the tip of the first boom.
- has length $b$.
- is jointed so that it can rotate around the $y$-axis.
Note that this is the $y$-axis in the local co-ordinate
system of the first boom, which may rotate in the global co-ordinate system.
+ Write $\alpha$ for the angle of rotation around the base.
Assume that the boom is in the $xz$-plane when $\alpha=0$.
+ Write $\beta$ for the angle in the joint.
Suppose the second boom extends vertically when $\beta=0$.
Note that each joint and boom can be described in a local co-ordinate system
induced by the preceeding joints and booms in the system.
### Step 1. Some concrete numbers
Suppose $a=1$, $b=2$, and $\alpha=0$. Let $\beta=\pi/4$ so that the
second boom is horisontal. Draw this situation and calculate the
global co-ordinates of the hand ($A$).
### General solution
Now we will work with general algebraic values, $a$, $b$, $\alpha$, and $\beta$.
To calculate the position of $A$, we should start with the hand in a local
co-ordinate system and work backwards towards the base.
### Step 2. The co-ordinate system of the joint
Point $A$ is the origin in the co-ordinate system of the hand.
1. Calculate its position of $A$ in the co-ordinate system of the joint.
Note that this comprises a translation along the boom, and a rotation
by $\alpha$.
You need to specify these two transformations and the order in which
to apply them, to arrive at the transformation between the two
co-ordinate systems.
Note that each change of co-ordinate system comprises a rotation and a
translation. If you prefer, you may consider four distinct co-ordinate
systems (instead of two) such that each change of basis makes either
a rotation *or* a translation.
### Step 3. The co-ordinate system of the base
1. Calculate its position of $A$ in the co-ordinate system of the base.
To find $A$ in the global (base) co-ordinate system, we need to
find the transformation between the joint basis and the base basis,
and combine this with the transformation from base 2.
## Properties of the rotation matrix.
This is based on Exercise 2.6 from Ma (2003:38).
Consider two transformation matrices:
$$
R_1=
\begin{bmatrix}
\cos \theta & -\sin\theta \\
\sin\theta & \cos \theta
\end{bmatrix}
\quad
R_2=
\begin{bmatrix}
\sin \theta & \cos\theta \\
\cos\theta & -\sin \theta
\end{bmatrix}
$$
+ For each matrix, what is the determinant?
+ For each matrix, is it orthogonal?
Consider two points $\vec{a}=(1,1)$ and $\vec{b}=(0,1)$.
Apply each transformation to both points, and draw the six
points $\vec{a},\vec{b},\vec{a}R_1,\vec{b}R_1,\vec{a}R_2,\vec{b}R_2$
in the same co-ordinate system.
+ Are they both rigid-body transformations (rotation)?
+ If they are not rotations, what are they then?
## Exercises from Ma (2003)
Note.
Exercises in parentheses are optional.
Please skip these unless you have a lot of time.
These exercises are from Ma 2004 page 38ff
1. Exercise 2.1 a+d. (See Definition A.12 page 446.)
1. Exercise 2.3. (See Definition A.13 page 447.)
# Debrief
+ Please ask for solution drafts to be released after the session.