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

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
My paper shortlisted for Best Paper at CVPR 2019

My paper shortlisted for Best Paper at CVPR 2019

My work “Estimating 3D Motion and Forces of Person-Object Interactions From Monocular Video” was shortlisted among the best paper finalists at the Conference on Computer Vision and Pattern Recognition 2019 (CVPR 2019) that took place in Long Beach (CA, USA) in summer.

The paper introduces a new approach for automatic reconstruction of 3D motion and actuation forces of a person interacting with an object from a single RGB video. The objective is to enable robots to learn how to manipulate tools by watching instructional videos that are available at, for example, Youtube. The approach was developed in collaboration with researchers from LAAS-CNRS in Toulouse.

Left: an input RGB video. Right: the estimated person-object 3D motion and forces.

The project Webpage is available online.

Read more

Conversion between axis angle and quaternion

The following Python function converts a 3 x nf matrix, axisAngles, whose columns are axis-angles, to a 4 x nf matrix of quaternions under the (x,y,z,w) convention. Note that the quaternions should always have norm 1.

Read more