From 4609b9ca05023dac263355013b80014a3c7af19f Mon Sep 17 00:00:00 2001 From: Nikolaos Drosinos Date: Thu, 9 Apr 2026 22:40:07 +0300 Subject: [PATCH] fix: correct external detection rotation in opennav_docking * replace tf2::Quaternion::setEuler() with tf2::Quaternion::setRPY() - setEuler(p, r, y) rotation order: Rz(y) -> Rx(r) -> Ry(p) - setRPY(r, p, y) rotation order: Rx(r) -> Ry(p) -> Rz(y) * the computed rotation remains the same in the following cases: - when yaw rotation equals 0.0, or - when roll and pitch rotations both equal 1.0 * non-default rotation that differs from the above cases will break Implements documentation for https://github.com/ros-navigation/navigation2/pull/6047 Signed-off-by: Nikolaos Drosinos --- migration/Kilted.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/migration/Kilted.rst b/migration/Kilted.rst index 12e6a6790..3047eaea9 100644 --- a/migration/Kilted.rst +++ b/migration/Kilted.rst @@ -202,6 +202,16 @@ Removed Parameter action_server_result_timeout Removed the parameter ``action_server_result_timeout`` from all action servers after resolution within ``rcl`` and ``rclcpp`` to address early goal removal. This is not longer required to be set. +Dock Plugin External Detection Rotation +--------------------------------------- + +The external detection rotation order of ``Simple(Non)ChargingDock`` dock plugins has changed to the more natural Rx -> Ry -> Rz (was: Rz -> Rx -> Ry). From implementation point of view, ``setEuler()`` calls have been replaced with ``setRPY()``. The old behavior is retained only when + +- ``external_detection_rotation_yaw`` equals 0.0, or +- ``external_detection_rotation_pitch`` and ``external_detection_rotation_roll`` both equal 0.0 + +Non-default external detection rotation that differs from the above cases needs to be adjusted appropriately. + Dock Plugin Detector Control ----------------------------