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

Use a const ref to PrcParamsOdom2D in constructor

parent b5bd6dbb
No related branches found
No related tags found
1 merge request!170Processors api
......@@ -2,18 +2,14 @@
namespace wolf
{
ProcessorOdom2D::ProcessorOdom2D(const Scalar& _dist_traveled_th,
const Scalar& _theta_traveled_th,
const Scalar& _cov_det_th,
const Scalar& _elapsed_time_th,
const Scalar& _unmeasured_perturbation_std) :
ProcessorMotion("ODOM 2D", 3, 3, 3, 2),
dist_traveled_th_(_dist_traveled_th),
theta_traveled_th_(_theta_traveled_th),
cov_det_th_(_cov_det_th),
elapsed_time_th_(_elapsed_time_th)
ProcessorOdom2D::ProcessorOdom2D(const ProcessorParamsOdom2D& _params) :
ProcessorMotion("ODOM 2D", 3, 3, 3, 2),
dist_traveled_th_(_params.dist_traveled_th_),
theta_traveled_th_(_params.theta_traveled_th_),
cov_det_th_(_params.cov_det_th_),
elapsed_time_th_(_params.elapsed_time_th_)
{
unmeasured_perturbation_cov_ = _unmeasured_perturbation_std * _unmeasured_perturbation_std * Matrix3s::Identity();
unmeasured_perturbation_cov_ = _params.unmeasured_perturbation_std_ * _params.unmeasured_perturbation_std_ * Matrix3s::Identity();
}
ProcessorOdom2D::~ProcessorOdom2D()
......@@ -180,11 +176,7 @@ ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const
{
std::shared_ptr<ProcessorParamsOdom2D> params = std::static_pointer_cast<ProcessorParamsOdom2D>(_params);
prc_ptr = std::make_shared<ProcessorOdom2D>(params->dist_traveled_th_,
params->theta_traveled_th_,
params->cov_det_th_,
params->elapsed_time_th_,
params->unmeasured_perturbation_std_);
prc_ptr = std::make_shared<ProcessorOdom2D>(*params);
}
else
{
......
......@@ -21,22 +21,19 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom2D);
struct ProcessorParamsOdom2D : public ProcessorParamsBase
{
Scalar dist_traveled_th_ = 1.0;
Scalar theta_traveled_th_ = 0.17;
Scalar cov_det_th_ = 1.0;
Scalar elapsed_time_th_ = 1.0;
Scalar unmeasured_perturbation_std_ = 0.001;
Scalar dist_traveled_th_ = 1.0; // 1m
Scalar theta_traveled_th_ = 0.17; // 90 degrees
Scalar cov_det_th_ = 1.0; // 1 rad^2
Scalar elapsed_time_th_ = 1.0; // 1s
Scalar unmeasured_perturbation_std_ = 0.001; // no particular dimension: the same for displacement and angle
};
class ProcessorOdom2D : public ProcessorMotion
{
public:
ProcessorOdom2D(const Scalar& _traveled_dist_th = 1.0,
const Scalar& _theta_traveled_th = 0.17,
const Scalar& _cov_det_th = 1.0,
const Scalar& _elapsed_time_th = 1.0,
const Scalar& _unmeasured_perturbation_std = 0.001);
ProcessorOdom2D(const ProcessorParamsOdom2D& _params = ProcessorParamsOdom2D());
virtual ~ProcessorOdom2D();
virtual bool voteForKeyFrame() override;
protected:
......
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