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" # ========== 坐标转换 ==========