Steven De Keninck PRO
Mathematical Experimentalist
These are the slides for the introduction to geometric algebra as given on the ICRA2023 conference - in the workshop "Geometric Representations: The Roles of Modern Screw Theory, Lie algebra, and Geometric Algebra in Robotics".
They extensively use interactive animations made with the ganja.js library and its coffeeshop platform. (see https://enki.ws/ganja.js/examples/coffeeshop.html)
For full integration that synchronises animation timing with slide fragments, you have to copy paste the code below into your browser console. (copy the code, press shift+ctrl+j to open the console, hit paste and press enter).
// Broadcast slide fragment navigation to the iframe on the slide.
function broadcast(event) {
var cur = Reveal.getIndices();
var iFrame = [...document.querySelectorAll('iframe')].filter(x=>x.src)[0];
if (iFrame) iFrame.contentWindow.postMessage([cur.h, cur.v, cur.f]+'',"*");
};
Reveal.addEventListener('fragmentshown', broadcast);
Reveal.addEventListener('fragmenthidden', broadcast);
Reveal.addEventListener('slidetransitionend', broadcast);
Geometric Algebra
Introduction for Robotics
Steven De Keninck
What is Geometric Algebra ?
An alternative to vector/matrix algebra ideal for (amongst many other things) geometry.
An algebra on a graded linear (vector) space, with an invertible product that operates on multivectors.
\(\oplus\)
\(\oplus\)
\(\circlearrowleft\)
\(\oplus\)
\(\oplus\)
\(\mathbb R\)
...
PSS
scalars
vectors
bivectors
pseudo scalar
What is Geometric Algebra ?
point
direction
line
plane
// construct lines
line_from_points (p1, p2)
line_from_points_and_dir (p, d)
line_from_plucker (a, b, c, d, e, f)
// construct planes
plane_from_points (p1, p2, p3)
plane_from_point_and_dirs (p, d1, d2)
plane_from_points_and_dir (p1, p2, d)
plane_from_point_and_line (p, l)
plane_from_equation (a, b, c, d)
// Intersections
intersect_line_plane (l, P)
intersect_plane_plane (P1, P2)
intersect_planes (P1, P2, P3)
// Projections
project_point_plane (p, P)
project_line_plane (l, P)
project_point_line (p, l)
position
rotation
matrix
quaternion
// construct transformations
mtx_translate (x, y, z)
mtx_rotate_euler (h, p, b)
mtx_rotate_axis_angle (x, y, z, a)
mtx_look_at (from, too, pole)
// apply transformations
transform_point (M, p)
transform_direction (M, d)
transform_line (M, l)
transform_plane (M, P)
// construct transformations
quat_from_euler (h, p, b)
quat_from_axis_angle (x, y, z, a)
quat_look_at (from, too, pole)
quat_from_matrix (M)
quat_to_matrix (Q)
// apply transformations
transform_point (Q, p)
transform_line (Q, l)
transform_plane (Q, P)
velocity
force
dual quaternion
// LA LA Land
factor_QR (M)
factor_LDL (M)
factor_SVD (M)
factor_LU (M)
// and even more code..
dquat_to_matrix (DQ)
dquat_from_matrix (M)
dquat_from_direction (d)
dquat_from_euler (h, p, b)
.. meshes ..
.. computational geometry ..
.. keeps going ..
\( a \vee b \)
\( a \wedge b \)
\( (a \cdot b)b^{-1} \)
\(e^{ab}\)
\( ab\tilde a \)
\( \sqrt{ab^{-1}} \)
\( \sqrt{ab^{-1}} \)
What is Geometric Algebra ?
We will first tackle the Algebra.
الكتاب المختصر في حساب الجبر والمقابلة
al-Kitāb al-Mukhtaṣar fī Ḥisāb al-Jabr wal-Muqābalah
The Compendious Book on Calculation by Completion and Balancing
1. New Numbers: why do we need them?
1. New Numbers: why do we need them?
\(x^2 + 10x = 39\)
\(= 39\)
\(+ 25=64\)
\((x+5)^2 = 64\)
\(\Leftrightarrow x = 3\)
\(x\)
\(x\)
\(x^2\)
\(x\)
\(5\)
\(5x\)
\(x\)
\(5\)
\(5x\)
\(5\)
\(5\)
\(25\)
\( \begin{cases} \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \end{cases}\)
\(x+5\)
1. New Numbers: why do we need them?
\(ax^2 = bx\)
\(ax^2 = c\)
\(bx = c\)
\(ax^2 + bx = c\)
\(ax^2+c = bx\)
\(bx + c = ax^2\)
Why six equations ?????
No negative numbers, no zero !!
1. New Numbers: why do we need them?
Why six equations ?????
No negative numbers, no zero !!
\(x + 1 = 1\)
\(x + 1 = 0\)
zero!
negative numbers!
With 0 and negative numbers, we reduce the amount of equations from 6 to 1 !!!
\(\oplus\)
\(\oplus\)
\(\circlearrowleft\)
\(\oplus\)
\(\oplus\)
\(\mathbb R\)
...
PSS
scalars
vectors
bivectors
pseudo scalar
Transform point/line/plane/direction \(b\) with rotor \(a\)
\(ab\tilde a\)
Project any point/line/plane \(a\) on any point/line/plane \(b\)
\(\frac {a\cdot b} {b}\)
Compare this to the classic vector/matrix approach ...
// just a matrix multiply
transform_point( M, )
// similar to point .. diff. M
transform_direction( M, )
// should be 6x6 matrix
transform_line( M, )
// similar to direction .. diff. M
transform_plane( M, )
// none of these are similar..
project_point_line()
project_point_plane()
project_line_point()
project_line_plane()
project_plane_point()
project_plane_line()
Lets do the same with another simple equation..
e
e
e
\(\mathbf e^2 = -1\)
\(\mathbf e^2 = +1\)
\(\mathbf e^2 = 0\)
\(\mathbb R_{\color{green}p\color{white},\color{red}q\color{white},\color{cyan}r\color{white}}\)
A Geometric Algebra is defined by this p,q,r signature specifying the metric of the n generators.
2. New Numbers: what are they?
\(\oplus\)
\(\oplus\)
\(\circlearrowleft\)
\(\oplus\)
\(\oplus\)
\(\mathbb R\)
...
PSS
scalars
vectors
bivectors
pseudo scalar
Transform point/line/plane/direction \(b\) with rotor \(a\)
\(ab\tilde a\)
Project any point/line/plane \(a\) on any point/line/plane \(b\)
\(\frac {a\cdot b} {b}\)
\(\mathbb R_{\color{green}p\color{white},\color{red}q\color{white},\color{cyan}r\color{white}}\)
A Geometric Algebra is defined by this p,q,r signature specifying the metric of the n generators.
\(\mathbf e_1, \mathbf e_2, \mathbf e_3 \), all square to \(+1\)
\(\mathbf e_1\) squares to \(+1\), \(\mathbf e_2, \mathbf e_3, \mathbf e_4\), all square to \(-1\)
\(\mathbf e_0\) squares to \(0\), \(\mathbf e_1, \mathbf e_2 ,\mathbf e_3\), all square to \(+1\)
We will use these generators to model vectors, points, circles, lines, planes, translations, boosts, rotations, screws, spheres, ...
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
2. New Numbers: what are they?
3. New Numbers: how do I use them?
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\(x^2 \in \mathbb R\)
\((\alpha \mathbf e_1 + \beta \mathbf e_2)^2 \in \mathbb R\)
\(\alpha^2 \mathbf {e_1}^2 + \alpha\beta\color{lightgreen}\mathbf e_1\mathbf e_2\color{white} + \alpha\beta\color{lightgreen}\mathbf e_2\mathbf e_1 \color{white} + \beta^2 {\mathbf e_2}^2 \in \mathbb R\)
\( \color{lightgreen} \mathbf e_1\mathbf e_2 + \mathbf e_2\mathbf e_1 \color{white} = 0\)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \color{white} \)
\(\mathbf e_1\)
\(\mathbf e_2\)
\(x = \alpha \mathbf e_1 + \beta \mathbf e_2\)
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
What is this new \(\mathbf e_1 \mathbf e_2 = \mathbf e_{12}\) element?
\(\alpha\mathbf e_1 + \beta\mathbf e_2\)
\(\alpha\mathbf e_{12}\)
\(\alpha\mathbf e_{12}\)
\(\alpha\mathbf e_{123}\)
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
\((\mathbf e_1 - \mathbf e_2)\mathbf e_1 = \)
\({\mathbf e_{12}}^2 = \)
\(\mathbf e_{123}\mathbf e_1 =\)
\(\frac 1 2 (\mathbf e_1 + \mathbf e_2) (\mathbf e_2 - \mathbf e_1) = \)
some exercises, with positive basis vectors.
\(\bf \frac 1 2 (e_{12} - 1 + 1 -e_{21} ) = e_{12}\)
\(\curvearrowleft\)
\(\bf e_{1231} = -e_{1213} = e_{1123} = e_{23}\)
\(\curvearrowleft\)
\(\curvearrowleft\)
\(\bf e_1e_1 - e_2e_1 = 1 + e_{12}\)
\(\curvearrowleft\)
\(\curvearrowleft\)
\(\bf e_{12} e_{12} = e_{1212} = - e_{1221} = -1\)
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
The geometric product of two 3 dimensional vectors
\(v_1v_2 = (\color{lightblue}x_1\color{white}\color{lightgreen}x_2\color{white}+\color{lightblue}y_1\color{white}\color{lightgreen}y_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}z_2\color{white}) + (\color{lightblue}x_1\color{white}\color{lightgreen}y_2\color{white}-\color{lightblue}y_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{12} + (-\color{lightblue}x_1\color{white}\color{lightgreen}z_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{31} + (\color{lightblue}y_1\color{white}\color{lightgreen}z_2\color{white}-\color{lightblue}z_1\color{white}\color{lightgreen}y_2\color{white})\mathbf e_{23}\)
\(\vec v_1 = \begin{bmatrix}\color{lightblue}x_1 \\ \color{lightblue} y_1 \\ \color{lightblue} z_1 \color{white}\, \end{bmatrix} \quad \vec v_2 = \begin{bmatrix}\color{lightgreen}x_2 \\ \color{lightgreen} y_2 \\ \color{lightgreen} z_2 \color{white}\, \end{bmatrix}\)
\( \underbrace{\qquad \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad}\)
\( \cong \vec v_1 \times \vec v_2 \)
Cross Product !
\( \underbrace{\qquad \qquad\qquad\qquad}\)
\( \cong \vec v_1 \cdot \vec v_2 \)
Dot Product !
\(v_1 = (\color{lightblue}x_1\color{white}\mathbf e_{1} + \color{lightblue}y_1\color{white}\mathbf e_{2} + \color{lightblue}z_1\color{white}\mathbf e_{3} )\)
\(v_2 = ( \color{lightgreen}x_2\color{white}\mathbf e_{1} + \color{lightgreen}y_2\color{white}\mathbf e_{2} + \color{lightgreen}z_2\color{white}\mathbf e_{3})\)
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
The geometric product of two 3 dimensional vectors
\(v_1v_2 = (\color{lightblue}x_1\color{white}\color{lightgreen}x_2\color{white}+\color{lightblue}y_1\color{white}\color{lightgreen}y_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}z_2\color{white}) + (\color{lightblue}x_1\color{white}\color{lightgreen}y_2\color{white}-\color{lightblue}y_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{12} + (-\color{lightblue}x_1\color{white}\color{lightgreen}z_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{31} + (\color{lightblue}y_1\color{white}\color{lightgreen}z_2\color{white}-\color{lightblue}z_1\color{white}\color{lightgreen}y_2\color{white})\mathbf e_{23}\)
\( \underbrace{\qquad \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad}\)
\( \cong \vec v_1 \times \vec v_2 \)
Cross Product !
\( \underbrace{\qquad \qquad\qquad\qquad}\)
\( \cong \vec v_1 \cdot \vec v_2 \)
Dot Product !
only scalar. 'Grade 0'.
\(v_1 \cdot v_2 = \langle v_1v_2 \rangle_0\)
only bivector. 'Grade 2'.
\(v_1 \wedge v_2 = \langle v_1v_2 \rangle_2\)
Note : One scalar and three imaginary parts. The geometric product of two vectors in \(\mathbb R_3\) is a quaternion!
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
The geometric product of two 3 dimensional vectors
\(v_1v_2 = (\color{lightblue}x_1\color{white}\color{lightgreen}x_2\color{white}+\color{lightblue}y_1\color{white}\color{lightgreen}y_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}z_2\color{white}) + (\color{lightblue}x_1\color{white}\color{lightgreen}y_2\color{white}-\color{lightblue}y_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{12} + (-\color{lightblue}x_1\color{white}\color{lightgreen}z_2\color{white}+\color{lightblue}z_1\color{white}\color{lightgreen}x_2\color{white})\mathbf e_{31} + (\color{lightblue}y_1\color{white}\color{lightgreen}z_2\color{white}-\color{lightblue}z_1\color{white}\color{lightgreen}y_2\color{white})\mathbf e_{23}\)
only scalar. 'Grade 0'.
\(v_1 \cdot v_2 = \langle v_1v_2 \rangle_0\)
only bivector. 'Grade 2'.
\(v_1 \wedge v_2 = \langle v_1v_2 \rangle_2\)
\(v_1v_2 = v_1 \cdot v_2 + v_1 \wedge v_2 \)
*famous, but be careful! only if \(v_1\) or \(v_2\) is vector!
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
\(v_1v_2 = v_1 \cdot v_2 + v_1 \wedge v_2 \)
In general, the geometric product between a grade \(s\) multivector \(\bf a\) and a grade \(t\) multivector \(\bf b\) has grades from \(|s-t|\) to \(s+t\) in steps of 2.
The highest and lowest grade parts are often useful and are called the wedge and dot products respectively.
\( \langle a \rangle_s \cdot \langle b \rangle_t = \langle ab \rangle_{|s-t|}\)
\( \langle a \rangle_s \wedge \langle b \rangle_t = \langle ab \rangle_{s+t}\)
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
3. New Numbers: how do I use them?
There are even more products from other branches of mathematics and physics
that map to some combination of or grade selection of the geometric product!
\( \langle a \rangle_s \cdot \langle b \rangle_t = \langle ab \rangle_{|s-t|}\)
\( \langle a \rangle_s \wedge \langle b \rangle_t = \langle ab \rangle_{s+t}\)
\(( a \vee b)^* = a^* \wedge b^*\)
\( a \times b = \frac 1 2 (ab - ba)\)
The Geometric Product
The Wedge Product
The Dot Product
The Vee Product
The Commutator Product
\(\oplus\)
\(\oplus\)
\(\circlearrowleft\)
\(\oplus\)
\(\oplus\)
\(\mathbb R\)
...
PSS
scalars
vectors
bivectors
pseudo scalar
4. Cayley Tables !
\( \mathbf e_i \notin \mathbb R \qquad {\mathbf e_i}^2 \in \{0,1,-1\} \)
\( \mathbf e_1\mathbf e_2 = - \mathbf e_2\mathbf e_1 \)
First, let us review the geometry of arrows, and the vector algebra operators.
but does this still work if we use arrows to represent points?
For the geometry of arrows, these operations are all well defined. Given just the orange inputs, you can reconstruct the green output.
Two points define a line. AND NOTHING ELSE!
⇒ EVERY binary operation between two points is a one dimensional operation!
The First Postulate
Two points define a line. AND NOTHING ELSE!
⇒ EVERY binary operation between two points is a one dimensional operation!
so, for points \(A,B\), all operations \(A+B, A-B, AB, A \wedge B, A \vee B, ...\) must produce a result on the line between \(A\) and \(B\) (or zero). In general, the types of elements determine exactly the set of geometrically plausible outputs.
Can we set things up so that all operators always produce geometrically valid outcomes?
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
A
A+A ?
AA ?
The result must be a point again, and it can only be at that position!
⟶ every 'algebra of geometry' MUST be homogeneous!
⟶ A+A = 2A still A, but twice as happy.
If you only have one point, then any transformation is the identity!
⟶ AA \(\cong\) 1 , the transformation that takes A to A.
⟶ if AA is identity, then A is an involutory transformation. A is a reflection!
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
A
A+B ?
The result must be a point, for equally happy A,B it will be halfway.
B
A+B
AB ?
With A and B point reflections (and points), AB is a translation (try it!)
ABA ?
The point B reflected in A.
BAB ?
The point A reflected in B.
ABA
BAB
AB
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
A
A+B ?
B
A+B
AB ?
ABA ?
BAB ?
\(x=1 \iff x-1=0\)
\(\mathbf e_1 - \mathbf e_0\)
\(\mathbf e_1 - 2\mathbf e_0\)
\((\mathbf e_1 - \mathbf e_0) + (\mathbf e_1 - 2\mathbf e_0) = \mathbf 2e_1 - \mathbf 3e_0 \) \(\iff 2x - 3 = 0 \iff x = 1.5\)
\((\mathbf e_1 - \mathbf e_0) (\mathbf e_1 - 2\mathbf e_0) = 1 - 2\mathbf e_{10} - \mathbf e_{01} = 1 + \mathbf e_{01} \)
\((\mathbf e_1 - \mathbf e_0) (\mathbf e_1 - 2\mathbf e_0) (\mathbf e_1 - \mathbf e_0)= \mathbf e_1\) \(\iff x = 0\)
\((\mathbf e_1 - \mathbf e_0) (\mathbf e_1 - 2\mathbf e_0) (\mathbf e_1 - \mathbf e_0)= \mathbf e_1 - 3\mathbf e_0\) \(\iff x = 3\)
ABA
BAB
\(x=2 \iff x-2=0\)
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
What if we move to a new viewpoint?
It is possible our points weren't points at all! This however can not change the behavior we saw from our original point of view!
The equivalence principle : if you can make it look like a duck, it'll quack.
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
The equivalence principle : if you can make it look like a duck, it'll quack.
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
Now that we know lines must be line reflections we can check bi-reflections easily ..
Rotation
Translation
Point Reflection
Bireflections have a gauge degree of freedom.
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
A
A
\(\mathbf e_1 + \mathbf e_0\)
\(\mathbf e_{12} + \mathbf e_{02}\)
\(\rightarrow x = -1\)
same vector, different geometry!
still the same point reflection!
\(\mathbf e_{12} + \mathbf e_{02} = (\mathbf e_1 + \mathbf e_0)\mathbf e_2\)
\( x = -1\)
\( y = 0\)
\(\rightarrow\) Product of two orthogonal vectors is a pure bivector. Reflecting in two orthogonal mirrors is a point reflection in their intersection point.
The First Postulate
Can we set things up so that all operators always produce geometrically valid outcomes?
A+B
A-B
The sum of two elements is their bisector, the element halfway in between.
The difference of two elements is the other bisector, for parallel elements, it is at infinity!
The First Postulate
At this point, we have an actual algebra of geometry. Our set of elements are the point(reflection)s, line(reflection)s, plane(reflection)s, ... multiplication with scalars, addition and multiplication between elements all are always geometrically valid!
But, we are not done yet - to get an intuitive understanding we still need a way to visualize all the different products - and for that the Geometric Gauges are key!
Can we set things up so that all operators always produce geometrically valid outcomes?
Reflections are the fundamental building blocks for Euclidean geometry in any #D
The First Postulate
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
reflection/line
reflection/point
rotation
translation
when combining reflections, only the relative position matters.
e.g. any set of orthogonal line-reflections through a point produces the same point-reflection.
this gives us a 'geometric gauge' degree of freedom, which we can use to understand all the different products.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The dot product eliminates parallel mirrors.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The dot product eliminates parallel mirrors.
The regressive product keeps identical mirrors.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The dot product eliminates parallel mirrors.
The regressive product keeps identical mirrors.
The outer product finds orthogonal mirrors.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The dot product eliminates parallel mirrors.
The regressive product keeps identical mirrors.
The outer product finds orthogonal mirrors.
The First Postulate
After picking the viewpoint where things look most simple, we will use the gauges to understand exactly what all of the products do geometrically.
The geometric product eliminates identical mirrors.
The dot product eliminates parallel mirrors.
The regressive product keeps identical mirrors.
The outer product finds orthogonal mirrors.
Cartan-Dieudonne :
Every orthogonal transformation in an n-dimensional symmetric bilinear space can be described as the composition of at most n reflections.
The First Postulate
\(ab\) Geometric Product composes reflections
\(a\wedge b\) Outer Product Intersects elements
\(a\vee b\) Regressive Product joins elements
\(a\cdot b\) Dot Product rejects elements
The First Postulate
Now, lets see it in action!
\(d_i = \big ( \frac 1 f - \frac 1 {d_0} \big )^{-1}\qquad h_i=-\frac {d_i} {d_0} h_0\)
The First Postulate
\(d_i = \big ( \frac 1 f - \frac 1 {d_0} \big )^{-1}\qquad h_i=-\frac {d_i} {d_0} h_0\)
The paraxial approximation of the thin lens equation
The First Postulate
\(d_i = \big ( \frac 1 f - \frac 1 {d_0} \big )^{-1}\qquad h_i=-\frac {d_i} {d_0} h_0\)
The paraxial approximation of the thin lens equation
\(\vec a = \overline {\vec c - \vec f}\)
\(\vec b= \vec c - \vec p\)
\(d_0 = \vec a \cdot \vec b\)
The First Postulate
\(d_i = \big ( \frac 1 f - \frac 1 {d_0} \big )^{-1}\qquad h_i=-\frac {d_i} {d_0} h_0\)
The paraxial approximation of the thin lens equation
\((\overline {\vec c - \vec f}) \, \cdot\)
\((\vec c - \vec p)\)
\(d_0 = \)
\(h_0 = (\overline{\vec c - \vec g} )\,\cdot\,(\vec c - \vec p) \)
The First Postulate
The paraxial approximation of the thin lens equation
There are no coefficients or even ratios, and the formula can be read from left to right.
The First Postulate
The paraxial approximation of the thin lens equation
\(\vee\) = join \(\wedge\) = meet \(\bullet\) = dot
The First Postulate
The paraxial approximation of the thin lens equation
The First Postulate
Thanks!
There are still many things left uncovered, but they all build on the same simple ideas.
By Steven De Keninck
A hands on introduction to Projective Geometric Algebra for robotics.