Learn R Programming

rotations (version 1.6.5)

genR: Generate rotations

Description

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

Usage

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

Value

A \(n\times p\) matrix where each row is a random rotation matrix (\(p=9\)) or quaternion (\(p=4\)).

Arguments

r

vector of angles.

S

central orientation.

space

indicates the desired representation: rotation matrix "SO3" or quaternions "Q4."

Details

Given a vector \(U=(u_1,u_2,u_3)^\top\in R^3\) of length one and angle of rotation \(r\), a \(3\times 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_{3\times 3}\) is the \(3\times 3\) identity matrix, \(\Phi(U)\) is a \(3\times 3\) skew-symmetric matrix with upper triangular elements \(-u_3\), \(u_2\) and \(-u_1\) 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