Skip to content
Snippets Groups Projects
Commit 816da2c4 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

wip

parent c85900ae
No related branches found
No related tags found
1 merge request!411Draft: Resolve "SensorBase: extrinsic and intrinsic initialization and prior"
Pipeline #8612 failed
...@@ -155,6 +155,28 @@ struct ParamsSensorBase: public ParamsBase ...@@ -155,6 +155,28 @@ struct ParamsSensorBase: public ParamsBase
~ParamsSensorBase() override = default; ~ParamsSensorBase() override = default;
void getStateBlockPrior(const ParamsServer& _server, const std::string& _unique_name, const char _key, bool _mandatory = false)
{
try
{
state_blocks.emplace(_key,ParamsStateBlock());
state_blocks[_key].state = _server.getParam<Eigen::VectorXd> (prefix + _unique_name + "/" + std::to_string(_key) + "/state");
state_blocks[_key].prior_mode = _server.getParam<std::string> (prefix + _unique_name + "/" + std::to_string(_key) + "/prior_mode");
state_blocks[_key].dynamic = _server.getParam<bool> (prefix + _unique_name + "/" + std::to_string(_key) + "/is_dynamic");
if (state_blocks[_key].prior_mode == "factor")
state_blocks[_key].sigma = _server.getParam<Eigen::VectorXd> (prefix + _unique_name + "/" + std::to_string(_key) + "/sigma");
assert((state_blocks[_key].prior_mode == "initial_guess" or
state_blocks[_key].prior_mode == "fix" or
state_blocks[_key].prior_mode == "factor") and
"wrong prior_mode value, it should be: 'initial_guess', 'fix' or 'factor'");
}
catch(...)
{
if (_mandatory)
throw std::runtime_error("Prior for state block " + std::to_string(_key) + " not found");
}
}
std::string print() const override std::string print() const override
{ {
return ""; return "";
......
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