From 4de8575fa928ab67e494a2adca2d4a2848241357 Mon Sep 17 00:00:00 2001 From: Philippe Renon Date: Thu, 3 Jul 2014 00:22:40 +0200 Subject: [PATCH] OP-1384 gyro calibration will not zero revo board rotation anymore --- .../calibration/gyrobiascalibrationmodel.cpp | 17 ++++++++--------- .../calibration/gyrobiascalibrationmodel.h | 3 +-- .../src/plugins/config/configrevowidget.cpp | 2 -- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.cpp b/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.cpp index 4e1c9ab31..b65b30055 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.cpp +++ b/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.cpp @@ -55,18 +55,23 @@ GyroBiasCalibrationModel::GyroBiasCalibrationModel(QObject *parent) : void GyroBiasCalibrationModel::start() { - // Store and reset board rotation before calibration starts - storeAndClearBoardRotation(); + // reset dirty state to forget previous unsaved runs + m_dirty = false; + // configure board for calibration RevoCalibration::DataFields revoCalibrationData = revoCalibration->getData(); memento.revoCalibrationData = revoCalibrationData; revoCalibrationData.BiasCorrectedRaw = RevoCalibration::BIASCORRECTEDRAW_FALSE; revoCalibration->setData(revoCalibrationData); - // Disable gyro bias correction while calibrating AttitudeSettings::DataFields attitudeSettingsData = attitudeSettings->getData(); memento.attitudeSettingsData = attitudeSettingsData; + // Disable gyro bias correction while calibrating attitudeSettingsData.BiasCorrectGyro = AttitudeSettings::BIASCORRECTGYRO_FALSE; + // Zero board rotation + attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_YAW] = 0; + attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_ROLL] = 0; + attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_PITCH] = 0; attitudeSettings->setData(attitudeSettingsData); UAVObject::Metadata gyroStateMetadata = gyroState->getMetadata(); @@ -89,9 +94,6 @@ void GyroBiasCalibrationModel::start() gyro_state_accum_y.clear(); gyro_state_accum_z.clear(); - // reset dirty state to forget previous unsaved runs - m_dirty = false; - started(); progressChanged(0); displayVisualHelp(CALIBRATION_HELPER_PLANE_PREFIX + CALIBRATION_HELPER_IMAGE_NED); @@ -149,9 +151,6 @@ void GyroBiasCalibrationModel::getSample(UAVObject *obj) revoCalibration->setData(memento.revoCalibrationData); attitudeSettings->setData(memento.attitudeSettingsData); - // Recall saved board rotation - recallBoardRotation(); - stopped(); displayInstructions(tr("Gyroscope calibration completed successfully."), WizardModel::Success); displayVisualHelp(CALIBRATION_HELPER_IMAGE_EMPTY); diff --git a/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.h b/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.h index e979ca621..fce6b7e41 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/gyrobiascalibrationmodel.h @@ -57,8 +57,7 @@ public: signals: void started(); void stopped(); - void storeAndClearBoardRotation(); - void recallBoardRotation(); + void progressChanged(int value); void displayVisualHelp(QString elementID); void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info); diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp index 5c6feabed..b9d13d245 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp @@ -157,8 +157,6 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) : connect(m_gyroBiasCalibrationModel, SIGNAL(started()), this, SLOT(disableAllCalibrations())); connect(m_gyroBiasCalibrationModel, SIGNAL(stopped()), this, SLOT(enableAllCalibrations())); - connect(m_gyroBiasCalibrationModel, SIGNAL(storeAndClearBoardRotation()), this, SLOT(storeAndClearBoardRotation())); - connect(m_gyroBiasCalibrationModel, SIGNAL(recallBoardRotation()), this, SLOT(recallBoardRotation())); connect(m_gyroBiasCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)), this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_gyroBiasCalibrationModel, SIGNAL(displayVisualHelp(QString)), this, SLOT(displayVisualHelp(QString)));