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

Add yanml params to fix calibration states

parent 88617e0d
No related branches found
No related tags found
2 merge requests!31devel->main,!30Complete UAV identification setup
...@@ -46,6 +46,7 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase ...@@ -46,6 +46,7 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
Vector3d com; Vector3d com;
Vector3d inertia; Vector3d inertia;
double mass; double mass;
bool imu_bias_fix, com_fix, inertia_fix, mass_fix;
ParamsSensorForceTorqueInertial() = default; ParamsSensorForceTorqueInertial() = default;
ParamsSensorForceTorqueInertial(std::string _unique_name, const ParamsServer& _server) ParamsSensorForceTorqueInertial(std::string _unique_name, const ParamsServer& _server)
...@@ -62,6 +63,10 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase ...@@ -62,6 +63,10 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
com = _server.getParam<Vector3d>(prefix + _unique_name + "/com"); com = _server.getParam<Vector3d>(prefix + _unique_name + "/com");
inertia = _server.getParam<Vector3d>(prefix + _unique_name + "/inertia"); inertia = _server.getParam<Vector3d>(prefix + _unique_name + "/inertia");
mass = _server.getParam<double>(prefix + _unique_name + "/mass"); mass = _server.getParam<double>(prefix + _unique_name + "/mass");
imu_bias_fix = _server.getParam<bool> (prefix + _unique_name + "/imu_bias_fix");
com_fix = _server.getParam<bool> (prefix + _unique_name + "/com_fix");
inertia_fix = _server.getParam<bool> (prefix + _unique_name + "/inertia_fix");
mass_fix = _server.getParam<bool> (prefix + _unique_name + "/mass_fix");
} }
~ParamsSensorForceTorqueInertial() override = default; ~ParamsSensorForceTorqueInertial() override = default;
std::string print() const override std::string print() const override
......
...@@ -34,16 +34,16 @@ SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorXd& ...@@ -34,16 +34,16 @@ SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorXd&
: SensorBase("SensorForceTorqueInertial", : SensorBase("SensorForceTorqueInertial",
FactoryStateBlock::create("StatePoint3d", _extrinsics.head(3), true), FactoryStateBlock::create("StatePoint3d", _extrinsics.head(3), true),
FactoryStateBlock::create("StateQuaternion", _extrinsics.tail(4), true), FactoryStateBlock::create("StateQuaternion", _extrinsics.tail(4), true),
FactoryStateBlock::create("StateParams6", Vector6d::Zero(), false), // IMU bias FactoryStateBlock::create("StateParams6", Vector6d::Zero(), _params->imu_bias_fix), // IMU bias
12, 12,
false, false,
false, false,
false), false),
params_fti_(_params) params_fti_(_params)
{ {
addStateBlock('C', FactoryStateBlock::create("StateParams3", params_fti_->com, true)); // centre of mass addStateBlock('C', FactoryStateBlock::create("StateParams3", params_fti_->com, params_fti_->com_fix)); // centre of mass
addStateBlock('i', FactoryStateBlock::create("StateParams3", params_fti_->inertia, true)); // inertial vector addStateBlock('i', FactoryStateBlock::create("StateParams3", params_fti_->inertia, params_fti_->inertia_fix)); // inertial vector
addStateBlock('m', FactoryStateBlock::create("StateParams1", Vector1d(params_fti_->mass), true)); // total mass addStateBlock('m', FactoryStateBlock::create("StateParams1", Vector1d(params_fti_->mass), params_fti_->mass_fix)); // total mass
setStateBlockDynamic('I', false); setStateBlockDynamic('I', false);
setStateBlockDynamic('C', false); setStateBlockDynamic('C', false);
setStateBlockDynamic('i', false); setStateBlockDynamic('i', false);
......
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