Monado OpenXR Runtime
m_imu_3dof.c File Reference

A IMU fusion specially made for 3dof devices. More...

#include "util/u_misc.h"
#include "util/u_var.h"
#include "math/m_api.h"
#include "math/m_filter_fifo.h"
#include "math/m_imu_3dof.h"
#include "math/m_vec3.h"
#include "math/m_mathinclude.h"
#include <stdio.h>
#include <assert.h>
Include dependency graph for m_imu_3dof.c:

Macros

#define DUR_1S_IN_NS   (1000 * 1000 * 1000)
 
#define DUR_300MS_IN_NS   (300 * 1000 * 1000)
 
#define DUR_20MS_IN_NS   (20 * 1000 * 1000)
 

Functions

void m_imu_3dof_init (struct m_imu_3dof *f, int flags)
 
void m_imu_3dof_reset (struct m_imu_3dof *f)
 
void m_imu_3dof_close (struct m_imu_3dof *f)
 
void m_imu_3dof_add_vars (struct m_imu_3dof *f, void *root, const char *prefix)
 
static void gravity_correction (struct m_imu_3dof *f, uint64_t timestamp_ns, const struct xrt_vec3 *accel, const struct xrt_vec3 *gyro, double dt, float gyro_length)
 
static void gyro_biasing (struct m_imu_3dof *f, uint64_t timestamp_ns)
 
void m_imu_3dof_update (struct m_imu_3dof *f, uint64_t timestamp_ns, const struct xrt_vec3 *accel, const struct xrt_vec3 *gyro)
 

Detailed Description

A IMU fusion specially made for 3dof devices.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Function Documentation

◆ m_imu_3dof_update()

void m_imu_3dof_update ( struct m_imu_3dof f,
uint64_t  timestamp_ns,
const struct xrt_vec3 accel,
const struct xrt_vec3 gyro 
)

Skip the first sample.