forked from zbw/yiliao2026
vlm和tts
This commit is contained in:
227
master_launch_使用指南.md
Normal file
227
master_launch_使用指南.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# 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 | 使用仿真时间 |
|
||||
|
||||
---
|
||||
|
||||
## 常用命令
|
||||
|
||||
### 全部启动
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py
|
||||
```
|
||||
|
||||
### 只调试底盘
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py use_lidar:=false use_slam:=false use_nav2:=false use_vlm:=false
|
||||
```
|
||||
|
||||
### 只建图(底盘 + 雷达 + SLAM)
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py use_nav2:=false use_vlm:=false
|
||||
```
|
||||
|
||||
### 只启动 VLM(调试图生文)
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py use_base:=false use_lidar:=false use_slam:=false use_nav2:=false
|
||||
```
|
||||
|
||||
### 底盘 + 雷达 + SLAM + 导航(不加 VLM)
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py use_vlm:=false use_tts:=false
|
||||
```
|
||||
|
||||
### 更换 VLM 服务地址
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py vlm_host:=http://192.168.10.200:8000
|
||||
```
|
||||
|
||||
### 差分底盘模式
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py akmcar:=false
|
||||
```
|
||||
|
||||
### 使用 Cartographer 替代 EKF
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py carto_slam:=true
|
||||
```
|
||||
|
||||
### 使用自定义 SLAM 参数
|
||||
```bash
|
||||
ros2 launch my_robot_bringup master_launch.py slam_params_file:=/path/to/my_slam.yaml
|
||||
```
|
||||
|
||||
### 使用自定义 Nav2 参数
|
||||
```bash
|
||||
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. **重刷环境** — 启动前清理残留进程:
|
||||
```bash
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user