From 75a097c46448f618a89828240d58183a2638ae3a Mon Sep 17 00:00:00 2001 From: FAN YUCHEN <2994114386@qq.com> Date: Thu, 9 Jul 2026 23:27:22 +0800 Subject: [PATCH] Fix compass observation floating point bounds (#579) np.clip the heading value from _quat_to_xy_heading to [-pi, pi] to prevent floating point errors from producing values slightly outside the declared observation space bounds. Fixes #579 --- habitat-lab/habitat/tasks/nav/nav.py | 1 + 1 file changed, 1 insertion(+) diff --git a/habitat-lab/habitat/tasks/nav/nav.py b/habitat-lab/habitat/tasks/nav/nav.py index edf759f0a3..5b9b18deba 100644 --- a/habitat-lab/habitat/tasks/nav/nav.py +++ b/habitat-lab/habitat/tasks/nav/nav.py @@ -356,6 +356,7 @@ def _quat_to_xy_heading(self, quat): heading_vector = quaternion_rotate_vector(quat, direction_vector) phi = cartesian_to_polar(-heading_vector[2], heading_vector[0])[1] + phi = np.clip(phi, -np.pi, np.pi) return np.array([phi], dtype=np.float32) def get_observation(