diff --git a/src/xrt/drivers/wmr/wmr_controller_hp.c b/src/xrt/drivers/wmr/wmr_controller_hp.c index 18543e659..79d5c5462 100644 --- a/src/xrt/drivers/wmr/wmr_controller_hp.c +++ b/src/xrt/drivers/wmr/wmr_controller_hp.c @@ -212,6 +212,9 @@ wmr_controller_hp_packet_parse(struct wmr_controller_hp *ctrl, const unsigned ch acc[1] = read24(&p); // y acc[2] = read24(&p); // z vec3_from_wmr_controller_accel(acc, &last_input->imu.acc); + math_matrix_3x3_transform_vec3(&wcb->config.sensors.accel.mix_matrix, &last_input->imu.acc, + &last_input->imu.acc); + math_vec3_accum(&wcb->config.sensors.accel.bias_offsets, &last_input->imu.acc); math_quat_rotate_vec3(&wcb->config.sensors.transforms.P_oxr_acc.orientation, &last_input->imu.acc, &last_input->imu.acc); @@ -228,6 +231,9 @@ wmr_controller_hp_packet_parse(struct wmr_controller_hp *ctrl, const unsigned ch gyro[1] = read24(&p); gyro[2] = read24(&p); vec3_from_wmr_controller_gyro(gyro, &last_input->imu.gyro); + math_matrix_3x3_transform_vec3(&wcb->config.sensors.gyro.mix_matrix, &last_input->imu.gyro, + &last_input->imu.gyro); + math_vec3_accum(&wcb->config.sensors.gyro.bias_offsets, &last_input->imu.gyro); math_quat_rotate_vec3(&wcb->config.sensors.transforms.P_oxr_gyr.orientation, &last_input->imu.gyro, &last_input->imu.gyro);