inv_axis
Identify the axis in triaxial movement measurements
Syntax
[V,q] = inv_axis(A) % Matlab & Octave list <- inv_axis(data) #R
Description
Identify the axis in triaxial movement measurements that varies the least, i.e., the invariant axis. Rotational and linear movement in some types of propulsion largely occur in 2 dimensions e.g., body rotation in cetacean caudal propulsion occurs around the animal's transverse axis. Likewise sychronized wing flaps in flight or pectoral swimming may generate acceleration in the longitudinal and dorso-ventral axes but much less in the transverse axis. This function identifies the direction of the axis that moves the least in a movement matrix.
Inputs
Input var | Description | Units | Default value |
---|---|---|---|
A/data | is a triaxial sensor measurement axis e.g., from on accelerometer or magnetometer. | N/A | N/A |
Outputs
Output var | Description | Units |
---|---|---|
V | is a 3×1 vector defining the least varying axis in A. | N/A |
q | is the fraction of movement in the invariant axis. | N/A |
Notes & assumptions
- Frame: The frame and unit of A do not matter.
- V is a direction vector so has a length of 1. V is defined in the same frame as A.
- A small number (e.g., <0.05) for q implies that very little movement occurs in this axis and so the movement is largely planar (i.e., two-dimensional). If the fraction is ยป 0.05, the motion in A is better described as three-dimensional. q is a fraction
Example
Matlab & Octave
s=sin(2*pi*0.1*(1:100)'); A=s*[0.9 -0.4 0.3]+s.^2*[0 0.2 0.1]; [V,q] = inv_axis(A)
R
s <- matrix(sin(2*pi*0.1*c(1:100)), ncol=1) A <- s %*% c(0.9, -0.4, 0.3) + s^2 %*% c(0, 0.2, 0.1) inv_axis_out <- inv_axis(A)
About
bugs@animaltags.org Last modified: 10 May 2017