Files
yiliao2026/master_launch_使用指南.md
2026-07-23 14:51:51 +08:00

9.0 KiB
Raw Blame History

master_launch.py 使用指南

启动顺序

t=0s  底盘驱动 + EKF + TF + IMU (origincar_bringup)
t=2s  激光雷达 (lslidar_driver)
t=5s  SLAM 建图 (slam_toolbox)
t=8s  Nav2 导航栈
t=10s VLM 图生文 + TTS 语音播报

每个阶段依赖前一个阶段就绪,属于严格时间线启动,不可调换。


参数一览

参数 默认值 说明
use_base true 底盘驱动 + EKF + TF
use_lidar true 激光雷达 (lsn10)
use_slam true slam_toolbox 建图
use_nav2 true Nav2 导航栈
use_vlm true VLM 图生文 + TTS
use_tts true TTS 语音播报开关
akmcar true 阿克曼底盘 (false=差速)
carto_slam false 使用 Cartographer 替代 EKF
vlm_host http://192.168.10.189:8000 VLM 推理服务地址
use_sim_time false 使用仿真时间

常用命令

全部启动

ros2 launch my_robot_bringup master_launch.py

只调试底盘

ros2 launch my_robot_bringup master_launch.py use_lidar:=false use_slam:=false use_nav2:=false use_vlm:=false

只建图(底盘 + 雷达 + SLAM

ros2 launch my_robot_bringup master_launch.py use_nav2:=false use_vlm:=false

只启动 VLM调试图生文

ros2 launch my_robot_bringup master_launch.py use_base:=false use_lidar:=false use_slam:=false use_nav2:=false

底盘 + 雷达 + SLAM + 导航(不加 VLM

ros2 launch my_robot_bringup master_launch.py use_vlm:=false use_tts:=false

更换 VLM 服务地址

ros2 launch my_robot_bringup master_launch.py vlm_host:=http://192.168.10.200:8000

差分底盘模式

ros2 launch my_robot_bringup master_launch.py akmcar:=false

使用 Cartographer 替代 EKF

ros2 launch my_robot_bringup master_launch.py carto_slam:=true

使用自定义 SLAM 参数

ros2 launch my_robot_bringup master_launch.py slam_params_file:=/path/to/my_slam.yaml

使用自定义 Nav2 参数

ros2 launch my_robot_bringup master_launch.py nav2_params_file:=/path/to/my_nav2.yaml

前置条件

  1. VLM 服务 — WSL 中先启动 python vlm_server.py(如需使用 VLM
  2. Portproxy 转发 — Windows 上管理员 PowerShell 执行 setup_vlm_forward.ps1仅需一次IP 不变则不用重跑)
  3. 重刷环境 — 启动前清理残留进程:
    pkill -f ros2; pkill -f espeak; pkill -f ffplay
    

网络架构VLM 相关)

机器人 (192.168.10.x)
    ↓ http://192.168.10.189:8000
Windows 宿主机 (IP 需固定)
    ↓ netsh portproxy → 127.0.0.1:8000
WSL2 vlm_server.py
  • Windows IP 不变 → 一切正常
  • Windows IP 变化 → 重跑 setup_vlm_forward.ps1,启动时传 vlm_host:=http://新IP:8000

改动的地方

master_launch.py 变更内容

阶段: 1 (t=0s) 原来: 底盘 + EKF + TF + IMU 现在: 不变 ──────────────────────────────────────── 阶段: 2 (t=2s) 原来: 激光雷达 现在: 不变 ──────────────────────────────────────── 阶段: 3 (t=4s) 原来: — 现在: 障碍物检测 (obstacle_scanner.launch.py) ──────────────────────────────────────── 阶段: 4 (t=5s) 原来: SLAM Toolbox 现在: Map Server + AMCL 定位 (预建地图替代 SLAM) ──────────────────────────────────────── 阶段: 5 (t=7s) 原来: Nav2 导航栈 现在: Hybrid A* 路径规划 + Pure Pursuit 轨迹跟随 ──────────────────────────────────────── 阶段: 6 (t=10s)

● Bash(rm -f /c/Users/DHQ/master_launch_new.py) ⎿  Done

● 修改完成。以下是改动总结:

master_launch.py 变更内容

┌───────────┬───────────────────────┬────────────────────────────────────────────┐ │ 阶段 │ 原来 │ 现在 │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 1 (t=0s) │ 底盘 + EKF + TF + IMU │ 不变 │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 2 (t=2s) │ 激光雷达 │ 不变 │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 3 (t=4s) │ — │ 障碍物检测 (obstacle_scanner.launch.py) │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 4 (t=5s) │ SLAM Toolbox │ Map Server + AMCL 定位 (预建地图替代 SLAM) │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 5 (t=7s) │ Nav2 导航栈 │ Hybrid A* 路径规划 + Pure Pursuit 轨迹跟随 │ ├───────────┼───────────────────────┼────────────────────────────────────────────┤ │ 6 (t=10s) │ VLM + TTS │ 不变 │ └───────────┴───────────────────────┴────────────────────────────────────────────┘

具体改动点

  1. 移除cyy_slamtoolbox、gc_navigation2_slamtoolbox、slam_toolbox 节点、nav2_bringup launch
  2. 新增obstacle_scanner 节点(发布 /obstacles
  3. 新增map_server + amcl + lifecycle_manager 用于定位
  4. 新增grid_astar_theta_node路径规划发布 /plan
  5. 新增topology_pure_pursuit_node.py轨迹跟随发布 /cmd_vel
  6. 话题对齐planner 的 obstacles_topic 参数覆盖为 /obstacles与 obstacle_scanner 发布的 topic 一致)
  7. 原文件已备份为 master_launch.py.bak

常用命令 source /opt/ros/humble/setup.bash source ~/yiliao_ws/install/setup.bash 全部启动

ros2 launch my_robot_bringup master_launch.py

只调试底盘

ros2 launch my_robot_bringup master_launch.py use_lidar:=false use_obstacle:=false use_planner:=false use_vlm:=false

底盘 + 雷达 + 定位 + 规划跟踪(不开障碍物检测和 VLM

ros2 launch my_robot_bringup master_launch.py use_obstacle:=false use_vlm:=false

只启动 VLM调试图生文

ros2 launch my_robot_bringup master_launch.py use_base:=false use_lidar:=false use_obstacle:=false use_planner:=false

底盘 + 雷达 + 障碍物检测 + 规划跟踪(不加 VLM

ros2 launch my_robot_bringup master_launch.py use_vlm:=false use_tts:=false

只做障碍物检测(不开规划不开 VLM

ros2 launch my_robot_bringup master_launch.py use_planner:=false use_vlm:=false

只做路径规划+跟踪(不开障碍物检测,靠预建地图)

ros2 launch my_robot_bringup master_launch.py use_obstacle:=false use_vlm:=false

更换 VLM 服务地址

ros2 launch my_robot_bringup master_launch.py vlm_host:=http://192.168.10.200:8000

差分底盘模式

ros2 launch my_robot_bringup master_launch.py akmcar:=false

使用 Cartographer 替代 EKF

ros2 launch my_robot_bringup master_launch.py carto_slam:=true

更换地图文件

ros2 launch my_robot_bringup master_launch.py map_file:=/path/to/my_map.yaml

更换规划器/跟踪器/AMCL 参数文件

ros2 launch my_robot_bringup master_launch.py planner_params_file:=/path/to/planner.yaml ros2 launch my_robot_bringup master_launch.py tracker_params_file:=/path/to/tracker.yaml ros2 launch my_robot_bringup master_launch.py amcl_params_file:=/path/to/amcl.yaml