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

Make redians_per_tick_ a non-user parameter

parent 19b682e1
No related branches found
No related tags found
1 merge request!319Resolve "Remove non-user params from IntrinsicsDiffDrive"
...@@ -22,8 +22,6 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase ...@@ -22,8 +22,6 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase
Scalar wheel_separation; Scalar wheel_separation;
Scalar ticks_per_wheel_revolution; Scalar ticks_per_wheel_revolution;
Scalar radians_per_tick; ///< Not user-definable -- DO NOT PRETEND TO USE YAML TO SET THIS PARAM.
IntrinsicsDiffDrive() = default; IntrinsicsDiffDrive() = default;
IntrinsicsDiffDrive(std::string _unique_name, const wolf::ParamsServer & _server) : IntrinsicsDiffDrive(std::string _unique_name, const wolf::ParamsServer & _server) :
...@@ -33,17 +31,14 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase ...@@ -33,17 +31,14 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase
radius_right = _server.getParam<Scalar>(_unique_name + "/radius_right"); radius_right = _server.getParam<Scalar>(_unique_name + "/radius_right");
wheel_separation = _server.getParam<Scalar>(_unique_name + "/wheel_separation"); wheel_separation = _server.getParam<Scalar>(_unique_name + "/wheel_separation");
ticks_per_wheel_revolution = _server.getParam<Scalar>(_unique_name + "/ticks_per_wheel_revolution"); ticks_per_wheel_revolution = _server.getParam<Scalar>(_unique_name + "/ticks_per_wheel_revolution");
radians_per_tick = 2.0 * M_PI / ticks_per_wheel_revolution;
} }
std::string print()
std::string print() const std::string print() const
{ {
return "\n" + IntrinsicsBase::print() + "\n" return "\n" + IntrinsicsBase::print() + "\n"
+ "radius_left: " + std::to_string(radius_left) + "\n" + "radius_left: " + std::to_string(radius_left) + "\n"
+ "radius_right: " + std::to_string(radius_right) + "\n" + "radius_right: " + std::to_string(radius_right) + "\n"
+ "wheel_separation: " + std::to_string(wheel_separation) + "\n" + "wheel_separation: " + std::to_string(wheel_separation) + "\n"
+ "ticks_per_wheel_revolution: " + std::to_string(ticks_per_wheel_revolution)+ "\n" + "ticks_per_wheel_revolution: " + std::to_string(ticks_per_wheel_revolution)+ "\n";
+ "radians_per_tick: " + std::to_string(radians_per_tick) + "\n";
} }
}; };
...@@ -59,8 +54,15 @@ class SensorDiffDrive : public SensorBase ...@@ -59,8 +54,15 @@ class SensorDiffDrive : public SensorBase
virtual ~SensorDiffDrive(); virtual ~SensorDiffDrive();
IntrinsicsDiffDriveConstPtr getParams() const {return params_diff_drive_;} IntrinsicsDiffDriveConstPtr getParams() const {return params_diff_drive_;}
Scalar getRadiansPerTick() const
{
return radians_per_tick;
}
protected: protected:
IntrinsicsDiffDrivePtr params_diff_drive_; IntrinsicsDiffDrivePtr params_diff_drive_;
Scalar radians_per_tick; ///< Not user-definable -- DO NOT PRETEND TO USE YAML TO SET THIS PARAM.
}; };
} /* namespace wolf */ } /* namespace wolf */
......
...@@ -38,7 +38,7 @@ void ProcessorDiffDrive::configure(SensorBasePtr _sensor) ...@@ -38,7 +38,7 @@ void ProcessorDiffDrive::configure(SensorBasePtr _sensor)
SensorDiffDriveConstPtr sensor_diff_drive = std::static_pointer_cast<SensorDiffDrive>(_sensor); SensorDiffDriveConstPtr sensor_diff_drive = std::static_pointer_cast<SensorDiffDrive>(_sensor);
radians_per_tick_ = sensor_diff_drive->getParams()->radians_per_tick; radians_per_tick_ = sensor_diff_drive->getRadiansPerTick();
} }
......
...@@ -20,7 +20,7 @@ SensorDiffDrive::SensorDiffDrive(const Eigen::VectorXs& _extrinsics, ...@@ -20,7 +20,7 @@ SensorDiffDrive::SensorDiffDrive(const Eigen::VectorXs& _extrinsics,
2), 2),
params_diff_drive_(_intrinsics) params_diff_drive_(_intrinsics)
{ {
params_diff_drive_->radians_per_tick = 2.0*M_PI / params_diff_drive_->ticks_per_wheel_revolution; radians_per_tick = 2.0*M_PI / params_diff_drive_->ticks_per_wheel_revolution;
getIntrinsic()->setState(Eigen::Vector3s(_intrinsics->radius_left,_intrinsics->radius_right,_intrinsics->wheel_separation)); getIntrinsic()->setState(Eigen::Vector3s(_intrinsics->radius_left,_intrinsics->radius_right,_intrinsics->wheel_separation));
getIntrinsic()->unfix(); getIntrinsic()->unfix();
} }
......
...@@ -30,7 +30,6 @@ TEST(DiffDrive, constructor) ...@@ -30,7 +30,6 @@ TEST(DiffDrive, constructor)
TEST(DiffDrive, getParams) TEST(DiffDrive, getParams)
{ {
auto intr = std::make_shared<IntrinsicsDiffDrive>(); auto intr = std::make_shared<IntrinsicsDiffDrive>();
intr->radians_per_tick = 1;
intr->radius_left = 2; intr->radius_left = 2;
intr->radius_right = 3; intr->radius_right = 3;
intr->ticks_per_wheel_revolution = 4; intr->ticks_per_wheel_revolution = 4;
...@@ -42,7 +41,7 @@ TEST(DiffDrive, getParams) ...@@ -42,7 +41,7 @@ TEST(DiffDrive, getParams)
ASSERT_NE(sen->getParams(), nullptr); ASSERT_NE(sen->getParams(), nullptr);
ASSERT_EQ(sen->getParams()->radians_per_tick, 2.0*M_PI/intr->ticks_per_wheel_revolution); // this is dependent on 'ticks_per_wheel_revolution' ASSERT_EQ(sen->getRadiansPerTick(), 2.0*M_PI/intr->ticks_per_wheel_revolution); // this is dependent on 'ticks_per_wheel_revolution'
ASSERT_EQ(sen->getParams()->radius_left, 2); ASSERT_EQ(sen->getParams()->radius_left, 2);
ASSERT_EQ(sen->getParams()->radius_right, 3); ASSERT_EQ(sen->getParams()->radius_right, 3);
ASSERT_EQ(sen->getParams()->ticks_per_wheel_revolution, 4); ASSERT_EQ(sen->getParams()->ticks_per_wheel_revolution, 4);
...@@ -52,7 +51,6 @@ TEST(DiffDrive, getParams) ...@@ -52,7 +51,6 @@ TEST(DiffDrive, getParams)
TEST(DiffDrive, create) TEST(DiffDrive, create)
{ {
auto intr = std::make_shared<IntrinsicsDiffDrive>(); auto intr = std::make_shared<IntrinsicsDiffDrive>();
intr->radians_per_tick = 1;
intr->radius_left = 2; intr->radius_left = 2;
intr->radius_right = 3; intr->radius_right = 3;
intr->ticks_per_wheel_revolution = 4; intr->ticks_per_wheel_revolution = 4;
...@@ -66,7 +64,7 @@ TEST(DiffDrive, create) ...@@ -66,7 +64,7 @@ TEST(DiffDrive, create)
ASSERT_NE(sen->getParams(), nullptr); ASSERT_NE(sen->getParams(), nullptr);
ASSERT_EQ(sen->getParams()->radians_per_tick, 2.0*M_PI/intr->ticks_per_wheel_revolution); // this is dependent on 'ticks_per_wheel_revolution' ASSERT_EQ(sen->getRadiansPerTick(), 2.0*M_PI/intr->ticks_per_wheel_revolution); // this is dependent on 'ticks_per_wheel_revolution'
ASSERT_EQ(sen->getParams()->radius_left, 2); ASSERT_EQ(sen->getParams()->radius_left, 2);
ASSERT_EQ(sen->getParams()->radius_right, 3); ASSERT_EQ(sen->getParams()->radius_right, 3);
ASSERT_EQ(sen->getParams()->ticks_per_wheel_revolution, 4); ASSERT_EQ(sen->getParams()->ticks_per_wheel_revolution, 4);
......
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