Learn R Programming

rotations (version 0.2)

Arithmetic: Arithmetic operators on SO(3)

Description

These binary operators perform arithmetic on rotations in quaternion or rotation matrix form (or objects which can be coerced into them).

Usage

## S3 method for class 'SO3':
+(x, y)

## S3 method for class 'SO3': -(x, y = NULL)

## S3 method for class 'Q4': +(x, y)

## S3 method for class 'Q4': -(x, y = NULL)

Arguments

x
first arguement
y
second arguement (optional for subtraction)

Value

  • +the result of rotating the identity frame through x then y
  • -the difference of the rotations, or the inverse rotation of only one arguement is provided

Details

The rotation group SO(3) is a multiplicative group so ``adding" rotations $R_1$ and $R_2$ results in $R_1+R_2=R_2R_1$. Similarly, the difference between rotations $R_1$ and $R_2$ is $R_1-R_2=R_2^\top R_1$. With this definiton it is clear that $R_1+R_2-R_2=R_2^\top R_2R_1=R_1$. If only one rotation is provided to subtraction then the inverse (transpose) it returned, e.g. $-R_2=R_2^\top$.