文档澄清: --json 后是输出产物路径,非预置输入文件

phase1.json 只在 sim_fc.py 跑完后才生成,仓库内本就不该有。
统一改用绝对路径 ~/pod_logs/phase1.json,避免相对路径落在 utils/ 后找不到;
补充 §8.1.1 说明落盘结构(args/summary/samples)与 samples 为空的含义。
This commit is contained in:
keita
2026-10-08 10:26:51 +08:00
parent 257721e035
commit f17005a020
2 changed files with 33 additions and 6 deletions
@@ -123,11 +123,13 @@ rel_alt 50m,真实 UTC 递增时戳),同时观测下行。
```bash
cd utils
# 默认值已按 §7 设定,不必再写 lat/lon/rel-alt/rate
python -m pod_bridge.sim_fc /dev/ttyAMA0 --seconds 60 --json phase1.json
python -m pod_bridge.sim_fc /dev/ttyAMA0 --seconds 60 \
--json ~/pod_logs/phase1.json
# 台架上验证目标识别 + 自动锁定同时进行解算观测
python -m pod_bridge.sim_fc /dev/ttyAMA0 \
--detect person --auto-lock --seconds 60 --json phase1.json
--detect person --auto-lock --seconds 60 \
--json ~/pod_logs/phase1.json
```
> 全部参数表与退出码见 §8。
@@ -250,13 +252,33 @@ python -m pod_bridge.sim_fc <port> [options]
```bash
cd utils
mkdir -p ~/pod_logs
python -m pod_bridge.sim_fc /dev/ttyAMA0 \
--detect person --auto-lock --seconds 60 --json phase1.json
--detect person --auto-lock --seconds 60 \
--json ~/pod_logs/phase1.json
```
> ⚠ **`--json` 后面的路径是「输出产物」,不是预置输入文件**——仓库里没有、
> 也不该有 `phase1.json`,它只有在脚本跑完后才会被写出来。用相对路径会落在
> 当前工作目录(`utils/`),建议直接给绝对路径(如上 `~/pod_logs/`),
> 免得跑完找不到。
要在台架上跑阶段2 的高度扫描时,改 `--rel-alt` 重跑即可
(`30 / 50 / 80 / 120` 各一次,`--json` 分别落盘后做聚类对比)。
### 8.1.1 `--json` 落盘内容(跑完会得到什么)
顶层三个键:
| 键 | 内容 |
|---|---|
| `args` | 本次运行的全部命令行参数(复现用) |
| `summary` | 汇总:帧计数/频率、首次锁定与首次表4 时刻、经纬度均值与 σ、相对我方的 east/north 偏移与散布、表4 高度 vs 喂入高度 |
| `samples` | 逐帧表4 原始采样:`{t_s, lat, lon, abs_alt_m, rel_alt_m, east_m, north_m, locked}` |
实测拿到后,把这份 JSON 和终端汇总一起回传即可做阶段2 的聚类/散布分析。
**注意**:`samples` 为空即代表本次没收任何表4(对应退出码 1)。
### 8.2 行为约定(实现已满足)
1. **单进程收发一体**——独占串口,同进程发 表3、收 表2-2/表4;
+8 -3
View File
@@ -124,7 +124,7 @@ pytest # 仅上机自测需要,部署运行可省
(加 `--center` 可同时下发归中 0x2B 验证下行);脚本自动统计帧数并判读,
遥测帧率 ≥48Hz(标称 60Hz 的 80%)退出码为 0 即链路正常。
4. **验证吊舱能否解算目标坐标**(不接飞控,避免绕过这一步):
`python -m pod_bridge.sim_fc /dev/ttyAMA0 --seconds 60 --json phase1.json`
`python -m pod_bridge.sim_fc /dev/ttyAMA0 --seconds 60 --json ~/pod_logs/phase1.json`
由树莓派伪造 表3 喂给吊舱,看是否回 表4。这一步的结论直接决定后续架构取舍,
详见 `docs/吊舱解算验证方案-模拟飞控喂表3.md`。
⚠ 跑它的时候关掉 listen_pod / pod_console / bridge —— 同一个串口不能两人占。
@@ -218,8 +218,13 @@ rel_alt 50m,真实 UTC 递增时戳),同时观测下行。
2. 吊舱要求 表3 的**时戳/位置有效性**满足某种条件(例如 GPS 有效标志)。
→ 可用 `--freeze-time` 做一次对照。
> 复测命令:`python -m pod_bridge.sim_fc /dev/ttyAMA0 --detect person --auto-lock
> --seconds 60 --json phase1.json`,退出码 1 = 仍无表4。
> 复测命令(`--json` 后是**输出产物路径**,非预置输入文件,建议给绝对路径):
> ```
> cd utils && mkdir -p ~/pod_logs
> python -m pod_bridge.sim_fc /dev/ttyAMA0 --detect person --auto-lock \
> --seconds 60 --json ~/pod_logs/phase1.json
> ```
> 退出码 1 = 仍无表4。落盘内容结构见方案文档 §8.1.1。
### 10.1 自动解锁机制(🔴 本设备实测禁用,2026-10-08)
`pod_console.py --auto-unlock SEC` 现按「锁定中 + 表4 超过 SEC 秒未更新」触发 0x0E。