Skip to content

Commit 4e5273a

Browse files
Add a parameter to set initial enabled state for the collision monitor (#5554)
* Added a new parameter to set initial enabled state for the collision monitor Signed-off-by: Abhishekh Reddy <[email protected]> * Fixed enabled_at_start parameter default value Signed-off-by: Abhishekh Reddy <[email protected]> * Updated toggle service unit test for code coverage Signed-off-by: Abhishekh Reddy <[email protected]> * Updated enabled state log message on startup Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> * Updated enabled state log message on startup Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> * Renamed parameter to 'enabled' Signed-off-by: Abhishekh Reddy <[email protected]> --------- Signed-off-by: Abhishekh Reddy <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
1 parent d36bdd1 commit 4e5273a

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

nav2_bringup/params/nav2_params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@ velocity_smoother:
485485

486486
collision_monitor:
487487
ros__parameters:
488+
enabled: True
488489
base_frame_id: "base_footprint"
489490
odom_frame_id: "odom"
490491
cmd_vel_in_topic: "cmd_vel_smoothed"

nav2_collision_monitor/params/collision_monitor_params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
collision_monitor:
22
ros__parameters:
3+
enabled: True
34
base_frame_id: "base_footprint"
45
odom_frame_id: "odom"
56
cmd_vel_in_topic: "cmd_vel_smoothed"

nav2_collision_monitor/src/collision_monitor_node.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ CollisionMonitor::on_configure(const rclcpp_lifecycle::State & state)
102102
}
103103
}
104104

105+
nav2::declare_parameter_if_not_declared(node, "enabled", rclcpp::ParameterValue(true));
106+
node->get_parameter("enabled", enabled_);
107+
108+
if (!enabled_) {
109+
RCLCPP_WARN(get_logger(), "Collision monitor is disabled at startup.");
110+
} else {
111+
RCLCPP_INFO(get_logger(), "Collision monitor is enabled at startup.");
112+
}
113+
105114
return nav2::CallbackReturn::SUCCESS;
106115
}
107116

nav2_collision_monitor/test/collision_monitor_node_test.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ Tester::~Tester()
302302

303303
void Tester::setCommonParameters()
304304
{
305+
cm_->declare_parameter("enabled", rclcpp::ParameterValue(true));
306+
305307
cm_->declare_parameter(
306308
"cmd_vel_in_topic", rclcpp::ParameterValue(CMD_VEL_IN_TOPIC));
307309
cm_->set_parameter(
@@ -841,26 +843,30 @@ TEST_F(Tester, testToggleService)
841843
addSource(SCAN_NAME, SCAN);
842844
setVectors({"Stop"}, {SCAN_NAME});
843845

846+
// Test the parameter in disabled state
847+
cm_->set_parameter(rclcpp::Parameter("enabled", false));
848+
844849
// Start collision monitor node
845850
cm_->start();
851+
ASSERT_FALSE(cm_->isEnabled());
846852

847853
auto request = std::make_shared<nav2_msgs::srv::Toggle::Request>();
848854

849-
// Disable test
850-
request->enable = false;
855+
// Enable test
856+
request->enable = true;
851857
{
852858
auto result_future = toggle_client_->async_call(request);
853859
ASSERT_TRUE(waitToggle(result_future, 2s));
854860
}
855-
ASSERT_FALSE(cm_->isEnabled());
861+
ASSERT_TRUE(cm_->isEnabled());
856862

857-
// Enable test
858-
request->enable = true;
863+
// Disable test
864+
request->enable = false;
859865
{
860866
auto result_future = toggle_client_->async_call(request);
861867
ASSERT_TRUE(waitToggle(result_future, 2s));
862868
}
863-
ASSERT_TRUE(cm_->isEnabled());
869+
ASSERT_FALSE(cm_->isEnabled());
864870

865871
// Stop the collision monitor
866872
cm_->stop();

0 commit comments

Comments
 (0)