Skip to content
Snippets Groups Projects
Commit 1e5ae7ea authored by Mederic Fourmy's avatar Mederic Fourmy
Browse files

[skip-ci] add a argument to parameter to set IMU biases static/dynamic

parent 1f13c7fe
No related branches found
No related tags found
1 merge request!54devel->main
...@@ -7,3 +7,5 @@ motion_variances: ...@@ -7,3 +7,5 @@ motion_variances:
wb_initial_stdev: 0.350 # rad/sec - initial bias wb_initial_stdev: 0.350 # rad/sec - initial bias
ab_rate_stdev: 0.1 # m/s2/sqrt(s) ab_rate_stdev: 0.1 # m/s2/sqrt(s)
wb_rate_stdev: 0.0400 # rad/s/sqrt(s) wb_rate_stdev: 0.0400 # rad/s/sqrt(s)
dynamic_imu_bias: true
\ No newline at end of file
...@@ -47,6 +47,9 @@ struct ParamsSensorImu : public ParamsSensorBase ...@@ -47,6 +47,9 @@ struct ParamsSensorImu : public ParamsSensorBase
double ab_rate_stdev = 0.00001; double ab_rate_stdev = 0.00001;
double wb_rate_stdev = 0.00001; double wb_rate_stdev = 0.00001;
// TODO: NOT necessary after the big refactor
bool dynamic_imu_bias = true;
~ParamsSensorImu() override = default; ~ParamsSensorImu() override = default;
ParamsSensorImu() ParamsSensorImu()
{ {
...@@ -61,6 +64,7 @@ struct ParamsSensorImu : public ParamsSensorBase ...@@ -61,6 +64,7 @@ struct ParamsSensorImu : public ParamsSensorBase
wb_initial_stdev = _server.getParam<double>(prefix + _unique_name + "/wb_initial_stdev"); wb_initial_stdev = _server.getParam<double>(prefix + _unique_name + "/wb_initial_stdev");
ab_rate_stdev = _server.getParam<double>(prefix + _unique_name + "/ab_rate_stdev"); ab_rate_stdev = _server.getParam<double>(prefix + _unique_name + "/ab_rate_stdev");
wb_rate_stdev = _server.getParam<double>(prefix + _unique_name + "/wb_rate_stdev"); wb_rate_stdev = _server.getParam<double>(prefix + _unique_name + "/wb_rate_stdev");
dynamic_imu_bias = _server.getParam<bool> (prefix + _unique_name + "/dynamic_imu_bias");
} }
std::string print() const override std::string print() const override
{ {
...@@ -70,7 +74,8 @@ struct ParamsSensorImu : public ParamsSensorBase ...@@ -70,7 +74,8 @@ struct ParamsSensorImu : public ParamsSensorBase
+ "ab_initial_stdev: " + std::to_string(ab_initial_stdev) + "\n" + "ab_initial_stdev: " + std::to_string(ab_initial_stdev) + "\n"
+ "wb_initial_stdev: " + std::to_string(wb_initial_stdev) + "\n" + "wb_initial_stdev: " + std::to_string(wb_initial_stdev) + "\n"
+ "ab_rate_stdev: " + std::to_string(ab_rate_stdev) + "\n" + "ab_rate_stdev: " + std::to_string(ab_rate_stdev) + "\n"
+ "wb_rate_stdev: " + std::to_string(wb_rate_stdev) + "\n"; + "wb_rate_stdev: " + std::to_string(wb_rate_stdev) + "\n"
+ "dynamic_imu_bias: " + std::to_string(wb_rate_stdev) + "\n";
} }
}; };
......
...@@ -38,7 +38,7 @@ SensorImu::SensorImu(const Eigen::VectorXd& _extrinsics, const ParamsSensorImu& ...@@ -38,7 +38,7 @@ SensorImu::SensorImu(const Eigen::VectorXd& _extrinsics, const ParamsSensorImu&
std::make_shared<StateQuaternion>(_extrinsics.tail(4), true, false), std::make_shared<StateQuaternion>(_extrinsics.tail(4), true, false),
std::make_shared<StateParams6>(Vector6d::Zero(), false), std::make_shared<StateParams6>(Vector6d::Zero(), false),
(Eigen::Vector6d()<<_params.a_noise,_params.a_noise,_params.a_noise,_params.w_noise,_params.w_noise,_params.w_noise).finished(), (Eigen::Vector6d()<<_params.a_noise,_params.a_noise,_params.a_noise,_params.w_noise,_params.w_noise,_params.w_noise).finished(),
false, false, true), false, false, _params.dynamic_imu_bias),
a_noise(_params.a_noise), a_noise(_params.a_noise),
w_noise(_params.w_noise), w_noise(_params.w_noise),
ab_initial_stdev(_params.ab_initial_stdev), ab_initial_stdev(_params.ab_initial_stdev),
......
...@@ -59,6 +59,8 @@ static ParamsSensorBasePtr createParamsSensorImu(const std::string & _filename_d ...@@ -59,6 +59,8 @@ static ParamsSensorBasePtr createParamsSensorImu(const std::string & _filename_d
params->ab_rate_stdev = variances["ab_rate_stdev"] .as<double>(); params->ab_rate_stdev = variances["ab_rate_stdev"] .as<double>();
params->wb_rate_stdev = variances["wb_rate_stdev"] .as<double>(); params->wb_rate_stdev = variances["wb_rate_stdev"] .as<double>();
params->dynamic_imu_bias = config["dynamic_imu_bias"] .as<bool>();
return params; return params;
} }
......
...@@ -7,3 +7,5 @@ motion_variances: ...@@ -7,3 +7,5 @@ motion_variances:
wb_initial_stdev: 0.350 # rad/sec - initial bias wb_initial_stdev: 0.350 # rad/sec - initial bias
ab_rate_stdev: 0.1 # m/s2/sqrt(s) ab_rate_stdev: 0.1 # m/s2/sqrt(s)
wb_rate_stdev: 0.0400 # rad/s/sqrt(s) wb_rate_stdev: 0.0400 # rad/s/sqrt(s)
dynamic_imu_bias: true
\ No newline at end of file
...@@ -7,3 +7,5 @@ motion_variances: ...@@ -7,3 +7,5 @@ motion_variances:
wb_initial_stdev: 0.001 # rad/sec - initial bias wb_initial_stdev: 0.001 # rad/sec - initial bias
ab_rate_stdev: 0.001 # m/s2/sqrt(s) ab_rate_stdev: 0.001 # m/s2/sqrt(s)
wb_rate_stdev: 0.001 # rad/s/sqrt(s) wb_rate_stdev: 0.001 # rad/s/sqrt(s)
dynamic_imu_bias: false
\ No newline at end of file
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