Files
2026-08-05 18:17:25 +08:00

46 lines
2.1 KiB
Markdown

# scripts/ · ROS2 学习套件常用命令脚本
> **设计**:把所有"长 shell 命令 + docker exec 路径"封装成可执行 shell 脚本,
> 避免小白每次都手敲容易出错的长命令。所有脚本都跑在**容器内** `ros2_dev`。
>
> **跟 Makefile / docker compose 不冲突**,就是更零碎场景的薄封装。
## 容器生命周期
| 脚本 | 作用 | 用法(PowerShell) |
|---|---|---|
| `build.sh` | 容器内编译 12 包(替代 `bash build.sh` 缺失的死链) | `docker exec ros2_dev bash /root/ros2_ws/scripts/build.sh` |
| `test.sh` | 容器内跑 12 包测试 + 汇总 + 详细日志 | `docker exec ros2_dev bash /root/ros2_ws/scripts/test.sh` |
| `launch.sh` | 容器内启动 `bringup/<name>.py` | `docker exec ros2_dev bash /root/ros2_ws/scripts/launch.sh pubsub_launch` |
| `e2e_check.sh` | 端到端冒烟:启 4 节点跑 8s,验证 topic 互通 + 清理子进程 | `docker exec ros2_dev bash /root/ros2_ws/scripts/e2e_check.sh` |
| `shell.sh` | 自动判断容器状态,进入开发终端 | `bash scripts/shell.sh` |
| `clean.sh` | 删 `build/install/log`(编译产物) | `docker exec ros2_dev bash /root/ros2_ws/scripts/clean.sh` |
| `clean_ros.sh` | SIGKILL 所有 chatter_* 残留进程(launch.sh forever 模式调试后用) | `docker exec ros2_dev bash /root/ros2_ws/scripts/clean_ros.sh` |
## 调用方式(2 选 1)
```bash
# A. 直接通过 docker exec 调脚本(Widows / Linux 都行)
docker exec ros2_dev bash /root/ros2_ws/scripts/build.sh
docker exec ros2_dev bash /root/ros2_ws/scripts/test.sh
docker exec ros2_dev bash /root/ros2_ws/scripts/launch.sh pubsub_launch
```
```bash
# B. 整段进容器再跑(Windows 推荐 + 调试时)
docker exec -it ros2_dev bash
source /opt/ros/humble/setup.bash
source /root/ros2_ws/install/setup.bash
bash scripts/build.sh
```
## 维护脚本(项目根目录,不在容器内)
| 脚本 | 作用 |
|---|---|
| `make_build.ps1` | PowerShell 一键:`build 镜像 → up 容器` |
| `make_up.ps1` | PowerShell 一键:`docker compose -p ros2 up -d` |
| `make_shell.ps1` | PowerShell 一键:`make shell` 等价 |
*(计划中,后续补上)*