Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ForceTorqueSensorBroadcaster] Create ParamListener and get parameters on configure (backport #698) #750

Merged
merged 2 commits into from Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -29,6 +29,12 @@ ForceTorqueSensorBroadcaster::ForceTorqueSensorBroadcaster()
}

controller_interface::CallbackReturn ForceTorqueSensorBroadcaster::on_init()
{
return controller_interface::CallbackReturn::SUCCESS;
}

controller_interface::CallbackReturn ForceTorqueSensorBroadcaster::on_configure(
const rclcpp_lifecycle::State & /*previous_state*/)
{
try
{
Expand All @@ -37,18 +43,10 @@ controller_interface::CallbackReturn ForceTorqueSensorBroadcaster::on_init()
}
catch (const std::exception & e)
{
fprintf(stderr, "Exception thrown during init stage with message: %s \n", e.what());
fprintf(stderr, "Exception thrown during configure stage with message: %s \n", e.what());
return controller_interface::CallbackReturn::ERROR;
}

return controller_interface::CallbackReturn::SUCCESS;
}

controller_interface::CallbackReturn ForceTorqueSensorBroadcaster::on_configure(
const rclcpp_lifecycle::State & /*previous_state*/)
{
params_ = param_listener_->get_params();

const bool no_interface_names_defined =
params_.interface_names.force.x.empty() && params_.interface_names.force.y.empty() &&
params_.interface_names.force.z.empty() && params_.interface_names.torque.x.empty() &&
Expand Down
Expand Up @@ -111,11 +111,12 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_InterfaceNames_Set)
SetUpFTSBroadcaster();

// set the 'sensor_name'
fts_broadcaster_->get_node()->set_parameter({"sensor_name", sensor_name_});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", sensor_name_);

// set the 'interface_names'
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", "fts_sensor/force.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", "fts_sensor/torque.z"});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "fts_sensor/force.x");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.z", "fts_sensor/torque.z");

// configure failed, both 'sensor_name' and 'interface_names' supplied
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_ERROR);
Expand All @@ -126,7 +127,7 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_IsEmpty_InterfaceNames_NotSe
SetUpFTSBroadcaster();

// set the 'sensor_name' empty
fts_broadcaster_->get_node()->set_parameter({"sensor_name", ""});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", "");

// configure failed, 'sensor_name' parameter empty
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_ERROR);
Expand All @@ -137,8 +138,8 @@ TEST_F(ForceTorqueSensorBroadcasterTest, InterfaceNames_IsEmpty_SensorName_NotSe
SetUpFTSBroadcaster();

// set the 'interface_names' empty
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", ""});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", ""});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "");
fts_broadcaster_->get_node()->declare_parameter("interface_names.torque.z", "");

// configure failed, 'interface_name' parameter empty
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_ERROR);
Expand All @@ -149,10 +150,10 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_Configure_Success)
SetUpFTSBroadcaster();

// set the 'sensor_name'
fts_broadcaster_->get_node()->set_parameter({"sensor_name", sensor_name_});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", sensor_name_);

// set the 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

// configure passed
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -163,11 +164,12 @@ TEST_F(ForceTorqueSensorBroadcasterTest, InterfaceNames_Configure_Success)
SetUpFTSBroadcaster();

// set the 'interface_names'
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", "fts_sensor/force.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", "fts_sensor/torque.z"});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "fts_sensor/force.x");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.z", "fts_sensor/torque.z");

// set the 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

// configure passed
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -178,8 +180,8 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_Activate_Success)
SetUpFTSBroadcaster();

// set the params 'sensor_name' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"sensor_name", sensor_name_});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", sensor_name_);
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

// configure and activate success
ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -191,8 +193,8 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_Update_Success)
SetUpFTSBroadcaster();

// set the params 'sensor_name' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"sensor_name", sensor_name_});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", sensor_name_);
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(fts_broadcaster_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -207,9 +209,10 @@ TEST_F(ForceTorqueSensorBroadcasterTest, InterfaceNames_Success)
SetUpFTSBroadcaster();

// set the params 'interface_names' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", "fts_sensor/force.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", "fts_sensor/torque.z"});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "fts_sensor/force.x");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.z", "fts_sensor/torque.z");
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(fts_broadcaster_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -223,8 +226,8 @@ TEST_F(ForceTorqueSensorBroadcasterTest, SensorName_Publish_Success)
SetUpFTSBroadcaster();

// set the params 'sensor_name' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"sensor_name", sensor_name_});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("sensor_name", sensor_name_);
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(fts_broadcaster_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -246,9 +249,10 @@ TEST_F(ForceTorqueSensorBroadcasterTest, InterfaceNames_Publish_Success)
SetUpFTSBroadcaster();

// set the params 'interface_names' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", "fts_sensor/force.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", "fts_sensor/torque.z"});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "fts_sensor/force.x");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.z", "fts_sensor/torque.z");
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(fts_broadcaster_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand All @@ -270,13 +274,16 @@ TEST_F(ForceTorqueSensorBroadcasterTest, All_InterfaceNames_Publish_Success)
SetUpFTSBroadcaster();

// set all the params 'interface_names' and 'frame_id'
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.x", "fts_sensor/force.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.y", "fts_sensor/force.y"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.force.z", "fts_sensor/force.z"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.x", "fts_sensor/torque.x"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.y", "fts_sensor/torque.y"});
fts_broadcaster_->get_node()->set_parameter({"interface_names.torque.z", "fts_sensor/torque.z"});
fts_broadcaster_->get_node()->set_parameter({"frame_id", frame_id_});
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.x", "fts_sensor/force.x");
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.y", "fts_sensor/force.y");
fts_broadcaster_->get_node()->declare_parameter("interface_names.force.z", "fts_sensor/force.z");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.x", "fts_sensor/torque.x");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.y", "fts_sensor/torque.y");
fts_broadcaster_->get_node()->declare_parameter(
"interface_names.torque.z", "fts_sensor/torque.z");
fts_broadcaster_->get_node()->declare_parameter("frame_id", frame_id_);

ASSERT_EQ(fts_broadcaster_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(fts_broadcaster_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);
Expand Down