8 Commits

Author SHA1 Message Date
ywb a4f4be4c8e - 2026-06-08 11:42:41 +08:00
ywb a160c18ba7 导航修复 2026-05-19 15:59:23 +08:00
ywb 80a4beabcf fix: ROS_DOMAIN_ID 1 (AGV bringup uses domain 1, not 0) 2026-05-17 09:06:43 +08:00
ywb e6a8d495f7 可导航 2026-05-16 22:58:04 +08:00
ywb 4e3cb4d3ef Nav2导航 heredoc pipe方式修复 + 重启脚本更新
nav2_navigator.py: 改用 subprocess.Popen + stdin heredoc 避免bash单引号转义
restart_agv.sh: 清理所有旧进程再重启(bringup → Nav2 → Flask)
app.py: init_pose改用 heredoc 子进程脚本方式
2026-05-16 19:18:18 +08:00
ywb 924f9f3be6 fix: get_position返回缓存位置防止odom无数据时整体失败;map_navigator ROS_DOMAIN_ID=1 2026-05-16 01:26:51 +08:00
ywb 1dc439dc8e fix: AGV位置读取失败 - ROS_DOMAIN_ID环境变量缺失、odom输出管道错误、ANSI转义序列未清理
问题根因:
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调用
2026-05-15 23:44:21 +08:00
ywb 94c1043f4d init 2026-05-14 21:43:35 +08:00