测试运行器:位置参数真的只跑指定路径;文档改成实际能跑通的命令与数字
scripts/run_unit_tests.sh
用法注释里写的是「bash run_unit_tests.sh src/<pkg>/test/test_x.py -x」,但实现是
`pytest "${test_dirs[@]}" "$@"` —— 传进来的路径只是被**追加**到「全部测试目录」
后面,实际仍然跑整仓库。用法示例就是承诺,它不成立会让人以为「我只改了 x,
怎么蹦出别的包的失败」。改成:位置参数里**存在的路径**当作「只跑这些」,
其余(-k / -x / --tb=… 及其取值)原样透传。
docs/HANDBOOK.md §4.3
原文让人逐个包手敲 `python3 -m pytest src/xxx/test`。这条命令在本仓库**会失败**,
而且是两种最容易被误读的失败:
· 少挂一个 src 包 → 收集阶段 ModuleNotFoundError,现象是「0 个测试 / 1 个 error」,
像测试环境坏了;
· 更隐蔽:install/ 里那份**旧的**同名模块会先被找到。实测直接跑
src/arm_sim_gazebo/test 报 `cannot import name 'RESET_GIVE_UP'`,导的是
install/ 里的旧副本,源码里明明有这个符号 —— 测的根本不是你改的那份。
改为统一用 run_unit_tests.sh(它把 src/* 挂到 PYTHONPATH 最前面),并把这段
原因写进文档。顺带把过期的统计数字更新为实测值:608 → 1118 项,
分项 arm_application 233→547、arm_sim_gazebo 236→400、arm_interfaces 46→78。
实测:src/arm_sim_gazebo/test 直跑 = 2 个收集错误;经运行器 = 400 passed。
单文件 28 passed;-k real_preflight = 28 passed / 1 skipped;
无参数全量 = 1118 passed / 1 skipped。
docs/QUICKSTART.md
「第一次实机」以体检开场(它只读、不需要机械臂能动),并列出四项判据各抓什么,
免得现场跳过它直接起栈。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -45,6 +45,29 @@ source scripts/env.sh
|
||||
|
||||
## 第一次实机
|
||||
|
||||
**开工前先体检**(不需要机械臂能动,只读):
|
||||
|
||||
```bash
|
||||
bash ~/ros2/scripts/run_real_preflight.sh --arm 89
|
||||
```
|
||||
|
||||
它按"现场该处理的顺序"给结论,最后汇总**要人工做的事**。它专门盯这几类
|
||||
"报错的地方不是坏的地方"的问题:
|
||||
|
||||
| 检查项 | 抓的是 |
|
||||
| --- | --- |
|
||||
| 现场配置 | 这一轮到底在读哪份 site.yaml、认哪台臂 |
|
||||
| 遗留进程 | 上一轮没退干净的 ros2_control(它占着 RDK,会让 RDK 报"连不上") |
|
||||
| 机器人在网 | ping 不通;以及**两个 IP 指向同一个 MAC**(两台臂出厂 MAC 相同时会互相抢转发) |
|
||||
| 机械臂 RDK | 连不上 / 示教器在 Manual(这个 SW 切不了,只能人到现场拨) |
|
||||
| 腕部相机 | 本臂配置的那只 D405 **在不在 USB 上** —— 它掉了以后报错会变成"点云为空" |
|
||||
| 触觉 / USB / 几何 | 触觉是"没插"还是"内核卡死"、RealSense 协商速率、手眼矩阵与悬停高度 |
|
||||
|
||||
结论是 `NO-GO` 时**不要往下走**:硬阻断项(RDK、腕部相机)会让后面每一步
|
||||
都以别的样子失败。
|
||||
|
||||
然后是常规步骤:
|
||||
|
||||
1. 示教器:AUTO + Remote Ethernet,清故障。关 Studio。
|
||||
2. `bash ~/ros2/scripts/test_rdk_python.sh`(可选)
|
||||
3. T1 `run_real.sh`,T2 `run_camera_d405.sh --preview`
|
||||
|
||||
Reference in New Issue
Block a user