改为车头向前整链:主从装反机械初值、双天线 pitch/roll 姿态与默认 HeadingOffsetDeg=-90
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-10
@@ -6,18 +6,18 @@
|
||||
|---|---|
|
||||
| `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/` 标定并封装最终结果(**默认基线系**) |
|
||||
| `prepare_multisensor_dataset.ps1` | 每站一帧 + RTK 位姿(默认含双天线 pitch/roll) |
|
||||
| `run_direct_rtk_lidar.ps1` | 从 `combined/` 标定并封装最终结果(**默认车头向前 -90**) |
|
||||
| `run_single_dataset.ps1` | 地面、双 GICP、精筛、共识、AX=XB |
|
||||
| `run_joint_rtk_lidar.ps1` | 多批共识对联合求解 |
|
||||
| `view_result.ps1` | 3D 运动对对比 |
|
||||
| `rtk_lidar_mechanical_initial.json` | 仅 AX=XB 初值;**禁止**用于 pair |
|
||||
|
||||
## 默认参数(匹配当前约 2 m 车顶雷达 / 基线系)
|
||||
## 默认参数(匹配当前约 2 m 车顶雷达 / 车头向前)
|
||||
|
||||
| 参数 | 默认 |
|
||||
|---|---|
|
||||
| `HeadingOffsetDeg` | `0`(基线系) |
|
||||
| `HeadingOffsetDeg` | `-90`(车头向前;主从装反、基线朝右) |
|
||||
| `GroundZMin/Max` | `-2.5` / `-1.5` |
|
||||
| `ExpectedStations` | `27` |
|
||||
| `MinStations` | `20` |
|
||||
@@ -53,10 +53,10 @@ python tools\export_g90_h32_windows_to_combined.py `
|
||||
```powershell
|
||||
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" `
|
||||
-WorkRoot "D:\data\rtk_lidar_run\prepared_vehicle_h19165" `
|
||||
-OutputRoot "D:\data\rtk_lidar_run\outputs_vehicle_h19165" `
|
||||
-RtkReferenceHeightAboveGroundM 1.9165 `
|
||||
-HeadingOffsetDeg 0 `
|
||||
-HeadingOffsetDeg -90 `
|
||||
-ExpectedStations 27 `
|
||||
-GroundZMin -2.5 -GroundZMax -1.5
|
||||
```
|
||||
@@ -65,8 +65,8 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_direct_rt
|
||||
|
||||
```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" `
|
||||
-Frames "D:\data\rtk_lidar_run\prepared_vehicle_h19165\frames_all" `
|
||||
-Pairs "D:\data\rtk_lidar_run\outputs_vehicle_h19165\consensus\B_consensus.npz" `
|
||||
-Extrinsic "D:\data\rtk_lidar_run\outputs_vehicle_h19165\final_T_RTK_lidar.json" `
|
||||
-PairIndex 0
|
||||
```
|
||||
|
||||
@@ -1,23 +1,41 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"convention": "T_RTK_lidar maps raw LiDAR points into the RTK baseline frame (X = rawHeading baseline, Y left, Z up; heading_offset_deg = 0)",
|
||||
"translation_m": [
|
||||
0.414179474,
|
||||
"schema_version": 3,
|
||||
"convention": "T_RTK_lidar maps raw LiDAR points into the vehicle-forward RTK body frame (X forward, Y left, Z up) after HeadingOffsetDeg=-90",
|
||||
"frame_mode": "vehicle_forward_heading_offset",
|
||||
"heading_offset_deg": -90.0,
|
||||
"baseline_points": "vehicle_right",
|
||||
"baseline_points_note": "Field-confirmed: master/slave assignment reversed vs G90 diagram, antennas left-right symmetric about rear-axle centerline. Master/GGA on vehicle left, slave on right; rawHeading points vehicle right.",
|
||||
"vehicle_flu_lever_master_to_lidar_m": [
|
||||
0.210859360,
|
||||
0.004000001
|
||||
-0.414179474,
|
||||
0.078500001
|
||||
],
|
||||
"vehicle_flu_note": "Vehicle FLU: LiDAR origin relative to master/GGA = ahead, right, above. CAD drawing X was opposite vehicle-forward; longitudinal sign is +X in true FLU (solver also converges to +X).",
|
||||
"antenna_symmetry_note": "Master/slave are mirrors about the rear-axle centerline; swap flips baseline 180° and the vehicle-Y sign of the master→LiDAR lever",
|
||||
"translation_m": [
|
||||
0.210859360,
|
||||
-0.414179474,
|
||||
0.078500001
|
||||
],
|
||||
"rotation_rpy_deg_xyz": [
|
||||
0.0,
|
||||
0.0,
|
||||
90.0
|
||||
0.0
|
||||
],
|
||||
"matrix_4x4": [
|
||||
[0.0, -1.0, 0.0, 0.414179474],
|
||||
[1.0, 0.0, 0.0, 0.210859360],
|
||||
[0.0, 0.0, 1.0, 0.004000001],
|
||||
[0.0, 1.0, 0.0, -0.414179474],
|
||||
[0.0, 0.0, 1.0, 0.078500001],
|
||||
[0.0, 0.0, 0.0, 1.0]
|
||||
],
|
||||
"use": "Final AX=XB solver initialization only; never use for LiDAR pair registration",
|
||||
"yaw_note": "≈90 deg yaw is expected when LiDAR X is vehicle-forward and the dual-antenna baseline is left-right",
|
||||
"z_note": "CAD/mechanical z only; final z is constrained by measured GGA/ANT1 phase-center height above ground"
|
||||
"yaw_note": "In vehicle-forward delivery, LiDAR +X ≈ vehicle forward ⇒ mechanical yaw ≈ 0",
|
||||
"z_note": "78.500001 mm = H_L - H_R with H_L=1994.999879 mm, H_R=1916.499878 mm",
|
||||
"attitude_composition": "R_W_body = Rz(yaw_raw) Ry(-pitch) Rx(roll) Rz(-heading_offset); pitch/roll stay in baseline frame",
|
||||
"baseline_frame_equivalent": {
|
||||
"heading_offset_deg": 0.0,
|
||||
"translation_m": [0.414179474, 0.210859360, 0.078500001],
|
||||
"rotation_rpy_deg_xyz": [0.0, 0.0, 90.0],
|
||||
"note": "Same physical install expressed in rawHeading baseline frame"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,8 +14,9 @@ param(
|
||||
[int]$SmallGicpMaxGap = 26,
|
||||
[int]$Open3DMaxGap = 26,
|
||||
[double]$MaxReferenceTranslationM = 8.0,
|
||||
# Baseline frame: rawHeading as RTK X. Use 90 only when deliberately targeting vehicle-forward.
|
||||
[double]$HeadingOffsetDeg = 0.0,
|
||||
# Baseline frame: rawHeading as RTK X. Default vehicle-forward for this car: -90
|
||||
# (master/slave swapped, baseline points vehicle-right).
|
||||
[double]$HeadingOffsetDeg = -90.0,
|
||||
[string]$SolverInitialExtrinsic = "",
|
||||
[double]$RefineMinInlierRatio = 0.63,
|
||||
[double]$RefineMaxInlierRmseM = 0.14
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# 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
|
||||
[double]$HeadingOffsetDeg = -90.0
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
Reference in New Issue
Block a user