Skip to content

Commit 2496e35

Browse files
danielsanchezarankarishma1911
authored andcommitted
feat(mrm_emergency_stop_operator): add support for real time param reconfigure for mrm_emergency_stop (autowarefoundation#6994)
add support for real time param reconfigure for mrm_emergency_stop Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
1 parent 801c361 commit 2496e35

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

system/mrm_emergency_stop_operator/include/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.hpp

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
// ROS 2 core
2828
#include <rclcpp/rclcpp.hpp>
2929

30+
#include <vector>
3031
namespace mrm_emergency_stop_operator
3132
{
3233
using autoware_auto_control_msgs::msg::AckermannControlCommand;
@@ -48,6 +49,10 @@ class MrmEmergencyStopOperator : public rclcpp::Node
4849
private:
4950
// Parameters
5051
Parameters params_;
52+
OnSetParametersCallbackHandle::SharedPtr set_param_res_;
53+
54+
rcl_interfaces::msg::SetParametersResult onParameter(
55+
const std::vector<rclcpp::Parameter> & parameters);
5156

5257
// Subscriber
5358
rclcpp::Subscription<AckermannControlCommand>::SharedPtr sub_control_cmd_;

system/mrm_emergency_stop_operator/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<depend>rclcpp_components</depend>
1818
<depend>std_msgs</depend>
1919
<depend>std_srvs</depend>
20+
<depend>tier4_autoware_utils</depend>
2021
<depend>tier4_system_msgs</depend>
2122

2223
<test_depend>ament_lint_auto</test_depend>

system/mrm_emergency_stop_operator/src/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
#include "mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.hpp"
1616

17+
#include <tier4_autoware_utils/ros/update_param.hpp>
18+
1719
namespace mrm_emergency_stop_operator
1820
{
1921

@@ -49,6 +51,23 @@ MrmEmergencyStopOperator::MrmEmergencyStopOperator(const rclcpp::NodeOptions & n
4951
// Initialize
5052
status_.state = MrmBehaviorStatus::AVAILABLE;
5153
is_prev_control_cmd_subscribed_ = false;
54+
55+
// Parameter Callback
56+
set_param_res_ = add_on_set_parameters_callback(
57+
std::bind(&MrmEmergencyStopOperator::onParameter, this, std::placeholders::_1));
58+
}
59+
60+
rcl_interfaces::msg::SetParametersResult MrmEmergencyStopOperator::onParameter(
61+
const std::vector<rclcpp::Parameter> & parameters)
62+
{
63+
using tier4_autoware_utils::updateParam;
64+
updateParam<double>(parameters, "target_acceleration", params_.target_acceleration);
65+
updateParam<double>(parameters, "target_jerk", params_.target_jerk);
66+
67+
rcl_interfaces::msg::SetParametersResult result;
68+
result.successful = true;
69+
result.reason = "success";
70+
return result;
5271
}
5372

5473
void MrmEmergencyStopOperator::onControlCommand(AckermannControlCommand::ConstSharedPtr msg)

0 commit comments

Comments
 (0)