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
Scalar wheel_separation;
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(std::string _unique_name, const wolf::ParamsServer & _server) :
......@@ -33,17 +31,14 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase
radius_right = _server.getParam<Scalar>(_unique_name + "/radius_right");
wheel_separation = _server.getParam<Scalar>(_unique_name + "/wheel_separation");
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
{
return "\n" + IntrinsicsBase::print() + "\n"
+ "radius_left: " + std::to_string(radius_left) + "\n"
+ "radius_right: " + std::to_string(radius_right) + "\n"
+ "wheel_separation: " + std::to_string(wheel_separation) + "\n"
+ "ticks_per_wheel_revolution: " + std::to_string(ticks_per_wheel_revolution)+ "\n"
+ "radians_per_tick: " + std::to_string(radians_per_tick) + "\n";
+ "ticks_per_wheel_revolution: " + std::to_string(ticks_per_wheel_revolution)+ "\n";
}
};
......@@ -59,8 +54,15 @@ class SensorDiffDrive : public SensorBase
virtual ~SensorDiffDrive();
IntrinsicsDiffDriveConstPtr getParams() const {return params_diff_drive_;}
Scalar getRadiansPerTick() const
{
return radians_per_tick;
}
protected:
IntrinsicsDiffDrivePtr params_diff_drive_;
Scalar radians_per_tick; ///< Not user-definable -- DO NOT PRETEND TO USE YAML TO SET THIS PARAM.
};
} /* namespace wolf */
......
......@@ -38,7 +38,7 @@ void ProcessorDiffDrive::configure(SensorBasePtr _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,
2),
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()->unfix();
}
......
......@@ -30,7 +30,6 @@ TEST(DiffDrive, constructor)
TEST(DiffDrive, getParams)
{
auto intr = std::make_shared<IntrinsicsDiffDrive>();
intr->radians_per_tick = 1;
intr->radius_left = 2;
intr->radius_right = 3;
intr->ticks_per_wheel_revolution = 4;
......@@ -42,7 +41,7 @@ TEST(DiffDrive, getParams)
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_right, 3);
ASSERT_EQ(sen->getParams()->ticks_per_wheel_revolution, 4);
......@@ -52,7 +51,6 @@ TEST(DiffDrive, getParams)
TEST(DiffDrive, create)
{
auto intr = std::make_shared<IntrinsicsDiffDrive>();
intr->radians_per_tick = 1;
intr->radius_left = 2;
intr->radius_right = 3;
intr->ticks_per_wheel_revolution = 4;
......@@ -66,7 +64,7 @@ TEST(DiffDrive, create)
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_right, 3);
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