BaseFusedRelativePoseProcessor

Base class to estimate relative pose from an unknown location. This class estimates device attitude by fusing gravity/accelerometer, gyroscope and magnetometer measurements. Accelerometer and gyroscope are then taken into account to update device position.

Inheritors

Constructors

Link copied to clipboard
constructor(initialSpeed: SpeedTriad, processorListener: BaseRelativePoseProcessor.OnProcessedListener?)

Properties

Link copied to clipboard
open override var adjustGravityNorm: Boolean

Indicates whether gravity norm must be adjusted to either Earth standard norm, or norm at provided location. If no location is provided, this should only be enabled when device is close to sea level.

Link copied to clipboard

Factor to take into account when interpolation value is computed and useIndirectAttitudeInterpolation is enabled to determine actual interpolation value based on current relative attitude rotation velocity.

Link copied to clipboard

Interpolation value to be used to combine both leveling and relative attitudes. Must be between 0.0 and 1.0 (both included). The closer to 0.0 this value is, the more resemblance the result will have to a pure leveling (which feels more jerky). On the contrary, the closer to 1.0 this value is, the more resemblance the result will have to a pure non-leveled relative attitude (which feels softer but might have arbitrary roll and pitch Euler angles).

Link copied to clipboard

Threshold to determine that geomagnetic attitude has largely diverged and if situation is not reverted soon, attitude will be reset to geomagnetic one.

Link copied to clipboard

Threshold to determine that current geomagnetic attitude appears to be an outlier respect to estimated fused attitude. When geomagnetic attitude and fused attitudes diverge, fusion is not performed, and instead only gyroscope relative attitude is used for fusion estimation.

Link copied to clipboard

Threshold to determine when fused attitude has largely diverged for a given number of samples and must be reset.

Link copied to clipboard
val gx: Double

X-coordinates of last sensed gravity component of specific force expressed in NED coordinates and in meters per squared second (m/s^2).

Link copied to clipboard
val gy: Double

Y-coordinate of last sensed gravity component of specific force expressed in NED coordinates and in meters per squared second (m/s^2).

Link copied to clipboard
val gz: Double

Z-coordinate of last sensed gravity component of specific force expressed in NED coordinates and in meters per squared second (m/s^2).

Link copied to clipboard

initial device speed in body coordinates.

Link copied to clipboard
open override var location: Location?

Gets or sets device location

Link copied to clipboard
val poseTransformation: EuclideanTransformation3D

Contains current pose respect to the start of this estimator.

Link copied to clipboard
Link copied to clipboard

Time interval expressed in seconds between consecutive gyroscope measurements

Link copied to clipboard

Indicates whether accurate leveling is used or not.

Indicates whether accurate non-leveled relative attitude processor must be used or not.

Link copied to clipboard

Indicates whether fusion between leveling and relative attitudes occurs based on changing interpolation value that depends on actual relative attitude rotation velocity.

Functions

Link copied to clipboard
fun getGravity(result: AccelerationTriad)

Updates provided triad to contain gravity component of specific force expressed in NED coordinates and in meters per squared second (m/s^2).

Link copied to clipboard
open override fun reset()

Resets internal parameters.