支持 HI13/H32 主机 UTC 桥接对齐、多会话联合标定与 CAD 平移先验。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+25
-15
@@ -4,20 +4,24 @@
|
||||
|
||||
## 从原始数据导出
|
||||
|
||||
**推荐(新 H32 插件 `RSLidarH32_3D_DLogCaptureNet48`):** N300 `.rscap` + 雷达 Medulla dlog(含 raw MSOP / DIFOP)。
|
||||
**推荐(新 H32 + HI13):** HI13 `.rscap` + 雷达 Medulla dlog / recovered zip(raw MSOP + DIFOP)。
|
||||
|
||||
```powershell
|
||||
python tools\export_rscap_to_v1.py `
|
||||
--imu-rscap path\to\n300.rscap `
|
||||
--lidar-dlog path\to\session_or_dlog `
|
||||
--imu-rscap path\to\hi13r4-imu.rscap `
|
||||
--imu-kind hi13 `
|
||||
--lidar-dlog path\to\session_or_dlog_or_recovered.zip `
|
||||
--host-start 2026-08-08T17:40:05 `
|
||||
--host-end 2026-08-08T17:45:15 `
|
||||
--out path\to\session_v1 `
|
||||
--frame-stride 1 `
|
||||
--frame-stride 5 `
|
||||
--require-difop
|
||||
```
|
||||
|
||||
`--lidar-dlog` 指向含 `dobject/` + `dobject_recording/` 的目录(或其上级含 `dlog/` 子目录亦可)。
|
||||
默认 DObject:`frontlidar-msop-raw`、`frontlidar-difop-raw`(可用 `--msop-object` / `--difop-object` 覆盖)。
|
||||
有 DIFOP 时用设备通道角做 XYZ;`--require-difop` 在缺少有效 DIFOP 时直接失败。
|
||||
`--lidar-dlog` 可为:标准 `dobject/`+`dobject_recording/` 目录,或 recovered zip(`indices.log` + `data.bin`)。
|
||||
`--imu-kind`:`hi13` / `n300` / `auto`(默认按文件名推断)。
|
||||
`--host-start/end`:按本地墙钟切窗(仅裁剪;标定主轴仍是设备时间)。
|
||||
默认 DObject:`frontlidar-msop-raw`、`frontlidar-difop-raw`。
|
||||
|
||||
**兼容旧 MSOP-only `.rscap`:**
|
||||
|
||||
@@ -30,7 +34,7 @@ python tools\export_rscap_to_v1.py `
|
||||
```
|
||||
|
||||
产出:`imu.csv`、`lidar/`(含 `frames_index.csv`)、`export_summary.json`。
|
||||
时间轴为**设备时间**:N300 `device_timestamp_us`→秒;H32 MSOP 设备时间戳→秒。主机接收时间不写入标定主轴。
|
||||
标定主轴仍是**设备时间**;同时写出**主机 UTC 接收时间**,用于把雷达帧桥接到 IMU 设备钟(禁止把两边设备时间第一帧强行重合)。
|
||||
|
||||
## IMU
|
||||
|
||||
@@ -39,16 +43,18 @@ python tools\export_rscap_to_v1.py `
|
||||
### CSV
|
||||
|
||||
```text
|
||||
t,gx,gy,gz,ax,ay,az
|
||||
0.000000000,0.01,-0.02,0.00,0.05,-0.03,9.81
|
||||
t,gx,gy,gz,ax,ay,az,t_host_utc_s,receive_utc_ticks
|
||||
0.000000000,0.01,-0.02,0.00,0.05,-0.03,9.81,1754646005.123,6389...
|
||||
...
|
||||
```
|
||||
|
||||
| 列 | 含义 | 单位 |
|
||||
|---|---|---|
|
||||
| t | IMU 时钟时间 | s |
|
||||
| t | IMU 设备时钟时间 | s |
|
||||
| gx,gy,gz | 角速度 | rad/s |
|
||||
| ax,ay,az | 比力/加速度 | m/s² |
|
||||
| t_host_utc_s | 主机 UTC 接收时间(Unix) | s |
|
||||
| receive_utc_ticks | 同上,.NET UTC ticks | — |
|
||||
|
||||
### NPZ
|
||||
|
||||
@@ -72,12 +78,16 @@ lidar_session/
|
||||
### frames_index.csv
|
||||
|
||||
```text
|
||||
frame_id,filename,t_start,t_end
|
||||
0,frames/frame_00000.npz,10.000,10.100
|
||||
1,frames/frame_00001.npz,10.100,10.200
|
||||
frame_id,filename,t_start,t_end,host_receive_utc_ticks,t_host_utc_s,host_receive_utc_end_ticks,t_host_utc_end_s
|
||||
0,frames/frame_00000.npz,10.000,10.100,6389...,1754646005.12,6389...,1754646005.22
|
||||
```
|
||||
|
||||
也兼容旧列名 `file`(NumPy 读取时可能变成 `file_`)。
|
||||
| 列 | 含义 |
|
||||
|---|---|
|
||||
| t_start / t_end | H32 MSOP **设备时间**(秒) |
|
||||
| t_host_utc_s / t_host_utc_end_s | 帧首/末包 **HostReceiveUtcTicks** → Unix 秒 |
|
||||
|
||||
也兼容旧列名 `file`。对齐脚本用主机 UTC 把 `t_*` 重写到 IMU 设备钟后再跑标定。
|
||||
|
||||
### 每帧 NPZ
|
||||
|
||||
|
||||
Reference in New Issue
Block a user