完善 LiDAR–双天线 RTK 手眼标定仓库:补充旧式及多传感器数据导出、small_gicp/Open3D GICP 标定、结果复核与3D可视化流程,并整理三批数据和标定结果说明。

This commit is contained in:
lichun.qu
2026-07-23 18:55:50 +08:00
parent 6b7844a977
commit f72fcb71cc
91 changed files with 39561 additions and 503 deletions
+7
View File
@@ -0,0 +1,7 @@
# 跨批比较
- `extrinsic_difference.json`:data4 X 相对历史部署 X 的严格 SE(3) 差,约 `1.592 cm / 0.234°`
- `old_extrinsic_on_data4.json`:历史部署 X 在 data4 B 上的残差,约 `0.11953 m / 1.24836°`
- `data4_extrinsic_on_previous_batch2.json`:data4 X 在历史第二批 B 上的残差,约 `0.07931 m / 0.98926°`
两套 X 的跨批表现接近,而 data4 自身估计残差更高;因此维持历史部署值,data4 只作为候选。
@@ -0,0 +1,298 @@
{
"role": "auxiliary check only; first-batch RTK is sparse",
"blind_with_respect_to_X": true,
"note": "No AX residual was used to select these pairs",
"stations": 38,
"metrics": {
"pairs": 39,
"translation_m": {
"rms": 0.07931219315845621,
"median": 0.0521831021438143,
"p90": 0.1205091988381832,
"p95": 0.14405284012014574,
"max": 0.23166749945892554
},
"rotation_deg": {
"rms": 0.9892579681085032,
"median": 0.8987168885592437,
"p90": 1.5241504377222574,
"p95": 1.5453098245907155,
"max": 1.8288069823538258
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.13184857122951013,
"rotation_deg": 0.4578882478759752,
"i": 0,
"j": 2
},
{
"pair_index": 1,
"translation_m": 0.11088249231082419,
"rotation_deg": 0.49123829458862667,
"i": 0,
"j": 3
},
{
"pair_index": 2,
"translation_m": 0.06122066543511726,
"rotation_deg": 0.46678985990983063,
"i": 1,
"j": 2
},
{
"pair_index": 3,
"translation_m": 0.05361370234686629,
"rotation_deg": 0.6513155675962176,
"i": 1,
"j": 3
},
{
"pair_index": 4,
"translation_m": 0.023371189257265605,
"rotation_deg": 0.3726639533978929,
"i": 2,
"j": 3
},
{
"pair_index": 5,
"translation_m": 0.07839704351948763,
"rotation_deg": 0.9876540671880906,
"i": 2,
"j": 4
},
{
"pair_index": 6,
"translation_m": 0.06371505126502003,
"rotation_deg": 0.8674541404693262,
"i": 3,
"j": 4
},
{
"pair_index": 7,
"translation_m": 0.09440077842634854,
"rotation_deg": 1.176934949298133,
"i": 3,
"j": 5
},
{
"pair_index": 8,
"translation_m": 0.034738581722701674,
"rotation_deg": 0.46221894567574257,
"i": 4,
"j": 5
},
{
"pair_index": 9,
"translation_m": 0.1368264467472551,
"rotation_deg": 1.0614354353201445,
"i": 6,
"j": 7
},
{
"pair_index": 10,
"translation_m": 0.003100407410401193,
"rotation_deg": 0.6140746474880827,
"i": 7,
"j": 9
},
{
"pair_index": 11,
"translation_m": 0.06611151014323934,
"rotation_deg": 0.09617682103039936,
"i": 8,
"j": 9
},
{
"pair_index": 12,
"translation_m": 0.11767435574035143,
"rotation_deg": 0.8987168885592437,
"i": 8,
"j": 10
},
{
"pair_index": 13,
"translation_m": 0.05534374617362978,
"rotation_deg": 0.9177398533680782,
"i": 9,
"j": 10
},
{
"pair_index": 14,
"translation_m": 0.016375449524654653,
"rotation_deg": 1.8288069823538258,
"i": 12,
"j": 14
},
{
"pair_index": 15,
"translation_m": 0.23166749945892554,
"rotation_deg": 0.4806436956517463,
"i": 13,
"j": 15
},
{
"pair_index": 16,
"translation_m": 0.20909038047616038,
"rotation_deg": 1.1888833539076575,
"i": 14,
"j": 16
},
{
"pair_index": 17,
"translation_m": 0.04954727606060992,
"rotation_deg": 0.7479656125581431,
"i": 17,
"j": 18
},
{
"pair_index": 18,
"translation_m": 0.0401572454810912,
"rotation_deg": 1.042619605722841,
"i": 18,
"j": 19
},
{
"pair_index": 19,
"translation_m": 0.0432861701880587,
"rotation_deg": 0.6965786478374109,
"i": 20,
"j": 21
},
{
"pair_index": 20,
"translation_m": 0.010709015812516234,
"rotation_deg": 1.6253345198252291,
"i": 22,
"j": 23
},
{
"pair_index": 21,
"translation_m": 0.058199199584633175,
"rotation_deg": 0.36595813742919014,
"i": 22,
"j": 24
},
{
"pair_index": 22,
"translation_m": 0.030262860466569532,
"rotation_deg": 1.1081362850905554,
"i": 22,
"j": 25
},
{
"pair_index": 23,
"translation_m": 0.04000865510964372,
"rotation_deg": 1.189922759500818,
"i": 23,
"j": 24
},
{
"pair_index": 24,
"translation_m": 0.06464346915846221,
"rotation_deg": 0.7699901460922239,
"i": 24,
"j": 25
},
{
"pair_index": 25,
"translation_m": 0.0521831021438143,
"rotation_deg": 0.18489023256895315,
"i": 25,
"j": 26
},
{
"pair_index": 26,
"translation_m": 0.08267778191372169,
"rotation_deg": 0.9059437837656906,
"i": 25,
"j": 27
},
{
"pair_index": 27,
"translation_m": 0.038589920757972004,
"rotation_deg": 0.8404190717226915,
"i": 26,
"j": 27
},
{
"pair_index": 28,
"translation_m": 0.05488335734683258,
"rotation_deg": 1.5217701038732556,
"i": 26,
"j": 28
},
{
"pair_index": 29,
"translation_m": 0.022562161090077113,
"rotation_deg": 1.5336717731182645,
"i": 26,
"j": 29
},
{
"pair_index": 30,
"translation_m": 0.016794927865731942,
"rotation_deg": 1.4945757001638067,
"i": 27,
"j": 30
},
{
"pair_index": 31,
"translation_m": 0.08618762377782405,
"rotation_deg": 1.5364181917868804,
"i": 30,
"j": 31
},
{
"pair_index": 32,
"translation_m": 0.06980420384374487,
"rotation_deg": 0.7086752430201493,
"i": 30,
"j": 32
},
{
"pair_index": 33,
"translation_m": 0.032647030192474995,
"rotation_deg": 1.2921319816631744,
"i": 32,
"j": 33
},
{
"pair_index": 34,
"translation_m": 0.0345860258877476,
"rotation_deg": 1.374123371412574,
"i": 32,
"j": 34
},
{
"pair_index": 35,
"translation_m": 0.05213790087077668,
"rotation_deg": 0.46701073818826994,
"i": 32,
"j": 35
},
{
"pair_index": 36,
"translation_m": 0.023288081661695596,
"rotation_deg": 0.15454273191995999,
"i": 33,
"j": 34
},
{
"pair_index": 37,
"translation_m": 0.035256268159629366,
"rotation_deg": 0.9445397555422734,
"i": 33,
"j": 35
},
{
"pair_index": 38,
"translation_m": 0.020736197670988343,
"rotation_deg": 1.137619185440334,
"i": 35,
"j": 36
}
]
}
}
@@ -0,0 +1,43 @@
{
"convention": "delta = inverse(reference) @ candidate",
"reference": "results\\01_previous_two_batches\\final_extrinsic_deployment.json",
"candidate": "results\\02_data4_calibration\\consensus\\extrinsic.json",
"candidate_minus_reference_translation_xyz_m": [
0.002616328047628791,
-0.0016393602019739468,
-0.01562078923962118
],
"candidate_minus_reference_rpy_xyz_deg": [
-0.006740470942029009,
0.1911623881626312,
-0.13523257777677677
],
"relative_translation_norm_m": 0.01592299377608647,
"relative_rotation_deg": 0.23416878770707064,
"relative_matrix_4x4": [
[
0.9999916502190469,
0.0023133957658166954,
0.003368633583168801,
0.0029672356800607425
],
[
-0.0023136119190219507,
0.9999973217800623,
6.027097638170339e-05,
-0.0013876386622047616
],
[
-0.0033684851306055737,
-6.80641839411564e-05,
0.999994324321489,
-0.015582416441470737
],
[
0.0,
0.0,
0.0,
1.0
]
]
}
@@ -0,0 +1,207 @@
{
"role": "auxiliary check only; first-batch RTK is sparse",
"blind_with_respect_to_X": true,
"note": "No AX residual was used to select these pairs",
"stations": 34,
"metrics": {
"pairs": 26,
"translation_m": {
"rms": 0.11953342461680516,
"median": 0.059870553274397435,
"p90": 0.11852081980116268,
"p95": 0.27001896145006843,
"max": 0.3924432090639719
},
"rotation_deg": {
"rms": 1.248363434126574,
"median": 0.7472573318442859,
"p90": 1.7836452528035456,
"p95": 2.0119235382379705,
"max": 4.302962170390954
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.05017939301544147,
"rotation_deg": 0.7621142667147064,
"i": 0,
"j": 2
},
{
"pair_index": 1,
"translation_m": 0.05476119605552225,
"rotation_deg": 0.39488243852657817,
"i": 2,
"j": 3
},
{
"pair_index": 2,
"translation_m": 0.11117501211320562,
"rotation_deg": 0.29330702638456563,
"i": 2,
"j": 5
},
{
"pair_index": 3,
"translation_m": 0.06643052326439366,
"rotation_deg": 0.5530967273631149,
"i": 3,
"j": 5
},
{
"pair_index": 4,
"translation_m": 0.028182994383263396,
"rotation_deg": 0.5499639343413396,
"i": 5,
"j": 8
},
{
"pair_index": 5,
"translation_m": 0.06086463130525318,
"rotation_deg": 0.6985420749542534,
"i": 6,
"j": 7
},
{
"pair_index": 6,
"translation_m": 0.020630277131513722,
"rotation_deg": 0.6820744752666614,
"i": 6,
"j": 8
},
{
"pair_index": 7,
"translation_m": 0.046848360772821,
"rotation_deg": 0.8723393366986318,
"i": 12,
"j": 14
},
{
"pair_index": 8,
"translation_m": 0.05887647524354169,
"rotation_deg": 1.9071782288631753,
"i": 13,
"j": 16
},
{
"pair_index": 9,
"translation_m": 0.11661768017132504,
"rotation_deg": 2.046838641362902,
"i": 15,
"j": 16
},
{
"pair_index": 10,
"translation_m": 0.06473893802255462,
"rotation_deg": 0.30644679433866145,
"i": 15,
"j": 17
},
{
"pair_index": 11,
"translation_m": 0.04963073408543951,
"rotation_deg": 0.33998803648541337,
"i": 15,
"j": 18
},
{
"pair_index": 12,
"translation_m": 0.03313618555659487,
"rotation_deg": 0.5283154781000993,
"i": 16,
"j": 19
},
{
"pair_index": 13,
"translation_m": 0.0691797699772094,
"rotation_deg": 0.6320358674350408,
"i": 21,
"j": 22
},
{
"pair_index": 14,
"translation_m": 0.042364105706927925,
"rotation_deg": 1.660112276743916,
"i": 21,
"j": 24
},
{
"pair_index": 15,
"translation_m": 0.07073443988383908,
"rotation_deg": 0.8343384286314613,
"i": 22,
"j": 23
},
{
"pair_index": 16,
"translation_m": 0.12042395943100032,
"rotation_deg": 4.302962170390954,
"i": 22,
"j": 25
},
{
"pair_index": 17,
"translation_m": 0.05181438442870987,
"rotation_deg": 0.8455629957527,
"i": 25,
"j": 26
},
{
"pair_index": 18,
"translation_m": 0.032857670083788,
"rotation_deg": 0.7324003969738653,
"i": 25,
"j": 28
},
{
"pair_index": 19,
"translation_m": 0.05285636518357229,
"rotation_deg": 0.4369186254063126,
"i": 26,
"j": 27
},
{
"pair_index": 20,
"translation_m": 0.10251045240958172,
"rotation_deg": 1.0529040723274141,
"i": 26,
"j": 29
},
{
"pair_index": 21,
"translation_m": 0.023054151271876995,
"rotation_deg": 0.24976946582216739,
"i": 27,
"j": 28
},
{
"pair_index": 22,
"translation_m": 0.06593100197822659,
"rotation_deg": 1.2515362824917693,
"i": 27,
"j": 29
},
{
"pair_index": 23,
"translation_m": 0.31988396212309117,
"rotation_deg": 1.0256849788735003,
"i": 29,
"j": 30
},
{
"pair_index": 24,
"translation_m": 0.3924432090639719,
"rotation_deg": 0.8042671494244682,
"i": 29,
"j": 31
},
{
"pair_index": 25,
"translation_m": 0.11357259403662164,
"rotation_deg": 0.901297615800165,
"i": 30,
"j": 32
}
]
}
}