From fbdc3780c788170b73f5150ce0066daa067a60c0 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 9 May 2020 23:13:39 -0400 Subject: [PATCH] Freenect: fixed imu local transform. Preferences: show imu filters with freenect driver. --- corelib/src/camera/CameraFreenect.cpp | 6 ++++-- guilib/src/PreferencesDialog.cpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/corelib/src/camera/CameraFreenect.cpp b/corelib/src/camera/CameraFreenect.cpp index f4ccae89..7159eb3a 100644 --- a/corelib/src/camera/CameraFreenect.cpp +++ b/corelib/src/camera/CameraFreenect.cpp @@ -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))); } } } diff --git a/guilib/src/PreferencesDialog.cpp b/guilib/src/PreferencesDialog.cpp index 7c853c37..818b0b5e 100644 --- a/guilib/src/PreferencesDialog.cpp +++ b/guilib/src/PreferencesDialog.cpp @@ -4819,6 +4819,7 @@ void PreferencesDialog::updateSourceGrpVisibility() (_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcRGBDImages-kSrcRGBD) || (_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoImages-kSrcStereo) || (_ui->comboBox_sourceType->currentIndex() == 2 && _ui->source_comboBox_image_type->currentIndex() == kSrcImages-kSrcRGB) || + (_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcFreenect - kSrcRGBD) || //Kinect360 (_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcK4A - kSrcRGBD) || //K4A (_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcRealSense2 - kSrcRGBD) || //D435i (_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoRealSense2 - kSrcStereo) || //T265