Skip to content
Snippets Groups Projects
Commit 4f0cdb47 authored by Joan Solà Ortega's avatar Joan Solà Ortega
Browse files

Fix ProcImu::getCalibration() to get the intrinsics

parent 673f4cfe
No related branches found
No related tags found
3 merge requests!18Release after RAL,!17After 2nd RAL submission,!9Resolve "follow core:#384"
...@@ -71,7 +71,7 @@ class ProcessorForceTorquePreint : public ProcessorMotion{ ...@@ -71,7 +71,7 @@ class ProcessorForceTorquePreint : public ProcessorMotion{
Eigen::VectorXd deltaZero() const override; Eigen::VectorXd deltaZero() const override;
Eigen::VectorXd correctDelta(const Eigen::VectorXd& delta_preint, Eigen::VectorXd correctDelta(const Eigen::VectorXd& delta_preint,
const Eigen::VectorXd& delta_step) const override; const Eigen::VectorXd& delta_step) const override;
VectorXd getCalibration (const CaptureBasePtr _capture) const override; VectorXd getCalibration (const CaptureBasePtr _capture = nullptr) const override;
void setCalibration(const CaptureBasePtr _capture, const VectorXd& _calibration) override; void setCalibration(const CaptureBasePtr _capture, const VectorXd& _calibration) override;
bool voteForKeyFrame() const override; bool voteForKeyFrame() const override;
......
...@@ -121,15 +121,27 @@ Eigen::VectorXd ProcessorForceTorquePreint::correctDelta (const Eigen::VectorXd& ...@@ -121,15 +121,27 @@ Eigen::VectorXd ProcessorForceTorquePreint::correctDelta (const Eigen::VectorXd&
VectorXd ProcessorForceTorquePreint::getCalibration (const CaptureBasePtr _capture) const VectorXd ProcessorForceTorquePreint::getCalibration (const CaptureBasePtr _capture) const
{ {
VectorXd bias_vec(6); VectorXd bias_vec(6);
CaptureForceTorquePreintPtr cap_ft(std::static_pointer_cast<CaptureForceTorquePreint>(_capture));
// get calib part from Ikin capture if (_capture) // access from capture is quicker
bias_vec.segment<3>(0) = cap_ft->getIkinCaptureOther()->getSensorIntrinsic()->getState(); {
CaptureForceTorquePreintPtr cap_ft(std::static_pointer_cast<CaptureForceTorquePreint>(_capture));
// get calib part from IMU capture // get calib part from Ikin capture
bias_vec.segment<3>(3) = cap_ft->getGyroCaptureOther()->getSensorIntrinsic()->getState().tail<3>(); // TODO: only valib for IMU bias sb or any other of the structure [XXXX, gyro_bias] bias_vec.segment<3>(0) = cap_ft->getIkinCaptureOther()->getSensorIntrinsic()->getState();
// get calib part from IMU capture
bias_vec.segment<3>(3) = cap_ft->getGyroCaptureOther()->getSensorIntrinsic()->getState().tail<3>(); // TODO: only valib for IMU bias sb or any other of the structure [XXXX, gyro_bias]
}
else // access from sensor is slower
{
// get calib part from Ikin capture
bias_vec.segment<3>(0) = sensor_ikin_->getIntrinsic()->getState();
// get calib part from IMU capture
bias_vec.segment<3>(3) = sensor_angvel_->getIntrinsic()->getState().tail<3>(); // TODO: only valib for IMU bias sb or any other of the structure [XXXX, gyro_bias]
}
return bias_vec; return bias_vec;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment