46 lines
2.1 KiB
Markdown
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` 等价 |
|
|
|
|
*(计划中,后续补上)*
|