|
tesseract++ 0.0.1
N-dimensional tensor library for embedded systems
|
Skew-symmetric matrix construction and Rodrigues rotation formula. More...
#include "config.h"#include "fused/fused_matrix.h"#include "fused/fused_vector.h"#include "math/math_utils.h"#include "algorithms/operations/norms.h"
Go to the source code of this file.
Namespaces | |
| namespace | matrix_algorithms |
Functions | |
| template<typename T > | |
| FusedMatrix< T, 3, 3 > | matrix_algorithms::skew_symmetric (const FusedVector< T, 3 > &v) |
| Construct the 3×3 skew-symmetric matrix [v]× from a 3-vector. | |
| template<typename T > | |
| FusedMatrix< T, 3, 3 > | matrix_algorithms::rodrigues (const FusedVector< T, 3 > &omega, T t=T(1)) |
| Compute the rotation matrix R = exp(t · [ω]×) via Rodrigues formula. | |
Skew-symmetric matrix construction and Rodrigues rotation formula.
Provides:
Given ω = [ω₁, ω₂, ω₃], the skew-symmetric matrix is:
[ω]× = [ 0 -ω₃ ω₂ ] [ ω₃ 0 -ω₁ ] [ -ω₂ ω₁ 0 ]
Key property: [ω]× · v = ω × v (cross product).
Given an angular velocity vector ω and time step t, the rotation matrix is:
R = exp(t · [ω]×) = I + sin(θ)/θ · [ω]× + (1 − cos(θ))/θ² · [ω]ײ
where θ = t · ‖ω‖ is the rotation angle.
Special cases:
Properties of the result:
Complexity: O(1) — fixed 3×3 operations, no loops.