3D angular velocity and Rodrigues' formula

3D angular velocity and Rodrigues' formula

One type of motion that people often encounter in robotics is the rotation of a rigid body about a fixed axis. Consider a 3D object rotating about an axis $u$ (represented by a unit vector in $R^3$) at a rate of $\theta$ radians per second (rad/s, in $R$) for $t$ seconds. Let $p$ be a point attached to the object and $\dot{p}$ the tangent velocity at point $p$.

An illustration is shown in the cover figure, in which we use $\omega=\theta u$ instead to represent the axis and angle in a unified vectorial form. In the literature, $\omega$ is often named angular velocity.

Read more
Rotation matrices: everything you wanted to know

Rotation matrices: everything you wanted to know

In robotics, vision and graphics, rotation matrix is one of the most popular mathematical representations of the rotational motion. It is simple but sometimes may cause confusions. In this post, I will construct a rotation matrix from stratch and talk about its key properties. For brevity, all vectors are column vectors and all coordinate frames are right-handed unless otherwise stated.

Read more
Spacemacs Holy Cheat Sheet

Spacemacs Holy Cheat Sheet

Spacemacs is an Emacs configuration framework that is known for “mimicking” the behavior of Vim. Since it’s mainly designed for Vim users, nearly all the tutorials and even the official documentation of Spacemacs only cover the Evil mode (Vim editing style).

In this article, I have gathered some of the most useful Spacemacs key bindings in the Holy mode (Emacs editing style). If you are just looking for a decent Emacs distro, Doom Emacs (disable the (evil +everywhere) module) should be the way to go.

Read more

Inner product space, affine space, Cartesian space, and Euclidean space

Vector space, inner product space, Euclidean space … These terms appear frequently in the domains of reinforcement learning and optimization. In robotics, people usually make the distinction between “Cartesian space” and “joint space” for expressing coordinates. These are simple and fundamental concepts in algebra but can be confusing for some people. In this post, I give the formal definition of these technical terms from a roboticist’s perspective.

Read more
PCA Explained Step by Step

PCA Explained Step by Step

All data points lie in a sub-manifold of the 3 dimentional space. If somehow we find this sub-manifold which can be “unfolded” to a lower dimensional space (2D space in this case), then we can reduce the dimensiontality of the data without losing much information.

Principle

Figure 1. The goal of PCA is reducing the dimentionality of data without losing much information.

Read more