1
0
forked from zbw/yiliao2026

vlm和tts

This commit is contained in:
2026-07-23 14:51:51 +08:00
parent 90761b40b2
commit a5cee5e142
35 changed files with 12694 additions and 168 deletions

View 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