Learn R Programming

rotations (version 1.5)

genR: Generate rotations

Description

Generate rotations in matrix format using Rodrigues' formula or quaternions.

Usage

genR(r, S = NULL, space = "SO3")

Arguments

r
vector of angles.
S
central orientation.
space
indicates the desired representation: rotation matrix "SO3" or quaternions "Q4."

Value

A $n-by-p$ matrix where each row is a random rotation matrix ($p=9$) or quaternion ($p=4$).

Details

Given a vector $U=(u1,u2,u3)' in R^3$ of length one and angle of rotation $r$, a $3-by-3$ rotation matrix is formed using Rodrigues' formula $$\cos(r)I_{3\times 3}+\sin(r)\Phi(U)+(1-\cos(r))UU^\top$$ where $I$ is the $3-by-3$ identity matrix, $\Phi(U)$ is a $3-by-3$ skew-symmetric matrix with upper triangular elements $-u3$, $u2$ and $-u1$ in that order.

For the same vector and angle a quaternion is formed according to $$q=[cos(\theta/2),sin(\theta/2)U]^\top.$$

Examples

Run this code
r <- rvmises(20, kappa = 0.01)
Rs <- genR(r, space = "SO3")
Qs <- genR(r, space = "Q4")

Run the code above in your browser using DataLab