151 lines
3.2 KiB
Markdown
151 lines
3.2 KiB
Markdown
# 仿真环境启动指南
|
||||
|
|
|
|||
|
|
本文档说明如何单独启动 Isaac 仿真环境的各个组件。
|
|||
|
|
|
|||
|
|
## 前置条件
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 先 source ROS2 环境
|
|||
|
|
source install/setup.bash
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 单独启动组件
|
|||
|
|
|
|||
|
|
### 1. Isaac 仿真环境
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 带可视化界面
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component isaac
|
|||
|
|
|
|||
|
|
# headless 模式(无界面)
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component isaac --headless
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 仿真车端统一 Agent
|
|||
|
|
|
|||
|
|
包含底盘、运控、传感器数据转发:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component vehicle-agent
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 外部位姿桥
|
|||
|
|
|
|||
|
|
将 Isaac 真值转发给车端:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component external-pose-bridge
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 车间侧传感器 Ingest
|
|||
|
|
|
|||
|
|
从车端轮询传感器数据:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component sensor-ingest
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. 车间 Gateway
|
|||
|
|
|
|||
|
|
ROS2 节点,对接底盘/运控:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component gateway
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 启动完整仿真链路
|
|||
|
|
|
|||
|
|
### 方式一:一键启动所有仿真组件(不含车间总控)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component all
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式二:分步启动(推荐用于调试)
|
|||
|
|
|
|||
|
|
终端 1 - 启动 Isaac:
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component isaac
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
终端 2 - 启动车端 Agent:
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component vehicle-agent
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
终端 3 - 启动外部位姿桥:
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component external-pose-bridge
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
终端 4 - 启动传感器 Ingest:
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component sensor-ingest
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
终端 5 - 启动车间 Gateway:
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/launch_sim_stack.py --component gateway
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
终端 6 - 启动车间总控:
|
|||
|
|
```bash
|
|||
|
|
ros2 launch win_ubuntu_bridge minimal_workshop_demo.launch.py \
|
|||
|
|
use_gateway:=true \
|
|||
|
|
chassis_host:=127.0.0.1 \
|
|||
|
|
control_host:=127.0.0.1 \
|
|||
|
|
sensor_registry:=demo_front_camera,demo_down_camera,demo_lidar_3d,demo_lidar_2d,demo_imu
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 验证仿真环境
|
|||
|
|
|
|||
|
|
启动后检查 topic:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看 Isaac 发布的传感器数据
|
|||
|
|
ros2 topic list | grep isaac
|
|||
|
|
|
|||
|
|
# 检查各传感器数据频率
|
|||
|
|
ros2 topic hz /sensor/front_camera/image_raw
|
|||
|
|
ros2 topic hz /sensor/down_camera/image_raw
|
|||
|
|
ros2 topic hz /sensor/lidar_3d/pointcloud
|
|||
|
|
ros2 topic hz /sensor/lidar_2d/scan
|
|||
|
|
ros2 topic hz /sensor/imu/data
|
|||
|
|
|
|||
|
|
# 检查外部位姿
|
|||
|
|
ros2 topic hz /isaac/external_localization/telemetry
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 执行端到端验收测试
|
|||
|
|
|
|||
|
|
仿真环境启动后,执行验收:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 src/simulation/tools/smoke_test_workshop_orchestrator.py \
|
|||
|
|
--verbose-feedback \
|
|||
|
|
--no-publish-fake-external-telemetry
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 停止仿真环境
|
|||
|
|
|
|||
|
|
按 `Ctrl+C` 停止各组件,或使用:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./stop_isaac_real_sim_stack.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快捷脚本
|
|||
|
|
|
|||
|
|
也可以使用一键测试脚本(启动所有组件并执行验收):
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 完整测试(启动 + 验收 + 停止)
|
|||
|
|
./run_isaac_real_sim_test.sh
|
|||
|
|
|
|||
|
|
# 保持运行(不执行验收)
|
|||
|
|
./run_isaac_real_sim_test.sh --no-smoke --keep-running
|
|||
|
|
|
|||
|
|
# headless 模式
|
|||
|
|
./run_isaac_real_sim_test.sh --headless
|
|||
|
|
```
|