How to Move? Lie Group Robotics

Representing Rotations

  1. Singularities in representation: Let’s say the pen is facing 90 degrees upwards, then a sensor at the top of it can’t tell the difference between yaw and roll. Motors can burn themselves out, joints can snap and are likely to get you hurt.
  2. Coordinate dependent: Let’s say we have 10 joints, which one of them should be the reference frame. How do you transform the coordinates of joint 9 relative to joint 2? Each new kind of robot would require deriving complex trigonometric expressions and applying them.

Rotations form a Group

  1. Closure: ∀ a, b ∈ G → a ∘ b ∈ G
  2. Associativity: ∀ a, b, c ∈ G → (a ∘ b) ∘ c = a ∘ (b ∘ c)
  3. Identity: ∃ e ∈ G s.t ∀ a ∈ G → a ∘ e = e ∘ a = a
  4. Inverse: ∀ a ∈ G, ∃ b s.t a ∘ b = e
  1. Closure: You can compose elements of the group
  2. Associativity: Parentheses don’t matter
  3. Identity: There’s a null operator that does nothing
  4. Inverse: The action of any element can be reversed

Lie Group

  1. Displacement: multiplication by a rotation matrix represents a displacement
  2. Representation of position: a rotation matrix by itself represents a position
  3. Change of reference frame: a base reference frame can be multiplied by a rotation matrix to get a new reference frame

Rigid Body Motion

  • 3 numbers for the x, y, z position
  • 3 numbers for the rotation yaw, roll, pitch

Product of Exponentials Formula

  • T ∈ SE(3) is the final end effector position
  • θ_n is the new position of the n’th joint
  • parents represents the parents of the end effector
  • [S_n] = (w_n, v_n) is the screw axis of joint n
  • M ∈ SE(3) is the end effector position when all joint values are zeroed out
  • T is given
  • The inverse of M can be computed or approximated by its pseudo-inverse
  • S are known
  • We solve for θ

Code Deep Dive

Vector to so(3)

Adjoint

Rotation Matrix Exponential

Transformation Matrix Exponential

Forward Kinematics

Next Steps

  • Read Modern Robotics — it’s by far my favorite robotics textbook, it comes with a free online class and an invaluable code companion
  • Inverse Kinematics in F# — is a codebase that really helped me grok the inverse and forward kinematics problem, it uses numerical techniques but is still a valuable resource because of how clear and short the code is
  • Visual Group Theory — this is my favorite theoretical math book because it takes a subject as dense and opaque as group theory and makes it extremely intuitive. The book is filled with colorful explanations that do a lot more than the Greek text dumps that are more traditional in this area. You’ll feel a lot more comfortable reading other Abstract Algebra and Category Theory books after reading this one
  • Elementary Applied Topology — this book makes it explicit that it sacrifices rigor but with the purpose of giving you a broad overview of all the applications of Topology. There are tons of algorithms in this area that have not become mainstream.
  • Naive Lie Theory — goes deeper in talking about Lie Groups and Lie algebras. This book is a more traditional Theorem, Proof format but it’s valuable as a reference to check whether your intuition is well founded or not

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store