Monado OpenXR Runtime
Data Structures | Functions
t_imu.cpp File Reference

IMU fusion implementation - for inclusion into the single kalman-incuding translation unit. More...

#include "tracking/t_imu.h"
#include "tracking/t_imu_fusion.hpp"
#include "math/m_eigen_interop.hpp"
#include "util/u_misc.h"
#include <memory>
Include dependency graph for t_imu.cpp:

Data Structures

struct  imu_fusion
 

Functions

struct imu_fusionimu_fusion_create ()
 
void imu_fusion_destroy (struct imu_fusion *fusion)
 
int imu_fusion_incorporate_gyros (struct imu_fusion *fusion, uint64_t timestamp_ns, struct xrt_vec3 const *ang_vel, struct xrt_vec3 const *ang_vel_variance)
 
int imu_fusion_incorporate_accelerometer (struct imu_fusion *fusion, uint64_t timestamp_ns, struct xrt_vec3 const *accel, struct xrt_vec3 const *accel_variance, struct xrt_vec3 *out_world_accel)
 
int imu_fusion_get_prediction (struct imu_fusion const *fusion, uint64_t timestamp_ns, struct xrt_quat *out_quat, struct xrt_vec3 *out_ang_vel)
 
int imu_fusion_get_prediction_rotation_vec (struct imu_fusion const *fusion, uint64_t timestamp_ns, struct xrt_vec3 *out_rotation_vec)
 
int imu_fusion_incorporate_gyros_and_accelerometer (struct imu_fusion *fusion, uint64_t timestamp_ns, struct xrt_vec3 const *ang_vel, struct xrt_vec3 const *ang_vel_variance, struct xrt_vec3 const *accel, struct xrt_vec3 const *accel_variance, struct xrt_vec3 *out_world_accel)
 

Detailed Description

IMU fusion implementation - for inclusion into the single kalman-incuding translation unit.

Author
Ryan Pavlik ryan..nosp@m.pavl.nosp@m.ik@co.nosp@m.llab.nosp@m.ora.c.nosp@m.om

Function Documentation

◆ imu_fusion_create()

struct imu_fusion* imu_fusion_create ( )

◆ imu_fusion_destroy()

void imu_fusion_destroy ( struct imu_fusion fusion)

◆ imu_fusion_get_prediction()

int imu_fusion_get_prediction ( struct imu_fusion const *  fusion,
uint64_t  timestamp_ns,
struct xrt_quat out_quat,
struct xrt_vec3 out_ang_vel 
)

◆ imu_fusion_get_prediction_rotation_vec()

int imu_fusion_get_prediction_rotation_vec ( struct imu_fusion const *  fusion,
uint64_t  timestamp_ns,
struct xrt_vec3 out_rotation_vec 
)

◆ imu_fusion_incorporate_accelerometer()

int imu_fusion_incorporate_accelerometer ( struct imu_fusion fusion,
uint64_t  timestamp_ns,
struct xrt_vec3 const *  accel,
struct xrt_vec3 const *  accel_variance,
struct xrt_vec3 out_world_accel 
)

◆ imu_fusion_incorporate_gyros()

int imu_fusion_incorporate_gyros ( struct imu_fusion fusion,
uint64_t  timestamp_ns,
struct xrt_vec3 const *  ang_vel,
struct xrt_vec3 const *  ang_vel_variance 
)

◆ imu_fusion_incorporate_gyros_and_accelerometer()

int imu_fusion_incorporate_gyros_and_accelerometer ( struct imu_fusion fusion,
uint64_t  timestamp_ns,
struct xrt_vec3 const *  ang_vel,
struct xrt_vec3 const *  ang_vel_variance,
struct xrt_vec3 const *  accel,
struct xrt_vec3 const *  accel_variance,
struct xrt_vec3 out_world_accel 
)