Freenect: fixed imu local transform. Preferences: show imu filters with freenect driver.

This commit is contained in:
matlabbe
2020-05-09 23:13:39 -04:00
parent c44837a4cb
commit fbdc3780c7
2 changed files with 5 additions and 2 deletions

View File

@@ -473,8 +473,10 @@ SensorData CameraFreenect::captureImage(CameraInfo * info)
freenectDevice_->getAccelerometerValues(x,y,z);
if(x != 0.0 && y != 0.0 && z != 0.0)
{
// frame of imu on kinect is x->right, y->down, z->backward
data.setIMU(IMU(cv::Vec3d(0,0,0), cv::Mat(), cv::Vec3d(x, y, z), cv::Mat(), Transform(0,0,-1,0, -1,0,0,0, 0,-1,0,0)));
Transform opticalTransform(0,-1,0,0, 0,0,-1,0, 1,0,0,0);
Transform base = this->getLocalTransform()*opticalTransform;
// frame of imu on kinect is x->left, y->up, z->forward
data.setIMU(IMU(cv::Vec3d(0,0,0), cv::Mat(), cv::Vec3d(x, y, z), cv::Mat(), base*Transform(0,0,1,0, 1,0,0,0, 0,1,0,0)));
}
}
}