更新文档与一键脚本默认值以匹配基线系本次标定(1.9165m、地面ROI)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+46
-24
@@ -1,35 +1,42 @@
|
||||
# run目录
|
||||
|
||||
根README包含完整复现命令;这里仅列入口职责。
|
||||
根 README 含完整复现与本次结果说明;这里只列入口职责。
|
||||
|
||||
| 脚本 | 用途 |
|
||||
|---|---|
|
||||
| `run_full_pipeline.ps1` | 调用一步导出得到 `combined/`,再跑到最终 `T_RTK_lidar` |
|
||||
| `export_multisensor_stations.ps1` | 薄封装:调用 `tools/export_raw_to_combined.py` |
|
||||
| `prepare_multisensor_dataset.ps1` | 每站选一帧,生成yaw-only RTK参考轨迹和`frames_all` |
|
||||
| `run_direct_rtk_lidar.ps1` | 从combined数据运行RTK直接标定和最终结果封装 |
|
||||
| `run_single_dataset.ps1` | 执行地面、两个GICP后端、精筛、共识和AX=XB求解 |
|
||||
| `run_joint_rtk_lidar.ps1` | 合并多个独立批次的批内共识运动对和地面平面,求解共享外参 |
|
||||
| `view_result.ps1` | 打开3D运动对对比并打印数值增量 |
|
||||
| `run_full_pipeline.ps1` | 站目录导出 `combined/` 后跑到 `T_RTK_lidar` |
|
||||
| `export_multisensor_stations.ps1` | 薄封装:`tools/export_raw_to_combined.py` |
|
||||
| `prepare_multisensor_dataset.ps1` | 每站一帧 + yaw-only RTK 位姿 |
|
||||
| `run_direct_rtk_lidar.ps1` | 从 `combined/` 标定并封装最终结果(**默认基线系**) |
|
||||
| `run_single_dataset.ps1` | 地面、双 GICP、精筛、共识、AX=XB |
|
||||
| `run_joint_rtk_lidar.ps1` | 多批共识对联合求解 |
|
||||
| `view_result.ps1` | 3D 运动对对比 |
|
||||
| `rtk_lidar_mechanical_initial.json` | 仅 AX=XB 初值;**禁止**用于 pair |
|
||||
|
||||
原始→中间包请优先直接用 Python 一步导出(与 Lidar-IMU 用法对齐):
|
||||
## 默认参数(匹配当前约 2 m 车顶雷达 / 基线系)
|
||||
|
||||
| 参数 | 默认 |
|
||||
|---|---|
|
||||
| `HeadingOffsetDeg` | `0`(基线系) |
|
||||
| `GroundZMin/Max` | `-2.5` / `-1.5` |
|
||||
| `ExpectedStations` | `27` |
|
||||
| `MinStations` | `20` |
|
||||
| `RtkReferenceHeightAboveGroundM` | **无默认,必填**(本车 1.9165) |
|
||||
|
||||
pair 注册**不传** `--initial-extrinsic`。
|
||||
|
||||
## 原始 → combined
|
||||
|
||||
站目录:
|
||||
|
||||
```powershell
|
||||
python tools\export_raw_to_combined.py --stations-root ... --rtk-rscap ... --imu-rscap ... --out ... --overwrite
|
||||
```
|
||||
|
||||
常用参数:
|
||||
- `-TimeBasis device_gnss`(默认):设备时 ↔ GNSS
|
||||
- `-TimeBasis host`:主机接收时间
|
||||
|
||||
- 新车站目录为 H32 raw dlog(自动识别 `frontlidar-msop-raw` / `frontlidar-difop-raw`)
|
||||
- `-LidarCaptureName h32.rscap`:仅旧站 `.rscap` 文件名(也接受 `lidar.rscap`)
|
||||
- `-TimeBasis device_gnss`(默认):雷达设备时 ↔ GNSS week/TOW(新 dlog / rscap)
|
||||
- `-TimeBasis host`:旧「已解码点云」dlog + 主机接收时间关联
|
||||
|
||||
所有路径均为命令行参数。标定入口要求显式传入RTK/GGA参考点离地高度,避免静默使用与实车不符的默认值;默认生成目录`work/`和`outputs/`不会提交Git。
|
||||
|
||||
## G90 + H32 连续录制数据按站导出
|
||||
|
||||
如果各站不是独立目录,而是记录在多个 Medulla DLog ZIP 和 G90 `.rscap` 中,使用:
|
||||
G90 连续录制 + 站时间窗:
|
||||
|
||||
```powershell
|
||||
python tools\export_g90_h32_windows_to_combined.py `
|
||||
@@ -39,12 +46,27 @@ python tools\export_g90_h32_windows_to_combined.py `
|
||||
--out <output_root> --expected-stations 27 --frame-stride 5
|
||||
```
|
||||
|
||||
该入口使用 MSOP 的主机接收 UTC 与 G90 串口主机接收 UTC 做近邻关联,同时保留雷达包内设备时间作为审计字段。它只读取原始文件,生成 `export/`、`combined/` 和摘要,不使用 IMU。`--frame-stride` 仅控制参与标定的点云帧密度,不改变站点时间窗。
|
||||
可加 `--reuse-export` 续跑。
|
||||
|
||||
如果雷达 ZIP 扫描已经完成但后续步骤中断,可保留 `export/` 并续跑:
|
||||
## 已有 combined 复现本次结果
|
||||
|
||||
```powershell
|
||||
python tools\export_g90_h32_windows_to_combined.py --reuse-export --segments-csv <csv> --rtk-rscap <g90.rscap> --out <output_root> --expected-stations 27
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_direct_rtk_lidar.ps1" `
|
||||
-CombinedRoot "D:\data\rtk_lidar_run\combined" `
|
||||
-WorkRoot "D:\data\rtk_lidar_run\prepared_baseline_h19165" `
|
||||
-OutputRoot "D:\data\rtk_lidar_run\outputs_baseline_h19165" `
|
||||
-RtkReferenceHeightAboveGroundM 1.9165 `
|
||||
-HeadingOffsetDeg 0 `
|
||||
-ExpectedStations 27 `
|
||||
-GroundZMin -2.5 -GroundZMax -1.5
|
||||
```
|
||||
|
||||
在尚未测得 GGA/ANT1 相位中心离地高度时,可先生成 `combined/`,再运行 `prepare_multisensor_dataset.ps1` 得到 `prepared/`。最终外参求解仍需显式传入真实离地高度,不应留空或猜测。
|
||||
## 可视化本次结果
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_result.ps1" `
|
||||
-Frames "D:\data\rtk_lidar_run\prepared_baseline_h19165\frames_all" `
|
||||
-Pairs "D:\data\rtk_lidar_run\outputs_baseline_h19165\consensus\B_consensus.npz" `
|
||||
-Extrinsic "D:\data\rtk_lidar_run\outputs_baseline_h19165\final_T_RTK_lidar.json" `
|
||||
-PairIndex 0
|
||||
```
|
||||
|
||||
@@ -8,12 +8,14 @@
|
||||
[Parameter(Mandatory = $true)][double]$RtkReferenceHeightAboveGroundM,
|
||||
[string]$Timezone = "+08:00",
|
||||
[ValidateSet("device_gnss", "host")][string]$TimeBasis = "device_gnss",
|
||||
[int]$ExpectedStations = 34,
|
||||
[int]$ExpectedStations = 27,
|
||||
[int]$MinStations = 20,
|
||||
[int]$MinPairs = 20,
|
||||
[int]$Bootstrap = 200,
|
||||
[double]$GroundZMin = -1.4,
|
||||
[double]$GroundZMax = -0.4
|
||||
# Roof-mounted H32 (~2 m). Do not reuse [-1.4, -0.4] on this vehicle.
|
||||
[double]$GroundZMin = -2.5,
|
||||
[double]$GroundZMax = -1.5,
|
||||
[double]$HeadingOffsetDeg = 0.0
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
@@ -31,6 +33,7 @@ if ($LASTEXITCODE -ne 0) { throw "Raw-data export failed" }
|
||||
-CombinedRoot (Join-Path $ExportRoot "combined") `
|
||||
-WorkRoot $PreparedRoot -OutputRoot $CalibrationRoot `
|
||||
-RtkReferenceHeightAboveGroundM $RtkReferenceHeightAboveGroundM `
|
||||
-HeadingOffsetDeg $HeadingOffsetDeg `
|
||||
-MinStations $MinStations `
|
||||
-ExpectedStations $ExpectedStations -MinPairs $MinPairs -Bootstrap $Bootstrap `
|
||||
-GroundZMin $GroundZMin -GroundZMax $GroundZMax
|
||||
|
||||
Reference in New Issue
Block a user