From 924f9f3be6ff31d29c547dbf4d84fe24651182d8 Mon Sep 17 00:00:00 2001 From: ywb <347742090@qq.com> Date: Sat, 16 May 2026 01:26:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20get=5Fposition=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E4=BD=8D=E7=BD=AE=E9=98=B2=E6=AD=A2odom?= =?UTF-8?q?=E6=97=A0=E6=95=B0=E6=8D=AE=E6=97=B6=E6=95=B4=E4=BD=93=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=EF=BC=9Bmap=5Fnavigator=20ROS=5FDOMAIN=5FID=3D1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agv_app/utils/agv_controller_ros2.py | 5 +++++ agv_app/utils/map_navigator.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/agv_app/utils/agv_controller_ros2.py b/agv_app/utils/agv_controller_ros2.py index 82e2899..7f2f34b 100644 --- a/agv_app/utils/agv_controller_ros2.py +++ b/agv_app/utils/agv_controller_ros2.py @@ -185,8 +185,13 @@ class AGVController: yaw = math.atan2(2.0 * qw * qz, 1.0 - 2.0 * qz * qz) self._position = [x, y, yaw] return self._position + elif self._connected: + # 连接正常但 odom 暂时无数据,返回缓存位置 + return self._position except Exception as e: logger.debug(f"获取位置失败: {e}") + if self._connected: + return self._position return None def go_to_point(self, x: float, y: float, rz: float = None, speed: float = 0.5) -> bool: diff --git a/agv_app/utils/map_navigator.py b/agv_app/utils/map_navigator.py index cc266aa..91131c3 100644 --- a/agv_app/utils/map_navigator.py +++ b/agv_app/utils/map_navigator.py @@ -22,7 +22,7 @@ from enum import Enum logger = logging.getLogger(__name__) # ROS2 环境设置(与 agv_controller_ros2.py 保持一致) -ROS2_SETUP_CMD = "export ROS_DOMAIN_ID=0 && source ~/agv_pro_ros2/install/setup.bash" +ROS2_SETUP_CMD = "export ROS_DOMAIN_ID=1 && source /opt/ros/humble/setup.bash && source ~/agv_pro_ros2/install/setup.bash" # ========== 坐标转换 ==========