1dc439dc8e
问题根因: 1. ros2 daemon默认运行在domain 0,AGV节点在domain 1,导致无法通信 2. _run_ros2_cmd通过daemon通信,daemon忽略了shell的ROS_DOMAIN_ID环境变量 3. 修复: 在bash -c内联设置export ROS_DOMAIN_ID=1 4. 修复: 所有ros2 topic echo命令添加--once参数确保只输出一次后退出 5. 修复: 清理ANSI转义序列(\x1b)和RTPS错误信息前缀,避免YAML解析失败 6. 修复: 添加source /opt/ros/humble/setup.bash确保ros2命令可用 7. 修复: get_position和get_battery统一使用_run_ros2_cmd而非独立subprocess调用