2: Representing Position & Orientation
A fundamental requirement in robotics and computer vision is to represent the position and orientation of objects in an environment. Such objects include robots, cameras, workpieces, obstacles and paths. Position and orientation together is referred to as pose.
This chapter covers position, orientation and pose in 2D:
- Points in 2D space
- 2D coordinate frames
- Representing orientation in 2D using angles, orthonormal rotation matrices and matrix exponentials
- Representing pose in 2D using homogeneous transformation matrices and twists
and position, orientation and pose in 3D:
- Points in 3D space
- 3D coordinate frames
- Representing orientation in 3D using orthonormal rotation matrices, Euler angles, roll-pitch-yaw angles, unit-quaternions, matrix exponentials
- Representing pose in 3D using homogeneous transformation matrices and twists
as well as an introduction to configuration space.
Gimbal lock
- LMA790-3-LM Apollo operations handbook, Fig 2.13 from my book is on page 44, and the vehicle’s coordinate frame is on page 16
- Consideration of Apollo IMU gimbal lock, David Hoag (1963)
- Gimbal Angles, Gimbal Lock, and a Fourth Gimbal for Christmas, Eric Jones & Paul Fjeld
Quaternions
- Animating rotation with quaternion curves, Shoemake (1985). The classic paper on quaternion interpolation
- Hamilton, Rodrigues, and the quaternion scandal
Videos
- Transformation matrix, FAST lab
Misc
- An Introduction to Inertial and Visual Sensing, Corke, Lobo, Dias (2007)
- Build your own coordinate frame out of paper, Build your own coordinate frame out of paper
- Print your own coordinate frame out of plastic!
- Build your own coordinate frame out of wood!
- Build your own 3D coordinate frame, a printable frame to fold
Lie groups
- Pieter van Goor: Lie groups, blog posts on SE(2), SL(2), quaternions as a Lie group and equivariant systems
- Lie groups for 2D and 3D transformations, Ethan Eade; also as PDF
Software
- manif, Lie theory library for state estimation (C++ and Python)
- tf2, coordinate frame transforms in ROS
- Sophus, Lie groups for 2D and 3D geometry in C++
These links are kept in one place for every edition and checked monthly. Resources for every chapter.
