From 4c1c9e649beceeb08f760066e0cc090837296ea2 Mon Sep 17 00:00:00 2001 From: Ramon Wijnands Date: Thu, 28 Mar 2024 19:07:05 +0100 Subject: [PATCH] Document gracefull cancellation API (#535) * Document gracefull cancellation API Signed-off-by: Ramon Wijnands * Update plugin_tutorials/docs/writing_new_nav2controller_plugin.rst Signed-off-by: Ramon Wijnands Co-authored-by: Steve Macenski * Add graceful cancellation API to the migration guides Signed-off-by: Ramon Wijnands * Update migration/Iron.rst Co-authored-by: Steve Macenski * Add documentation for the RPP cancel_deceleration parameter --------- Signed-off-by: Ramon Wijnands Co-authored-by: Steve Macenski --- configuration/packages/configuring-regulated-pp.rst | 11 +++++++++++ migration/Iron.rst | 5 +++++ .../docs/writing_new_nav2controller_plugin.rst | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/configuration/packages/configuring-regulated-pp.rst b/configuration/packages/configuring-regulated-pp.rst index 311463f8d..8890aa9e1 100644 --- a/configuration/packages/configuring-regulated-pp.rst +++ b/configuration/packages/configuring-regulated-pp.rst @@ -266,6 +266,17 @@ Regulated Pure Pursuit Parameters Description Maximum allowable angular acceleration (rad/s/s) while rotating to heading, if ``use_rotate_to_heading`` is ``true``. +:cancel_deceleration: + + ============== ============================= + Type Default + -------------- ----------------------------- + double 3.2 + ============== ============================= + + Description + Linear deceleration (m/s/s) to apply when the goal is canceled. + :max_robot_pose_search_dist: ============== ================================================= diff --git a/migration/Iron.rst b/migration/Iron.rst index e4542fb17..d2b43bdac 100644 --- a/migration/Iron.rst +++ b/migration/Iron.rst @@ -299,3 +299,8 @@ New collision monitor parameter ******************************* `PR #4207 `_ introduces a new boolean parameter ``polygon_subscribe_transient_local`` (value is false by default), which set the QoS durability for polygon topic or footprint topic subscription. + +New graceful cancellation API for Controllers +********************************************* + +`PR #4136 `_ introduces a new graceful cancellation API for controllers. Previously when a goal was canceled, the controller would stop the robot immediately. This API allows the controller to stop the robot in a more graceful way. The new API is implemented in the ``RegulatedPurePursuitController`` by adding a new parameter ``cancel_deceleration``. So when the goal is canceled, a constant deceleration will be used while continuing to track the path to stop the robot instead of stopping immediately. This API can be should be added to all controllers that have acceleration limits. diff --git a/plugin_tutorials/docs/writing_new_nav2controller_plugin.rst b/plugin_tutorials/docs/writing_new_nav2controller_plugin.rst index 8417dd474..8ed3f70cc 100644 --- a/plugin_tutorials/docs/writing_new_nav2controller_plugin.rst +++ b/plugin_tutorials/docs/writing_new_nav2controller_plugin.rst @@ -73,6 +73,11 @@ The list of methods, their descriptions, and necessity are presented in the tabl | | robot to drive. This method passes 2 parameters: reference to the current robot | | | | pose and its current velocity. | | +---------------------------+---------------------------------------------------------------------------------------+------------------------+ +| cancel() | Method is called when the controller server receives a cancel request. If this method | No | +| | is unimplemented, the controller will immediately stop when receiving a cancel | | +| | request. If this method is implemented, the controller can perform a more graceful | | +| | stop and signal the controller server when it is done. | | ++---------------------------+---------------------------------------------------------------------------------------+------------------------+ | setSpeedLimit() | Method is called when it is required to limit the maximum linear speed of the robot. | Yes | | | Speed limit could be expressed in absolute value (m/s) or in percentage from maximum | | | | robot speed. Note that typically, maximum rotational speed is being limited | |