Setting up a fully remote development environment: a tutorial

This tutorial will guide you through a solution of creating a remote development environment. This is particularly useful for remote working (e.g. with a remote PC using a laptop), cloud computing (within a virtual container), and many other scenarios.

Read more
A Tutorial for Tmux Beginners

A Tutorial for Tmux Beginners

Tmux is a very productive and versatile terminal multiplexer released in 2007. Its design stems from GNU Screen, the prototypical terminal multiplexer first released in 1987.

Why Tmux?

A typical application of Tmux is remote work. Imagine that you ssh to your office machine and open a remote terminal to run programs. The SSH connection is suddenly broken for some reasons, e.g. poor signal, power cut, etc. As a result, all running processes are lost as the terminal session is closed.

Read more

FFmpeg Reference Sheets

Convert a video from MOV to mp4:
ffmpeg -i input.mov -qscale 0 output.mp4

Trim a video in seconds:
ffmpeg -ss 00:01:00 -to 00:02:00 -i input.mp4 -c copy output.mp4

Options:

  • -i: This specifies the input file. In that case, it is (input.mp4).
  • -ss: Used with -i, this seeks in the input file (input.mp4) to position.
  • 00:01:00: This is the time your trimmed video will start with. The timing format is: hh:mm:ss
  • -to: This specifies duration from start (00:01:40) to end (00:02:12).
  • 00:02:00: This is the time your trimmed video will end with.
  • -c copy: This is an option to trim via stream copy. (NB: Very fast)
Read more
The point contact model and 3D friction cones

The point contact model and 3D friction cones

Maintaining balance is one of the crucial things for roboticists working with mobile robots, especially with humanoid robots. An example of a walking HRP-2 robot is shown in the teaser figure.

When a foot sole of HRP-2 is in contact with a surface, for example, the ground plane, the contact must remain fixed because otherwise the robot is at risk of falling. Therefore, it is of key interest to derive what we call the contact stability condition for such type of fixed contact.

In this article, we consider the contact point $p_k$ located at the right foot sole of HRP-2 in the teaser example. We discuss the contact stability condition of this point contact model followed by its linear approximation.

Read more

Compute the rotation matrix given two vectors using Rodrigues' formula

In the previous post, we have shown how angular velocities and rotation matrices are linked through the exponential map, or to be specific, the Rodrigues’ rotation formula. In this post I would like to give as an useful application of Rodrigues’ formula, to compute the rotation matrix between two vectors.

Let $a,b\in\mathbb{R}^3$ ($a\neq b$) be two unit vectors expressed in an arbitary coordinate frame. Our goal is to compute the rotation matrix from $a$ to $b$.

Read more
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