Monado OpenXR Runtime
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 <cassert>
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
Rylie Pavlik rylie.nosp@m..pav.nosp@m.lik@c.nosp@m.olla.nosp@m.bora..nosp@m.com