Author SHA1 Message Date
lichun.qu 3c8e4f92f6 清理历史雷达RTK资料并归档当前车辆结果 2026-08-25 14:45:31 +08:00
lichun.quandCursor 5f59bcd795 改为车头向前整链:主从装反机械初值、双天线 pitch/roll 姿态与默认 HeadingOffsetDeg=-90
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 18:07:54 +08:00
lichun.quandCursor 6242fd1081 删除 README 中远程旧一键复现说明小节
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:58:46 +08:00
lichun.quandCursor 3b8282353c 将 prepare 默认 MinStations 改为 20,与一键复现入口对齐
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:48:10 +08:00
lichun.quandCursor e33a7a7657 补充 tools 说明中的 G90 按站窗导出入口
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:37:37 +08:00
lichun.quandCursor 68cb5eaf90 更新文档与一键脚本默认值以匹配基线系本次标定(1.9165m、地面ROI)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:37:18 +08:00
lichun.quandCursor 46d2fa1d69 修正基线系标定默认:机械初值、地面ROI与航向偏移可配,并补充G90窗导出与契约测试
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:28:25 +08:00
lichun.quandCursor 69bb44bccd 支持 H32 DLogCapture(MSOP+DIFOP)站导出到 combined
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 10:17:23 +08:00
lichun.qu b2271d05ba checkpoint before checking out feature/lidar-imu-calibration 2026-08-05 10:08:40 +08:00
lichun.quandCursor 8477935ad2 可视化按键对齐雷达-IMU:N/]/[/]切换运动对
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 16:16:14 +08:00
lichun.quandCursor 13624b0be8 新增原始数据一步导出到 combined:对齐 Lidar-IMU 导出入口,适配 H32/G90/N300
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 16:08:37 +08:00
lichun.qu 24eaa8508e 补充data4与data5联合标定流程并显式配置RTK高度 2026-07-28 15:36:00 +08:00
lichun.qu e847cd4590 更新数据下载链接及部分截图示例(运行visualize_pair_3d.py 创建的Open3D可视化窗口,窗口可以用鼠标左键拖动切换视角,滚轮放大缩小,按P键会自动截图)。 2026-07-24 11:51:07 +08:00
lichun.qu 6d87b6ba9c 调整雷达到RTK标定分支为独立根目录结构 2026-07-24 08:42:16 +08:00
lichun.qu d2aae6177e 新增雷达到RTK直接手眼标定流程 2026-07-24 00:06:50 +08:00
130 changed files with 5785 additions and 193333 deletions
+22 -1
View File
@@ -1,3 +1,24 @@
# Python
__pycache__/
*.pyc
*.py[cod]
.pytest_cache/
.venv/
venv/
# IDE / OS
.idea/
.vscode/
.DS_Store
Thumbs.db
# Raw data and generated outputs
data/raw/
work/
outputs/
*.rscap
*.dorec
*.log
# Large generated point clouds outside the archived reference result
**/frames/
**/frames_all/
+6
View File
@@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}
Binary file not shown.
@@ -0,0 +1,49 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\First-dev-dept\\calibration\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\First-dev-dept\\calibration\\README.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:README.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "README.md",
"DocumentMoniker": "D:\\First-dev-dept\\calibration\\README.md",
"RelativeDocumentMoniker": "README.md",
"ToolTip": "D:\\First-dev-dept\\calibration\\README.md",
"RelativeToolTip": "README.md",
"ViewState": "AgIAADgAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
"WhenOpened": "2026-07-24T03:20:21.56Z",
"EditorCaption": ""
}
]
}
]
}
]
}
@@ -0,0 +1,45 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\First-dev-dept\\calibration\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\First-dev-dept\\calibration\\README.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:README.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "README.md",
"DocumentMoniker": "D:\\First-dev-dept\\calibration\\README.md",
"RelativeDocumentMoniker": "README.md",
"ToolTip": "D:\\First-dev-dept\\calibration\\README.md",
"RelativeToolTip": "README.md",
"ViewState": "AgIAADgAAAAAAAAAAAAAABIAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
"WhenOpened": "2026-07-24T03:20:21.56Z",
"EditorCaption": ""
}
]
}
]
}
]
}
BIN
View File
Binary file not shown.
-12
View File
@@ -1,12 +0,0 @@
# 最终推荐值补充说明
两套后端各自结果均保留。最终推荐值又增加了一层不依赖外参X的交叉检查:只有同一运动对的Open3D B与small_gicp B相差不超过5 cm、0.5°时才进入最终求解;最终B数为39对。
最终推荐:
- 平移 `[1.297760, -0.000067, 0.720498] m`
- RPY `[-0.785151, 1.202661, -0.835510] deg`
- 第二批AX RMS`0.07985 m / 0.96118°`
- 第一批22对辅助复核:`0.06067 m / 1.00298°`
完整结果见 `results/final_extrinsic_recommended.json`,选择摘要见 `results/final_summary.json`。执行完整 `run_all.ps1` 后,再执行 `run_consensus_finish.ps1` 可重建最终推荐结果。
-194
View File
@@ -1,194 +0,0 @@
木兰宽松许可证,第2版
木兰宽松许可证,第2版
2020年1月 http://license.coscl.org.cn/MulanPSL2
您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
0. 定义
“软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
“贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
“法人实体” 是指提交贡献的机构及其“关联实体”。
“关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是
指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
1. 授予版权许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可
以复制、使用、修改、分发其“贡献”,不论修改与否。
2. 授予专利许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定
撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡
献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软
件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“
关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或
其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权
行动之日终止。
3. 无商标许可
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定
的声明义务而必须使用除外。
4. 分发限制
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“
本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
5. 免责声明与责任限制
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对
任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于
何种法律理论,即使其曾被建议有此种损失的可能性。
6. 语言
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文
版为准。
条款结束
如何将木兰宽松许可证,第2版,应用到您的软件
如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
3, 请将如下声明文本放入每个源文件的头部注释中。
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan
PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
Mulan Permissive Software LicenseVersion 2
Mulan Permissive Software LicenseVersion 2 (Mulan PSL v2)
January 2020 http://license.coscl.org.cn/MulanPSL2
Your reproduction, use, modification and distribution of the Software shall
be subject to Mulan PSL v2 (this License) with the following terms and
conditions:
0. Definition
Software means the program and related documents which are licensed under
this License and comprise all Contribution(s).
Contribution means the copyrightable work licensed by a particular
Contributor under this License.
Contributor means the Individual or Legal Entity who licenses its
copyrightable work under this License.
Legal Entity means the entity making a Contribution and all its
Affiliates.
Affiliates means entities that control, are controlled by, or are under
common control with the acting entity under this License, control means
direct or indirect ownership of at least fifty percent (50%) of the voting
power, capital or other securities of controlled or commonly controlled
entity.
1. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby
grants to you a perpetual, worldwide, royalty-free, non-exclusive,
irrevocable copyright license to reproduce, use, modify, or distribute its
Contribution, with modification or not.
2. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby
grants to you a perpetual, worldwide, royalty-free, non-exclusive,
irrevocable (except for revocation under this Section) patent license to
make, have made, use, offer for sale, sell, import or otherwise transfer its
Contribution, where such patent license is only limited to the patent claims
owned or controlled by such Contributor now or in future which will be
necessarily infringed by its Contribution alone, or by combination of the
Contribution with the Software to which the Contribution was contributed.
The patent license shall not apply to any modification of the Contribution,
and any other combination which includes the Contribution. If you or your
Affiliates directly or indirectly institute patent litigation (including a
cross claim or counterclaim in a litigation) or other patent enforcement
activities against any individual or entity by alleging that the Software or
any Contribution in it infringes patents, then any patent license granted to
you under this License for the Software shall terminate as of the date such
litigation or activity is filed or taken.
3. No Trademark License
No trademark license is granted to use the trade names, trademarks, service
marks, or product names of Contributor, except as required to fulfill notice
requirements in section 4.
4. Distribution Restriction
You may distribute the Software in any medium with or without modification,
whether in source or executable forms, provided that you provide recipients
with a copy of this License and retain copyright, patent, trademark and
disclaimer statements in the Software.
5. Disclaimer of Warranty and Limitation of Liability
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY
KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR
COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT
LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING
FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO
MATTER HOW ITS CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
6. Language
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION
AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF
DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION
SHALL PREVAIL.
END OF THE TERMS AND CONDITIONS
How to Apply the Mulan Permissive Software LicenseVersion 2
(Mulan PSL v2) to Your Software
To apply the Mulan PSL v2 to your work, for easy identification by
recipients, you are suggested to complete following three steps:
i. Fill in the blanks in following statement, including insert your software
name, the year of the first publication of your software, and your name
identified as the copyright owner;
ii. Create a file named "LICENSE" which contains the whole context of this
License in the first directory of your software package;
iii. Attach the statement to the appropriate annotated syntax at the
beginning of each source file.
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan
PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
-85
View File
@@ -1,85 +0,0 @@
# Pair 局部诊断与全局灵敏度扫描
本说明补充主 README。所有变换均采用:
```text
X = T_body_lidar
A_ij X = X B_ij
B_ij = T_Li_Lj(把站点 j 点云变到站点 i)
```
模式 4 相对模式 3 的数值差定义为:
```text
Delta_ij = B_ij^-1 * (X^-1 * A_ij * X)
```
打印的平移 xyz 和旋转 RPY 是 `Delta_ij` 在站点 j 雷达局部坐标系中的分量,不是屏幕坐标。3D 相机视角会改变画面中的“横向”,所以不能仅凭屏幕左右判断车体系 Y 或 yaw。
## Pair 0 当前诊断
Open3D 精筛 Pair 0station 0 <- 1)的当前结果为:
```text
translation xyz = [-1.2535, +1.4157, +7.7441] cm
rotation RPY xyz = [-0.5355, -0.1093, +0.0247] deg
norm = 7.9716 cm / 0.547109 deg
```
因此这对主要表现为 roll/pitch 相关姿态差和相对 Z 差,yaw 仅约 `0.025 deg`,不应优先调 yaw。
## 可视化试验
查看原结果:
```powershell
$Repo = "D:\你的代码目录\calibration"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_open3d_result.ps1" -PairIndex 0
```
试验车体系左乘 pitch `+0.2 deg`
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_open3d_result.ps1" -PairIndex 0 -LeftPitchDeg 0.2
```
此时按键含义:`3` 为 GICP 的 B`4` 为当前最终 X 预测,`5` 为试验修正后的 X 预测。试验使用:
```text
X_test = DeltaR_body * X
```
这是真正的车体系左乘,会同时旋转 X 的旋转部分和平移向量;小角度下才近似等价于直接给 JSON 的 pitch 加相同角度。
## 全部运动对扫描
运行:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_sensitivity_scan.ps1" -PairIndex 0
```
程序扫描:
- pitch`+0.1/+0.2/+0.3 deg`
- 在这些 pitch 及零 pitch 附近扫描 roll`-0.2/-0.1/+0.1 deg`
- yaw `-0.2/+0.2 deg` 只作为低灵敏度对照;
- Open3D 全部精筛对、small_gicp 全部精筛对、跨后端共识对分别计算;
- 同时报告地面法向与高度残差;
- 使用 `0.05 m / 0.5 deg` 作为透明的归一化尺度,统计全局 RMS、改善对数和恶化对数。
输出位于 `results/diagnostics/`。JSON 保存逐对结果,CSV 便于横向比较。
## 接受规则
局部扫描只用于定位,程序不会覆盖 `final_extrinsic_recommended.json`。候选至少需要满足:
1. 不能只改善 Pair 0;全部精筛对的归一化 RMS 应下降;
2. 改善的运动对数量应多于恶化数量;
3. Open3D、small_gicp 与共识集合应给出相同方向的趋势;
4. 地面法向和高度约束不能明显恶化;
5. 多个代表性运动对的模式 4/5 可视化应同步改善。
如果只有 Pair 0 改善,应把它视为局部配准或场景问题,不修改全局 X。
对于当前仅含 yaw 的 RTK A,车体系 Z 轴平移在 AX=XB 中不可观。扫描程序会用 `X.z + 0.10 m` 做数值检查,但不会扫描或修改 z;z 必须由地面高度约束或外部量测确定。
+276 -210
View File
@@ -1,226 +1,292 @@
# LiDAR双天线 RTK 手眼标定
# 双天线RTK—3D LiDAR直接手眼标定
本仓库提供一套可从原始 Medulla 记录复现的静态站点标定流程,求解三维激光雷达到后轮轴中心车体系的外参
本仓库从静态站点原始数据复现 `T_RTK_lidar`:把原始雷达点变换到 **车头向前的 RTK 车体系**(主天线原点)。
求解不使用 RTK 到后轮轴的 XY 杆臂;与雷达–IMU 外参对照时旋转系一致,平移仍差天线原点。
```text
X = T_body_lidar
```
当前交付标定(2026-08 室外车,27 站)约定如下:
约定 `T_A_B` 将 B 系坐标变换到 A 系。对任意站点 i、j:
```text
A_ij = T_W_Bi^-1 T_W_Bj # RTK 给出的车体相对运动
B_ij = T_Li_Lj # GICP 给出的雷达相对运动
A_ij X = X B_ij
```
当前部署建议仍采用 [results/01_previous_two_batches/final_extrinsic_deployment.json](results/01_previous_two_batches/final_extrinsic_deployment.json)。data4 是一次独立重算,结果与部署值相差约 `1.592 cm / 0.234°`,但自身 AX 残差更高,因此只作为候选和稳定性证据,不自动替换部署值。
## 标定总流程
```mermaid
flowchart LR
raw["原始站点 dlog / RTK、IMU rscap"] --> export["分别解析并统一到时间轴"]
export --> assoc["按每个 LiDAR 帧关联 RTK/IMU,导出 NPZ"]
assoc --> prep["每站选一帧,构建 RTK 车体位姿 A"]
prep --> b1["small_gicp 求 B"]
prep --> b2["Open3D GICP 求 B"]
b1 --> gate["与 X 无关的质量筛选及双后端一致性"]
b2 --> gate
gate --> solve["AX=XB + 地面约束求 X"]
solve --> check["残差、bootstrap、条件数、跨批复核和 3D 可视化"]
```
流程有两个原始数据入口:
- 旧式数据:LiDAR 和 `GPS-POST-Z` 位于每个站点 dlog 中,使用 `export_legacy_stations.ps1`
- 新式多传感器数据:LiDAR 位于逐站 dlogRTK 与 IMU 是独立 `.rscap`,使用 `export_multisensor_stations.ps1`。处理顺序是统一时间轴、分别解析、按 LiDAR 帧关联、导出 NPZ。
IMU 会在新式数据中原样解析并随 LiDAR 帧关联保存,但当前 LiDAR–RTK 外参求解不使用 IMU,也不做运动畸变校正,因为每一站采集点云时车辆静止。IMU 外参应使用单独的激励数据和专用标定流程求解。
## 三批数据的角色
| 数据 | 原始格式 | 站点 | RTK 情况 | 在本仓库中的角色 |
|---|---|---:|---|---|
| 第一批 | 逐站 dlog,内嵌 GPS-POST-Z | 38 | 约 10 秒一条,部分站仅 1–11 个有效样本 | 辅助复核,不承担主要求解 |
| 第二批 | 逐站 dlog,内嵌 GPS-POST-Z | 38 | 每站约 125–412 个有效样本,航向稳定 | 现部署外参的主要求解数据 |
| data4 | 逐站 LiDAR dlog + 独立 RTK/IMU rscap | 34 | 11,678 个 LiDAR 帧均成功关联 fixed RTK、heading 和 IMU | 独立重算与跨批比较 |
原始数据体积较大,不在 Git 仓库中。复现者应从云盘取得第一批、第二批或 data4 的原始目录,并在命令行传入路径。
## 环境
- Windows PowerShell 5.1 或 PowerShell 7
- Python 3.10+
- `pip install -r requirements.txt`
- `small_gicp` 后端需要可导入 `small_gicp`Open3D 后端需要 `open3d`
所有脚本从自身位置推导仓库根目录。数据和输出路径均由参数传入,不依赖开发者电脑上的固定路径。
## 从原始数据开始复现
以下路径只表示格式,请替换为自己的目录。
### A. 第一批、第二批旧式 dlog
```powershell
$Repo = "D:\你的代码目录\calibration"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\export_legacy_stations.ps1" `
-DataRoot "D:\你的数据目录\batch2_raw" `
-OutputRoot "D:\你的输出目录\batch2_export"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\prepare_legacy_dataset.ps1" `
-ExportRoot "D:\你的输出目录\batch2_export" `
-Output "D:\你的输出目录\batch2_prepared" `
-HeadingOffsetDeg 21.226 `
-AntennaLever -0.320,-0.365,0.620 `
-ExpectedStations 38 `
-HeadingStdLimitDeg 0.5
```
第一批采用同一导出方式,但应在导出命令显式添加 `-RtkMaxDtMs 15000`;因其 RTK 稀疏,准备阶段也不建议沿用 `0.5°` 的严格站内航向离散度阈值。上述 `21.226°` 和杆臂 `[-0.320,-0.365,0.620] m` 是本项目已有两批数据采用的配置,不是通用常数;换车或改变天线安装后必须重新确认。
### B. data4 式独立 RTK/IMU rscap
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\export_multisensor_stations.ps1" `
-DataRoot "D:\你的数据目录\data4_raw" `
-RtkCapture "D:\你的数据目录\captures\rtk.rscap" `
-ImuCapture "D:\你的数据目录\captures\imu.rscap" `
-OutputRoot "D:\你的输出目录\data4_export"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\prepare_multisensor_dataset.ps1" `
-CombinedRoot "D:\你的输出目录\data4_export\combined" `
-Output "D:\你的输出目录\data4_prepared" `
-HeadingOffsetDeg 21.226 `
-AntennaLever -0.320,-0.365,0.620 `
-ExpectedStations 34
```
### C. 运行标定
单批数据同时运行 small_gicp、Open3D GICP 和跨后端共识:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_single_dataset.ps1" `
-Prepared "D:\你的输出目录\data4_prepared" `
-OutputRoot "D:\你的输出目录\data4_calibration" `
-BodyHeight 0.2335
```
复现本仓库“第二批求解、第一批辅助复核”的历史流程:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_all.ps1" `
-Batch1Prepared "D:\你的输出目录\batch1_prepared" `
-Batch2Prepared "D:\你的输出目录\batch2_prepared" `
-OutputRoot "D:\你的输出目录\two_batch_calibration"
```
`BodyHeight=0.2335 m` 是后轮轴中心离地高度,用于把雷达地面平面约束转换到车体原点;它不是雷达离地高度。换轮胎、胎压或车体载荷后应重新测量并评估不确定度。
## 如何判断结果
不能仅凭 `AX=XB` 残差或一张叠图宣称外参正确。至少同时检查:
1. B 的配准质量:收敛、有效对应点数/比例、RMSE、Hessian 信息矩阵特征值与条件数、small_gicp 与 Open3D 的相对运动一致性。
2. X 的可观性:加权雅可比条件数越接近 1 越均衡;极大值说明存在弱方向,但没有脱离尺度和数据分布的单一硬阈值。本次 data4 为 `7.44`,不是病态。
3. AX 残差分布:看 RMS、median、P90/P95、max 和逐对异常,而不是只看均值。
4. 重采样稳定性:bootstrap 的六自由度标准差及置信区间。
5. 跨批检查:同一 X 在独立批次的残差,以及两批独立求出的 X 之 SE(3) 差。
6. 3D 可视化:模式 3 的 B 与模式 4 的 `X^-1 A X` 是否都使相同墙面、杆件和地面重合。
当前没有把“增量小于某个值”当成绝对真值判据。工程筛查可先关注多数优质运动对是否约在厘米级到数厘米、亚度级;但阈值必须结合场景尺度、点云分辨率、RTK 质量和车辆运动幅度制定。模式 3 已错位时优先检查 B;模式 3 正常而模式 4 系统性错位时,再检查 A、坐标约定和 X。
## 结果摘要
| 结果 | 平移 xyz (m) | roll/pitch/yaw (deg) | AX 平移/旋转 RMS | 结论 |
|---|---|---|---|---|
| 部署值(第二批求解) | `[1.297760,-0.000067,0.720498]` | `[-0.785151,1.202661,-0.835510]` | `0.07985 m / 0.96118°`39 对 | 当前建议部署 |
| data4 独立候选 | `[1.300376,-0.001707,0.704877]` | `[-0.791892,1.393823,-0.970743]` | `0.11762 m / 1.24257°`,26 对 | 独立候选,不替换部署值 |
data4 候选相对部署值变化 `1.592 cm / 0.234°`,其中 z 低 `1.562 cm`。旧部署值作用于 data4 的残差约 `0.11953 m / 1.24836°`;data4 候选作用于历史第二批的残差约 `0.07931 m / 0.98926°`。两个 X 的跨批表现接近,当前数据不足以证明 data4 的较低 z 更接近真值。
## 仓库目录
```text
code/ 标定、配准筛选、共识、比较和可视化核心程序
tools/ 原始 dlog/rscap 解析、时间关联、NPZ 导出和数据准备
run/ 不含本机固定路径的 PowerShell 入口
results/ 历史两批、data4 与跨批比较三个结果目录
```
完整复现流程和所有主要文件职责均在本 README;`run/README.md``tools/README.md` 和 [results/README.md](results/README.md) 只是目录内快速索引。
## 代码、工具和运行入口职责
根 README 是本仓库唯一的完整复现说明。`run/README.md``tools/README.md``results/README.md` 只作为进入对应目录时的快速索引,不承载另一套流程。
### code:标定核心
| 文件 | 职责 |
| 项 | 值 |
|---|---|
| `rigorous_calibration.py` | 核心 CLI。`ground` 拟合每站地面;`pairs` 用 small_gicp 或 Open3D GICP 求 B 和质量指标;`calibrate` 联合 AX=XB 与地面约束求 X`validate` 计算指定 X 的逐对残差。 |
| `refine_pairs.py` | 根据收敛、RMSE、对应关系、Hessian/信息矩阵和运动覆盖筛选 B;不读取 X,避免循环挑选。 |
| `cross_backend_filter.py` | 对齐 Open3D 与 small_gicp 的同一站点对,只保留两个后端相互一致的 B。 |
| `finalize_consensus.py` | 汇总历史两批的 consensus B、外参和第一批辅助复核。 |
| `summarize_results.py` | 汇总两个后端的外参、B 质量和跨批检查,生成推荐结果。 |
| `compare_extrinsics.py` | 在 SE(3) 上计算两套外参的严格相对平移和旋转差。 |
| `visualize_pair_3d.py` | 交互显示原始点云、RTK A、GICP B、`X^-1AX`,并打印 `B^-1(X^-1AX)` 数值增量。 |
| `scan_extrinsic_sensitivity.py` | 对 X 左乘小角度 roll/pitch/yaw 扰动,检查指定运动对的局部敏感方向。 |
| RTK 坐标系 | **车头向前**`HeadingOffsetDeg = -90`;主从装反、基线朝右) |
| 天线相位中心离地高 | **1.9165 m**1916.5 mm |
| 机械初值(车头系) | \(t=(+0.21086,-0.41418,+0.07850)\) myaw=**0°**CAD 纵向已按车头正向取 +X) |
| 物理基线 | `baseline_points=vehicle_right`(主天线车左,从天线车右,后轴中心左右对称) |
| 姿态 | 双天线 pitch/roll`R = Rz(yaw_raw) Ry(-pitch) Rx(roll) Rz(+90°)` |
| 地面点 ROI | LiDAR 系 **`z ∈ [-2.5, -1.5]`**(约 2 m 车顶安装) |
| pair 配准 | **禁止**使用外参 seed;B 与 X 独立 |
### tools:原始数据到 prepared
数据下载:https://fs.fairylandtech.com:5001/FRLD/#file_id=966776353886090246
账号:lichun.qu@fairylandtech.com 密码:lichun.qu
| 文件 | 职责 |
|---|---|
| `frontlidar_dlog_export.py` | 从 Medulla dlog 导出传感器坐标系 `points_raw`;旧格式可同时匹配站内 GPS-POST-Z。 |
| `prepare_station_dataset.py` | 从旧式逐站导出中每站选择一帧,计算 yaw-only RTK 后轮轴位姿并生成 prepared。 |
| `build_multisensor_npz.py` | 将独立 LiDAR、RTK、IMU 统一到 LiDAR 帧索引并生成 combined NPZ。 |
| `prepare_multisensor_station_dataset.py` | 从 combined NPZ 选择每站静止帧,生成与旧流程相同的 prepared 接口。 |
| `rscap_v2/capture_format_v2.py` | 读取 rscap v2 文件头、原始记录块和文件尾。 |
| `rscap_v2/audit_capture_v2.py` | 审计 capture 完整性、时间范围和记录统计。 |
| `rscap_v2/parse_rtk_imu_v2.py` | 分别解析 RTK 与 IMU capture,输出 JSONL。 |
| `rscap_v2/pipeline_common*.py` | rscap 解析、时间处理和采集格式兼容的共用逻辑。 |
---
### run:推荐 PowerShell 入口
## 1. 输出坐标约定(车头向前)
| 文件 | 职责 |
|---|---|
| `export_legacy_stations.ps1` | 批量导出 LiDAR 与 RTK 同在逐站 dlog 中的旧格式。 |
| `export_multisensor_stations.ps1` | 解析独立 RTK/IMU,导出逐站 LiDAR,并按 LiDAR 帧建立关联。 |
| `prepare_legacy_dataset.ps1` | 旧式导出结果转换为 prepared。 |
| `prepare_multisensor_dataset.ps1` | combined 多传感器结果转换为 prepared。 |
| `run_single_dataset.ps1` | 单批数据同时完成两个 GICP 后端、B 筛选、consensus 和 X 求解。 |
| `run_all.ps1` | 历史流程:第二批求解,第一批稀疏 RTK 数据作辅助复核。 |
| `run_consensus_finish.ps1` | 在已有两个后端 B 的基础上重新生成 consensus 和汇总结果。 |
| `run_sensitivity_scan.ps1` | 对历史运动对执行外参角度灵敏度扫描。 |
| `view_result.ps1` | 传入匹配的 frames、B 和 X,运行交互式 3D 可视化。 |
### 标定核心文件的数据关系
统一约定 `T_A_B` 把 B 系点变换到 A 系:
```text
原始 dlog/rscap
-> tools 导出和时间关联
-> prepared/{frames_all, body_poses_*.csv}
-> rigorous_calibration.py pairs 生成 A、B
-> refine_pairs.py 做与 X 无关的 B 筛选
-> cross_backend_filter.py 生成 consensus B
-> rigorous_calibration.py calibrate 联合 AX=XB 与地面约束求 X
-> validate / visualize_pair_3d.py 做数值和三维检查
p_RTK = T_RTK_lidar · p_lidar
```
本仓库默认 RTK 导航系(**车头向前 / vehicle_forward_heading_offset**):
## 重要限制
- 原点:GGA 位置参考点(主天线 / ANT1 相位中心);
- X 轴:车头向前(`rawHeading + HeadingOffsetDeg`,本车 `HeadingOffsetDeg = -90`);
- Y 轴:左;
- Z 轴:上;
- 姿态:先在基线系应用双天线 pitch/roll,再乘固定 `Rz(-heading_offset)`;不是 IMU 融合姿态。
- RTK 车体姿态当前是双天线 heading 构造的 yaw-only 轨迹;没有用 RTK pitch/roll 构造 A。
- 新式解析器保存 IMU 与 RTK pitch 等原始字段,但当前手眼方程未融合 IMU
- 静止站点法不估计 LiDAR–RTK 时间偏移;时间戳关联必须在导出阶段通过审计。
- 地面约束负责 roll、pitch 和 z 的补充可观性,不会独立求出另一套六自由度外参。
- 仓库归档的是结果和轻量 B 文件,不包含云盘中的原始点云数据。
> 改 `HeadingOffsetDeg` 或姿态模型后必须从 **prepare** 起重跑;禁止事后只改 JSON 里的 yaw。
> 旧基线系结果(`HeadingOffsetDeg = 0`)与车头系外参不可混用
## 专题说明
机械初值文件:[`run/rtk_lidar_mechanical_initial.json`](run/rtk_lidar_mechanical_initial.json)
**仅用于 AX=XB 求解初值,禁止用于 LiDAR pair 配准。**
- [运动对诊断](PAIR_DIAGNOSTICS.md)
- [双后端共识筛选](CONSENSUS_SELECTION.md)
- [结果文件索引](results/README.md)
---
## 2. 算法流程
```text
原始雷达 + RTK+ 可选 IMU
→ combined/(按站关联的多传感器 NPZ)
→ 每站选一帧静态点云 + RTK pose(车头向前,含双天线 pitch/roll
→ Open3D GICP 与 small_gicp 分别求 B_ij = T_Li_Lj(无外参 seed
→ 留出点、正反向、旋转共轭不变量等精筛
→ 双后端共识边 → consensus B
→ A_ij X = X B_ij + 地面法向/高度约束 → X = T_RTK_lidar
→ bootstrap、双后端差异、逐对残差与 3D 可视化
```
```text
A_ij = inv(T_W_Ri) · T_W_Rj = T_Ri_Rj
B_ij = T_Li_Lj
A_ij · X = X · B_ij
X = T_RTK_lidar
```
---
## 3. 原始数据与导出
大体积数据不提交 Git。常见两种采集形态:
### 3.1 每站独立雷达目录(旧/标准站目录)
```text
raw_dataset/
├── stations/001|002|.../ # H32 dlog 或 h32.rscap
└── captures/
├── rtk.rscap
└── imu.rscap # 仅关联,不参与外参求解
```
```powershell
python tools\export_raw_to_combined.py `
--stations-root "$Raw\stations" `
--rtk-rscap "$Raw\captures\rtk.rscap" `
--imu-rscap "$Raw\captures\imu.rscap" `
--out "$Out\exported" `
--overwrite
```
默认时间基:`-TimeBasis device_gnss`(雷达设备时 ↔ GNSS week/TOW)。
### 3.2 G90 连续录制 + H32 DLog 按站时间窗(本次 27 站)
站不在独立目录,而在多个 Medulla DLog ZIP 与 G90 `.rscap` 中时:
```powershell
python tools\export_g90_h32_windows_to_combined.py `
--segments-csv <rtk_lidar_station_segments.csv> `
--lidar-dlog <dump_1.zip> --lidar-dlog <dump_2.zip> `
--rtk-rscap <g90_1.rscap> --rtk-rscap <g90_2.rscap> `
--out <output_root> --expected-stations 27 --frame-stride 5
```
该入口用 **主机接收 UTC** 做近邻关联(`time_basis_mode: host`),并保留设备时间供审计。
可加 `--reuse-export` 在已有 `export/` 上续跑。
采集建议:有效静站 ≥30(更好 40~60);相邻站转角约 **15°~30°**;避免一长串同朝向停车;场内宜有墙/立柱及 2~3 块法向不同的固定平面板。
---
## 4. 环境安装
Windows + PowerShell + Python 3.11
```powershell
python -m pip install -r requirements.txt
```
依赖:NumPy、SciPy、Open3D、small_gicp。完整共识需要两个配准后端。
---
## 5. 一键复现(匹配本次标定)
### 5.1 已有 `combined/`(推荐复现本次结果)
```powershell
$Repo = (Resolve-Path ".").Path
$Data = "D:\data\rtk_lidar_run" # 含 combined/
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_direct_rtk_lidar.ps1" `
-CombinedRoot "$Data\combined" `
-WorkRoot "$Data\prepared_vehicle_h19165" `
-OutputRoot "$Data\outputs_vehicle_h19165" `
-RtkReferenceHeightAboveGroundM 1.9165 `
-HeadingOffsetDeg -90 `
-ExpectedStations 27 `
-MinStations 20 `
-GroundZMin -2.5 `
-GroundZMax -1.5 `
-Bootstrap 200
```
关键参数:
| 参数 | 本次取值 | 说明 |
|---|---|---|
| `-RtkReferenceHeightAboveGroundM` | **1.9165** | GGA/ANT1 相位中心离地高(m),必填 |
| `-HeadingOffsetDeg` | **-90** | 车头向前(主从装反、基线朝右);`0` 才是基线系 |
| `-GroundZMin/Max` | **-2.5 / -1.5** | 约 2 m 车顶雷达;旧默认 `[-1.4,-0.4]` 会拟合到墙 |
| `-ExpectedStations` | **27** | 本批站数 |
| `-MinStations` | **20** | 远程旧脚本曾写死 30,会跑不了本批 |
pair 阶段**不会**传入 `--initial-extrinsic`;机械初值只进最终 AX=XB。
### 5.2 站目录原始数据一键(导出 + 求解)
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\run_full_pipeline.ps1" `
-DataRoot "$Raw\stations" `
-RtkCapture "$Raw\captures\rtk.rscap" `
-ImuCapture "$Raw\captures\imu.rscap" `
-OutputRoot $Out `
-RtkReferenceHeightAboveGroundM 1.9165 `
-ExpectedStations 27 `
-GroundZMin -2.5 `
-GroundZMax -1.5
```
主要输出:
```text
$Out/
├── exported/combined/ # 或外部已有 combined/
├── prepared_*/frames_all/
├── prepared_*/reference_poses_rtk_gga_raw_heading.csv
└── calibration/ 或 outputs_*/
├── open3d_gicp/ small_gicp/ consensus/
├── common/ground_planes.csv
├── summary.json
└── final_T_RTK_lidar.json
```
---
## 6. 3D 可视化
查看本次结果:
```powershell
$Repo = "D:\First-dev-dept\calibration-rtk-run"
$Out = "D:\data\rtk_lidar_run\outputs_vehicle_h19165"
$Work = "D:\data\rtk_lidar_run\prepared_vehicle_h19165"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_result.ps1" `
-Frames "$Work\frames_all" `
-Pairs "$Out\consensus\B_consensus.npz" `
-Extrinsic "$Out\final_T_RTK_lidar.json" `
-PairIndex 0
```
通用模板(把路径换成你的 `WorkRoot` / `OutputRoot`):
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_result.ps1" `
-Frames "$WorkRoot\frames_all" `
-Pairs "$OutputRoot\consensus\B_consensus.npz" `
-Extrinsic "$OutputRoot\final_T_RTK_lidar.json" `
-PairIndex 0
```
| 按键 | 含义 |
|---|---|
| `1` | 原始点云 |
| `2` | 仅用 RTK 运动作初值 |
| `3` | GICP 测得的 B |
| `4` | 外参预测 `X⁻¹ A X`(应与 3 重合) |
| `N` / `]` | 下一运动对 |
| `P` / `[` | 上一运动对 |
| `Q` / `Esc` | 退出 |
蓝 = 站 i,橙 = 站 j。请用 `N`/`P` **多看大转角对**,不要只看前几对同朝向站。
---
## 7. 当前标定结果(车头向前,h = 1.9165 m
> **状态:可作车头系候选交付**`recommended_for_deployment: true`)。
> 约定:`HeadingOffsetDeg=-90`,双天线 pitch/roll,机械初值 \(t=(+0.21086,-0.41418,+0.07850)\)yaw=0。
仓库内结果:[`results/vehicle_20260808/`](results/vehicle_20260808/)(来自本机 `outputs_vehicle_h19165`)。
```text
translation_m = [0.217822250, -0.411347802, 0.106542337]
RPY_deg_xyz = [0.066239, 0.809662, -0.551322]
T_RTK_lidar ≈
0.999854 0.009639 0.014119 0.217822
-0.009621 0.999953 -0.001292 -0.411348
-0.014131 0.001156 0.999899 0.106542
0 0 0 1
```
| 指标 | 值 |
|---|---:|
| 有效站点 / 共识对 | 27 / 20 |
| 平移残差 RMS | ≈ 0.071 m |
| 旋转残差 RMS | ≈ 0.982 ° |
| 双后端差 | ≈ 3.1 mm / 0.12° |
| `frame_mode` | `vehicle_forward_heading_offset` |
| 相对机械初值 | XY 近机械杆臂;yaw≈0;无近 180° 冲突 |
与机械平移初值 XY 相差约数毫米;z 由天线高度约束,CAD 的 4 mm 不能代替实测 1.9165 m。
### 为何 RMS 尚可、尾部(P95/max)较差?
1. **前段多站几乎同航向**STATION-0105 约 250°~255°)。最差对(如 2→4)站间转角仅约 5°,小转角对平均平移残差约 7.4 cm,大转角对约 3.7 cm。
2. **GICP heldout RMSE** 本身多在 0.11~0.14 m,场景重叠/结构限制了配准下限。
3. 本批导出为 **host 时间关联**,静站可用,但仍可能引入厘米级位姿—点云错位。
4. AX 残差衡量的是「RTK 运动 A」与「外参预测 XBX」的一致性,**不是**相对 CAD 的毫米误差,也不能单独证明 ±3 cm 绝对真值。
改进方向:相邻站转角 15°~30°、站数 ≥40、固定平面板、有条件改用 `device_gnss`
---
## 8. z 与精度限制
平面阿克曼运动不能独立观测 z。z 由「LiDAR 地面平面 + 外供 RTK 参考点离地高」约束:
- 本次:**1.9165 m**(相位中心离地);
- 不得复用其他车辆或历史采集的天线离地高度。
更改高度后必须重新求解,禁止只改 JSON 里的 z。
GGA 对应哪根天线、`rawHeading` 方向须现场确认;搞反会导致 yaw 差约 180°。
---
## 9. 仓库目录
| 目录 | 职责 |
|---|---|
| [`code/`](code/) | GICP、运动对质量、AX=XB、结果封装、3D 可视化 |
| [`tools/`](tools/) | dlog/rscap 解析、G90 窗导出、combined / prepared |
| [`run/`](run/) | PowerShell 入口;路径与高度均由参数传入 |
| [`results/`](results/) | 当前车辆的最终外参与质量摘要;不含原始数据和中间点云 |
| `tests/` | 坐标契约、G90 host 关联等回归 |
| `work/``outputs/` | 本地生成物(`.gitignore` |
命令索引见 [`run/README.md`](run/README.md),工具说明见 [`tools/README.md`](tools/README.md),操作手册见 [`雷达与RTK标定说明书.md`](雷达与RTK标定说明书.md)。
+13
View File
@@ -0,0 +1,13 @@
# code目录
| 文件 | 职责 |
|---|---|
| `rigorous_calibration.py` | 核心CLI:读取静态点云/RTK位姿,Open3D或small_gicp求B,拟合地面,求解/验证AX=XB |
| `refine_pairs.py` | 不使用最终X,按留出点重叠率、RMSE、旋转共轭不变量和正反向一致性精筛运动对 |
| `cross_backend_filter.py` | 保留Open3D与small_gicp共同认可且变换接近的边;共识B数值取Open3D结果 |
| `finalize_direct_rtk_lidar.py` | 将三路求解结果封装为明确方向的`T_RTK_lidar`,选择consensus为最终结果 |
| `visualize_pair_3d.py` | 交互显示原始、RTK初值、GICP B和`X^-1AX`,并打印增量 |
| `compare_extrinsics.py` | 计算两套外参的SE(3)平移/旋转差异 |
| `build_joint_rtk_lidar_inputs.py` | 合并多个独立批次的批内A/B运动对和地面平面,并保留批次索引与汇总信息 |
核心约定:`A=T_Ri_Rj``B=T_Li_Lj``X=T_RTK_lidar`,满足`A X = X B`。点云配准以i为target、j为sourceB将j帧点云变换到i帧。
+119
View File
@@ -0,0 +1,119 @@
#!/usr/bin/env python3
"""Combine independent RTK-direct hand-eye batches for a shared extrinsic.
Each batch contributes only its within-batch A/B motion pairs and LiDAR ground
planes. No cross-batch motion pair is created, so different ENU origins and
capture locations are valid as long as every batch uses the same RTK-direct
frame definition and unchanged physical sensor installation.
"""
from __future__ import annotations
import argparse
import csv
import json
from pathlib import Path
import numpy as np
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--batch-name", action="append", required=True)
parser.add_argument("--pairs", action="append", required=True, type=Path)
parser.add_argument("--ground-planes", action="append", required=True, type=Path)
parser.add_argument("--output-pairs", required=True, type=Path)
parser.add_argument("--output-ground-planes", required=True, type=Path)
parser.add_argument("--summary", required=True, type=Path)
return parser.parse_args()
def load_planes(path: Path, batch_name: str) -> list[dict[str, str]]:
with path.open(encoding="utf-8-sig", newline="") as stream:
rows = list(csv.DictReader(stream))
if not rows:
raise ValueError(f"no ground planes in {path}")
for row in rows:
for key in ("nx", "ny", "nz", "d"):
if key not in row or row[key] in (None, ""):
raise ValueError(f"missing {key} in {path}")
row["source_batch"] = batch_name
return rows
def main() -> int:
args = parse_args()
count = len(args.batch_name)
if count < 2 or len(args.pairs) != count or len(args.ground_planes) != count:
raise ValueError("provide the same number of --batch-name, --pairs, and --ground-planes (at least two)")
pair_parts: list[dict[str, np.ndarray]] = []
plane_rows: list[dict[str, str]] = []
batch_summaries: list[dict[str, object]] = []
for index, (name, pairs_path, planes_path) in enumerate(zip(args.batch_name, args.pairs, args.ground_planes)):
with np.load(pairs_path, allow_pickle=False) as source:
required = ("A", "B", "meta", "station_times", "rtk_nearest_dt_s")
missing = [key for key in required if key not in source]
if missing:
raise ValueError(f"{pairs_path} missing {missing}")
a = np.asarray(source["A"], float)
b = np.asarray(source["B"], float)
meta = np.asarray(source["meta"], float)
times = np.asarray(source["station_times"], float)
rtk_dt = np.asarray(source["rtk_nearest_dt_s"], float)
if len(a) == 0 or len(a) != len(b) or len(a) != len(meta):
raise ValueError(f"invalid A/B/meta sizes in {pairs_path}")
pair_parts.append({"A": a, "B": b, "meta": meta, "station_times": times, "rtk_dt": rtk_dt})
rows = load_planes(planes_path, name)
plane_rows.extend(rows)
batch_summaries.append({
"name": name,
"pairs_path": str(pairs_path.resolve()),
"ground_planes_path": str(planes_path.resolve()),
"pairs": len(a),
"stations": len(times),
"ground_planes": len(rows),
"pair_offset": sum(item["A"].shape[0] for item in pair_parts[:-1]),
})
output_pairs = args.output_pairs
output_pairs.parent.mkdir(parents=True, exist_ok=True)
batch_index = np.concatenate([np.full(len(part["A"]), index, np.int32) for index, part in enumerate(pair_parts)])
np.savez_compressed(
output_pairs,
A=np.concatenate([part["A"] for part in pair_parts]),
B=np.concatenate([part["B"] for part in pair_parts]),
meta=np.concatenate([part["meta"] for part in pair_parts]),
station_times=np.concatenate([part["station_times"] for part in pair_parts]),
rtk_nearest_dt_s=np.concatenate([part["rtk_dt"] for part in pair_parts]),
batch_index=batch_index,
batch_names=np.asarray(args.batch_name),
backend=np.asarray("independent_batch_consensus"),
)
output_planes = args.output_ground_planes
output_planes.parent.mkdir(parents=True, exist_ok=True)
fieldnames = ["nx", "ny", "nz", "d", "source_batch"]
with output_planes.open("w", encoding="utf-8", newline="") as stream:
writer = csv.DictWriter(stream, fieldnames=fieldnames)
writer.writeheader()
for row in plane_rows:
writer.writerow({key: row[key] for key in fieldnames})
summary = {
"schema_version": 1,
"convention": "Shared T_RTK_lidar; only within-batch A_ij and B_ij are combined.",
"batches": batch_summaries,
"total_pairs": int(len(batch_index)),
"total_ground_planes": len(plane_rows),
"output_pairs": str(output_pairs.resolve()),
"output_ground_planes": str(output_planes.resolve()),
}
args.summary.parent.mkdir(parents=True, exist_ok=True)
args.summary.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(summary, ensure_ascii=False, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Compare two T_body_lidar JSON files in parameter space and on SE(3)."""
"""Compare two homogeneous-extrinsic JSON files in parameter space and on SE(3)."""
import argparse
import json
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env python3
"""Publish the cross-backend-consensus result as the recommended deliverable."""
import argparse
import json
from pathlib import Path
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--consensus-extrinsic", required=True)
parser.add_argument("--consensus-check", required=True)
parser.add_argument("--open3d-extrinsic", required=True)
parser.add_argument("--small-extrinsic", required=True)
parser.add_argument("--output", required=True)
parser.add_argument("--summary", required=True)
args = parser.parse_args()
consensus = json.loads(Path(args.consensus_extrinsic).read_text(encoding="utf-8-sig"))
check = json.loads(Path(args.consensus_check).read_text(encoding="utf-8-sig"))
open3d = json.loads(Path(args.open3d_extrinsic).read_text(encoding="utf-8-sig"))
small = json.loads(Path(args.small_extrinsic).read_text(encoding="utf-8-sig"))
summary = {
"recommended_method": "Open3D B gated by Open3D-small_gicp cross-backend agreement",
"selection_is_X_independent": True,
"second_batch_role": "estimation (dense RTK)",
"first_batch_role": "auxiliary check only (sparse RTK)",
"consensus": {
"translation_m": consensus["translation_m"],
"rotation_rpy_deg_xyz": consensus["rotation_rpy_deg_xyz"],
"estimation": consensus["estimation"]["residuals"],
"bootstrap_std": consensus["bootstrap"]["std"],
"batch1_auxiliary": check["metrics"],
},
"separate_backend_results": {
"open3d_gicp": {
"translation_m": open3d["translation_m"],
"rotation_rpy_deg_xyz": open3d["rotation_rpy_deg_xyz"],
},
"small_gicp": {
"translation_m": small["translation_m"],
"rotation_rpy_deg_xyz": small["rotation_rpy_deg_xyz"],
},
},
"warning": "AX rotation RMS remains about one degree; this is not centimetre-grade absolute certification.",
}
published = dict(consensus)
published["selection"] = {
"method": summary["recommended_method"],
"selection_is_X_independent": True,
"consensus_pair_threshold": "Open3D-small_gicp B delta <= 0.05 m and <= 0.50 deg",
"warning": summary["warning"],
}
Path(args.output).write_text(json.dumps(published, ensure_ascii=False, indent=2), encoding="utf-8")
Path(args.summary).write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(summary, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
+349
View File
@@ -0,0 +1,349 @@
from __future__ import annotations
import argparse
import json
import math
from pathlib import Path
import numpy as np
from scipy.spatial.transform import Rotation
def load(path: Path) -> dict:
return json.loads(path.read_text(encoding="utf-8-sig"))
def write(path: Path, document: dict) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
def default(obj):
if isinstance(obj, (np.bool_, np.integer)):
return obj.item()
if isinstance(obj, np.floating):
return float(obj)
if isinstance(obj, np.ndarray):
return obj.tolist()
raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable")
path.write_text(json.dumps(document, ensure_ascii=False, indent=2, default=default), encoding="utf-8")
def inverse(t: np.ndarray) -> np.ndarray:
result = np.eye(4)
result[:3, :3] = t[:3, :3].T
result[:3, 3] = -result[:3, :3] @ t[:3, 3]
return result
def delta(a: np.ndarray, b: np.ndarray) -> dict:
d = inverse(a) @ b
return {
"translation_m": float(np.linalg.norm(d[:3, 3])),
"rotation_deg": float(np.linalg.norm(Rotation.from_matrix(d[:3, :3]).as_rotvec()) * 180.0 / math.pi),
"delta_matrix_4x4": d.tolist(),
}
def wrap180(deg: float) -> float:
return (deg + 180.0) % 360.0 - 180.0
def yaw_deg_of(transform: np.ndarray) -> float:
return float(Rotation.from_matrix(transform[:3, :3]).as_euler("xyz", degrees=True)[2])
def mechanical_self_consistency(document: dict) -> dict:
"""Reject mechanical JSON that mixes incompatible baseline / body definitions."""
translation = np.asarray(document["translation_m"], float)
yaw = float(document["rotation_rpy_deg_xyz"][2])
side = str(document.get("baseline_points", "")).strip().lower()
frame_mode = str(document.get("frame_mode", "")).strip().lower()
heading_offset = float(document.get("heading_offset_deg", 0.0) or 0.0)
vehicle_forward = (
frame_mode == "vehicle_forward_heading_offset"
or abs(heading_offset) > 1e-6
)
issues: list[str] = []
if vehicle_forward:
if abs(wrap180(yaw)) > 15.0:
issues.append(
f"vehicle-forward mechanical initial requires yaw≈0°, got {yaw:g}°"
)
lever = document.get("vehicle_flu_lever_master_to_lidar_m")
if lever is not None:
if float(np.linalg.norm(translation - np.asarray(lever, float))) > 0.05:
issues.append(
"vehicle-forward translation_m must match vehicle_flu_lever_master_to_lidar_m"
)
if abs(heading_offset + 90.0) > 1e-6 and abs(heading_offset - 90.0) > 1e-6:
issues.append(
f"vehicle-forward heading_offset_deg should be ±90 for left/right baseline, got {heading_offset:g}"
)
elif side in {"vehicle_left", "left"}:
if abs(wrap180(yaw - (-90.0))) > 15.0:
issues.append(
f"baseline_points=vehicle_left requires yaw≈-90°, got {yaw:g}°"
)
if translation[0] <= 0.0 or translation[1] <= 0.0:
issues.append(
"baseline_points=vehicle_left expects +X/+Y lever in RTK baseline frame "
f"(got t_xy=({translation[0]:g}, {translation[1]:g}))"
)
elif side in {"vehicle_right", "right"}:
if abs(wrap180(yaw - 90.0)) > 15.0:
issues.append(
f"baseline_points=vehicle_right requires yaw≈+90°, got {yaw:g}°"
)
# Swapped but centerline-symmetric master (vehicle left): +X / -Y in baseline frame.
if translation[0] <= 0.0 or translation[1] >= 0.0:
issues.append(
"baseline_points=vehicle_right (master on vehicle left, baseline to the right) "
"expects +X/-Y lever in RTK baseline frame "
f"(got t_xy=({translation[0]:g}, {translation[1]:g}))"
)
else:
left_xy = translation[0] > 0.05 and translation[1] > 0.05
right_xy = translation[0] < -0.05 and translation[1] < -0.05
swapped_right_xy = translation[0] > 0.05 and translation[1] < -0.05
if left_xy and abs(wrap180(yaw - 90.0)) <= 15.0:
issues.append(
"mixed baseline definition: +X/+Y translation (left-baseline) combined with yaw≈+90° (right-baseline)"
)
if right_xy and abs(wrap180(yaw - (-90.0))) <= 15.0:
issues.append(
"mixed baseline definition: -X/-Y translation combined with yaw≈-90°"
)
if swapped_right_xy and abs(wrap180(yaw - (-90.0))) <= 15.0:
issues.append(
"mixed baseline definition: +X/-Y translation (swapped-master right-baseline) "
"combined with yaw≈-90° (left-baseline)"
)
return {
"baseline_points": side or None,
"frame_mode": frame_mode or None,
"heading_offset_deg": heading_offset,
"consistent": not issues,
"issues": issues,
}
def solution_matches_declared_side(solution: np.ndarray, document: dict) -> dict:
"""Check whether the solved extrinsic agrees with the mechanical baseline side."""
side = str(document.get("baseline_points", "")).strip().lower()
yaw = yaw_deg_of(solution)
t = solution[:3, 3]
expected_yaw = float(document["rotation_rpy_deg_xyz"][2])
yaw_err = abs(wrap180(yaw - expected_yaw))
xy_err = float(np.linalg.norm(t[:2] - np.asarray(document["translation_m"][:2], float)))
z_err = float(abs(t[2] - float(document["translation_m"][2])))
opposite_yaw = abs(wrap180(yaw - expected_yaw) - 180.0) <= 15.0 or abs(
wrap180(yaw - expected_yaw) + 180.0
) <= 15.0
# Same XY sign as mechanical but yaw flipped ~180° (classic mixed inheritance).
same_xy_sign = (t[0] * float(document["translation_m"][0]) > 0.0) and (
t[1] * float(document["translation_m"][1]) > 0.0
)
mixed_inheritance = same_xy_sign and opposite_yaw
return {
"baseline_points": side or None,
"solution_yaw_deg": yaw,
"expected_yaw_deg": expected_yaw,
"yaw_error_deg": yaw_err,
"xy_error_m": xy_err,
"z_error_m": z_err,
"mixed_translation_rotation_inheritance": bool(mixed_inheritance),
"near_expected_pose": bool(yaw_err <= 15.0 and xy_err <= 0.25),
}
def coordinate_contract_audit(raw: dict) -> dict:
"""Audit mechanical self-consistency and solution agreement.
A near-180-degree disagreement is not auto-corrected: it normally means
that one physical forward-axis / baseline-direction statement is reversed.
"""
path_text = raw.get("solver_initial_extrinsic")
if not path_text:
return {
"status": "mechanical_initial_not_available",
"requires_physical_axis_confirmation": False,
}
path = Path(path_text)
if not path.exists():
return {
"status": "mechanical_initial_file_missing",
"requires_physical_axis_confirmation": False,
"mechanical_initial_path": str(path),
}
initial_document = load(path)
initial = np.asarray(initial_document["matrix_4x4"], float)
solution = np.asarray(raw["matrix_4x4"], float)
comparison = delta(initial, solution)
near_180 = abs(comparison["rotation_deg"] - 180.0) <= 15.0
mech_check = mechanical_self_consistency(initial_document)
match = solution_matches_declared_side(solution, initial_document)
if not mech_check["consistent"]:
status = "mechanical_initial_inconsistent"
elif match["mixed_translation_rotation_inheritance"] or near_180:
status = "near_180_degree_axis_conflict"
elif not match["near_expected_pose"]:
status = "solution_disagrees_with_mechanical_baseline_side"
else:
status = "no_near_180_degree_axis_conflict"
requires = status != "no_near_180_degree_axis_conflict"
return {
"status": status,
"requires_physical_axis_confirmation": requires,
"mechanical_initial_path": str(path.resolve()),
"mechanical_self_consistency": mech_check,
"solution_vs_declared_baseline_side": match,
"solution_relative_to_mechanical_initial": comparison,
"note": (
"No automatic 180-degree correction was applied. Confirm static GNHPR "
"left/right vs vehicle heading and Helios +X vs vehicle forward before deployment."
),
}
def corrected(raw: dict, backend: str, reference_height: float, heading_offset_deg: float) -> dict:
baseline_frame = abs(heading_offset_deg) <= 1e-12
x_axis = (
"horizontal projection of the rawHeading baseline direction reported by the receiver"
if baseline_frame else
"vehicle forward after applying the configured G90 heading offset"
)
return {
"schema_version": 1,
"success": bool(raw["success"]),
"convention": "T_RTK_lidar maps raw LiDAR points into the RTK navigation frame",
"equation": "A_RTK_ij X = X B_LiDAR_ij",
"frames": {
"RTK": {
"origin": "GGA positioning reference point; confirm ANT1/reference antenna in receiver configuration",
"x_axis": x_axis,
"y_axis": "left of the RTK X/baseline axis (not necessarily vehicle-left)",
"z_axis": "up",
"yaw_enu_deg": f"90 - (rawHeadingDeg + {heading_offset_deg:g})",
"frame_mode": "baseline_raw_heading" if baseline_frame else "vehicle_forward_heading_offset",
},
"LiDAR": {
"description": "raw Helios sensor frame from points_raw polar decode",
"x_axis": "+X at azimuth 0° (forward when aviation connector faces vehicle rear)",
"y_axis": "+Y at azimuth +90° (left when +X is vehicle-forward)",
"z_axis": "up",
"origin_note": "optical/center per Helios manual; mounting height includes 63.5 mm base offset when deriving mechanical ΔZ",
},
},
"backend": backend,
"measured_lidar_extrinsic_used_as_initial": bool(raw.get("measured_extrinsic_used_as_initial")),
"solver_initial_extrinsic": raw.get("solver_initial_extrinsic"),
"body_heading_offset_deg": heading_offset_deg,
"body_heading_offset_used": abs(heading_offset_deg) > 1e-12,
"body_antenna_lever_xy_used": False,
"translation_m": raw["translation_m"],
"rotation_rpy_deg_xyz": raw["rotation_rpy_deg_xyz"],
"quaternion_xyzw": raw["quaternion_xyzw"],
"coordinate_contract_audit": coordinate_contract_audit(raw),
"matrix_4x4": raw["matrix_4x4"],
"quality": {
"stations": raw["estimation"]["stations"],
"pairs": raw["estimation"]["pairs"],
"residuals": raw["estimation"]["residuals"],
"weighted_jacobian_condition_number": raw["weighted_jacobian_condition_number"],
"linearized_one_sigma": raw["linearized_one_sigma"],
"bootstrap": raw["bootstrap"],
},
"z_constraint": {
"observable_from_planar_AX_XB": False,
"method": "LiDAR ground planes plus externally supplied RTK reference-point height above ground",
"rtk_reference_height_above_ground_m": reference_height,
"warning": "z is conditional on the supplied RTK antenna height; it is not independently identified by planar Ackermann motion",
},
"important_limit": "AX residual and bootstrap quantify internal consistency, not independent centimetre-grade absolute certification",
}
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--result-root", type=Path, required=True)
parser.add_argument("--reference-height", type=float, required=True)
parser.add_argument("--heading-offset-deg", type=float, required=True)
args = parser.parse_args()
def solver_output(directory: str) -> Path:
raw = args.result_root / directory / "extrinsic_raw.json"
standard = args.result_root / directory / "extrinsic.json"
return raw if raw.exists() else standard
paths = {
"open3d_gicp": solver_output("open3d_gicp"),
"small_gicp": solver_output("small_gicp"),
"consensus": solver_output("consensus"),
}
docs = {}
for backend, path in paths.items():
document = corrected(
load(path), backend, args.reference_height, args.heading_offset_deg
)
write(path.with_name("extrinsic_rtk_lidar.json"), document)
docs[backend] = document
open_t = np.asarray(docs["open3d_gicp"]["matrix_4x4"], float)
small_t = np.asarray(docs["small_gicp"]["matrix_4x4"], float)
final = dict(docs["consensus"])
needs_axis_confirmation = bool(
final["coordinate_contract_audit"]["requires_physical_axis_confirmation"]
)
status = final["coordinate_contract_audit"]["status"]
reason_map = {
"mechanical_initial_inconsistent": (
"Mechanical initial mixes incompatible baseline-left/right translation and yaw; "
"fix run/rtk_lidar_mechanical_initial.json before trusting deployment"
),
"near_180_degree_axis_conflict": (
"Physical axis confirmation is required because the data-driven solution differs "
"from the declared mechanical initial by approximately 180 degrees "
"(or inherits mixed translation/rotation signs)"
),
"solution_disagrees_with_mechanical_baseline_side": (
"Solution yaw/XY disagree with the declared mechanical baseline side; "
"confirm static GNHPR direction before deployment"
),
}
final["selection"] = {
"recommended": not needs_axis_confirmation,
"reason": (
reason_map.get(
status,
"Uses only motion pairs accepted independently by both Open3D GICP and small_gicp",
)
),
"open3d_vs_small_gicp": delta(open_t, small_t),
}
write(args.result_root / "final_T_RTK_lidar.json", final)
summary = {
"final": {
"translation_m": final["translation_m"],
"rotation_rpy_deg_xyz": final["rotation_rpy_deg_xyz"],
"pairs": final["quality"]["pairs"],
"translation_rms_m": final["quality"]["residuals"]["translation_m"]["rms"],
"rotation_rms_deg": final["quality"]["residuals"]["rotation_deg"]["rms"],
"condition_number": final["quality"]["weighted_jacobian_condition_number"],
"coordinate_contract_status": final["coordinate_contract_audit"]["status"],
"recommended_for_deployment": final["selection"]["recommended"],
},
"backend_difference": delta(open_t, small_t),
}
write(args.result_root / "summary.json", summary)
print(json.dumps(summary, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
+131 -25
View File
@@ -1,8 +1,9 @@
#!/usr/bin/env python3
"""Rigorous stationary LiDAR / dual-antenna RTK hand-eye calibration.
"""Rigorous stationary LiDAR / reference-trajectory hand-eye calibration.
Convention: T_A_B maps points from frame B into frame A.
X = T_body_lidar, A_ij = T_W_Bi^-1 T_W_Bj, B_ij = T_Li_Lj,
For this repository the reference frame is the RTK navigation frame.
X = T_RTK_lidar, A_ij = T_W_Ri^-1 T_W_Rj, B_ij = T_Li_Lj,
therefore A_ij X = X B_ij. Raw sensor-frame points_raw are used.
"""
from __future__ import annotations
@@ -79,6 +80,20 @@ def params_transform(params):
return make_transform(params[:3], so3_exp(params[3:]))
def transform_params(transform):
from scipy.spatial.transform import Rotation
transform = np.asarray(transform, float)
return np.r_[transform[:3, 3], Rotation.from_matrix(transform[:3, :3]).as_rotvec()]
def load_extrinsic_matrix(path):
document = json.loads(Path(path).read_text(encoding="utf-8-sig"))
transform = np.asarray(document["matrix_4x4"], dtype=float)
if transform.shape != (4, 4):
raise ValueError("initial extrinsic matrix_4x4 must be 4x4")
return transform
def inverse_transform(transform):
answer = np.eye(4)
answer[:3, :3] = transform[:3, :3].T
@@ -134,7 +149,8 @@ def load_npz_xyz(path, min_range=1.0, max_range=50.0):
if "points_raw" not in data:
raise ValueError(f"{path}: points_raw is required; cart-frame points are forbidden")
raw = np.asarray(data["points_raw"], dtype=np.float64)
timestamp = float(np.ravel(data["unix_time_ns"])[0]) / 1e9
time_key = "lidar_association_time_ns" if "lidar_association_time_ns" in data else "unix_time_ns"
timestamp = float(np.ravel(data[time_key])[0]) / 1e9
counter = int(np.ravel(data["frame_counter"])[0])
distance = raw[:, 0] * 0.001
azimuth = np.deg2rad(raw[:, 1])
@@ -178,6 +194,63 @@ def make_o3d_cloud(points, voxel):
return cloud.voxel_down_sample(voxel)
def make_global_features(points, voxel):
import open3d as o3d
cloud = make_o3d_cloud(points, voxel)
cloud.estimate_normals(o3d.geometry.KDTreeSearchParamHybrid(
radius=voxel * 2.5, max_nn=50
))
features = o3d.pipelines.registration.compute_fpfh_feature(
cloud,
o3d.geometry.KDTreeSearchParamHybrid(radius=voxel * 5.0, max_nn=100),
)
return cloud, features
def global_lidar_initialization(target_features, source_features, args, pair_seed):
"""Estimate source-to-target motion from LiDAR geometry without RTK or an extrinsic."""
import open3d as o3d
registration = o3d.pipelines.registration
target_cloud, target_fpfh = target_features
source_cloud, source_fpfh = source_features
attempts = []
for attempt in range(args.global_ransac_attempts):
o3d.utility.random.seed(int(pair_seed + attempt))
answer = registration.registration_ransac_based_on_feature_matching(
source_cloud,
target_cloud,
source_fpfh,
target_fpfh,
True,
args.global_correspondence,
registration.TransformationEstimationPointToPoint(False),
4,
[
registration.CorrespondenceCheckerBasedOnEdgeLength(0.9),
registration.CorrespondenceCheckerBasedOnDistance(args.global_correspondence),
],
registration.RANSACConvergenceCriteria(
args.global_ransac_iterations, args.global_ransac_confidence
),
)
attempts.append({
"transform": np.asarray(answer.transformation, float),
"fitness": float(answer.fitness),
"inlier_rmse_m": float(answer.inlier_rmse),
})
best = max(attempts, key=lambda item: (item["fitness"], -item["inlier_rmse_m"]))
return {
"transform": best["transform"],
"method": "LiDAR-only FPFH RANSAC",
"fitness": best["fitness"],
"inlier_rmse_m": best["inlier_rmse_m"],
"attempts": [
{key: value for key, value in item.items() if key != "transform"}
for item in attempts
],
}
def align_open3d(target, source, initial, voxels, correspondences, iterations):
import open3d as o3d
registration = o3d.pipelines.registration
@@ -367,30 +440,38 @@ def cmd_pairs(args):
stations = load_stations(
args.frames, args.min_range, args.max_range, args.z_min, args.z_max
)
body = read_poses(args.body)
reference = read_poses(args.reference_poses)
if len(stations) < args.min_stations:
raise ValueError(f"need at least {args.min_stations} stations, got {len(stations)}")
body_poses, body_dt = [], []
reference_poses, reference_dt = [], []
for timestamp, _, _, xyz in stations:
if len(xyz) < args.min_roi_points:
raise ValueError(f"station at {timestamp} has only {len(xyz)} ROI points")
pose, dt = nearest_pose(body, timestamp + args.time_offset)
body_poses.append(pose)
body_dt.append(dt)
body_poses = np.asarray(body_poses)
pose, dt = nearest_pose(reference, timestamp + args.time_offset)
reference_poses.append(pose)
reference_dt.append(dt)
reference_poses = np.asarray(reference_poses)
split = [split_holdout(station[3], args.holdout_fraction, i)
for i, station in enumerate(stations)]
global_features = [make_global_features(points[0], args.global_voxel)
for points in split]
rng = np.random.default_rng(args.seed)
accepted_a, accepted_b, accepted_meta, reports = [], [], [], []
accepted_transforms = {}
for i in range(len(stations)):
for j in range(i + args.min_gap, min(len(stations), i + args.max_gap + 1)):
a_ij = inverse_transform(body_poses[i]) @ body_poses[j]
a_ij = inverse_transform(reference_poses[i]) @ reference_poses[j]
translation = float(np.linalg.norm(a_ij[:2, 3]))
rotation = rotation_angle_deg(a_ij[:3, :3])
if args.max_reference_translation is not None and translation > args.max_reference_translation:
continue
if translation < args.min_translation and rotation < args.min_rotation:
continue
initial_b = a_ij.copy() # X0=I; no measured extrinsic.
global_initial = global_lidar_initialization(
global_features[i], global_features[j], args,
args.seed + i * 1009 + j * 9176,
)
initial_b = global_initial["transform"]
target_fit, target_holdout = split[i]
source_fit, source_holdout = split[j]
forward = align_backend(args.backend, target_fit, source_fit, initial_b, args)
@@ -445,8 +526,11 @@ def cmd_pairs(args):
"lidar_time_i": stations[i][0], "lidar_time_j": stations[j][0],
"frame_counter_i": stations[i][1], "frame_counter_j": stations[j][1],
"rtk_translation_m": translation, "rtk_rotation_deg": rotation,
"nearest_rtk_dt_i_s": body_dt[i], "nearest_rtk_dt_j_s": body_dt[j],
"initial_B_source": "X0=identity; B0=A (no measured extrinsic)",
"nearest_rtk_dt_i_s": reference_dt[i], "nearest_rtk_dt_j_s": reference_dt[j],
"initial_B_source": global_initial["method"],
"global_lidar_initialization": {
key: value for key, value in global_initial.items() if key != "transform"
},
"B_ij_4x4": forward["transform"].tolist(),
"backend": args.backend, "backend_converged": forward["converged"],
"backend_iterations": forward["iterations"],
@@ -474,14 +558,18 @@ def cmd_pairs(args):
output, A=np.asarray(accepted_a), B=np.asarray(accepted_b),
meta=np.asarray(accepted_meta),
station_times=np.asarray([item[0] for item in stations]),
rtk_nearest_dt_s=np.asarray(body_dt), backend=np.asarray(args.backend),
rtk_nearest_dt_s=np.asarray(reference_dt), backend=np.asarray(args.backend),
)
quality = {
"schema_version": 2,
"backend": args.backend,
"transform_convention": "B_ij=T_Li_Lj maps station j points into station i",
"raw_point_field": "points_raw",
"measured_extrinsic_used_as_initial": False,
"registration_initial_extrinsic": None,
"selection_is_X_independent": True,
"B_estimation_is_RTK_independent": True,
"candidate_pair_selection_uses_reference_motion": True,
"initialization_warning": None,
"stations": len(stations), "candidate_pairs": len(reports),
"accepted_pairs": len(accepted_a),
"parameters": vars(args),
@@ -556,7 +644,7 @@ def calibration_residual(params, a_array, b_array, planes, args):
normal_body = x[:3, :3] @ plane[:3]
values.extend((np.cross(normal_body, body_up) / args.plane_normal_sigma).tolist())
body_distance = plane[3] - float(normal_body @ x[:3, 3])
values.append((body_distance - args.body_height) / args.plane_height_sigma)
values.append((body_distance - args.reference_height) / args.plane_height_sigma)
return np.asarray(values)
@@ -584,9 +672,11 @@ def pair_metrics(a_array, b_array, x):
def solve_extrinsic(a_array, b_array, planes, args):
rng = np.random.default_rng(args.seed)
starts = [np.zeros(6)]
center = (transform_params(load_extrinsic_matrix(args.initial_extrinsic))
if args.initial_extrinsic else np.zeros(6))
starts = [center]
for _ in range(args.solver_multistart - 1):
starts.append(np.r_[
starts.append(center + np.r_[
rng.normal(0.0, args.start_translation_sigma, 3),
np.deg2rad(rng.normal(0.0, args.start_rotation_sigma, 3)),
])
@@ -644,9 +734,12 @@ def cmd_calibrate(args):
"schema_version": 2,
"success": bool(best.success),
"message": best.message,
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"convention": "T_reference_lidar maps raw LiDAR points into the supplied reference frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": False,
"measured_extrinsic_used_as_initial": bool(args.initial_extrinsic),
"solver_initial_extrinsic": (
str(Path(args.initial_extrinsic).resolve()) if args.initial_extrinsic else None
),
"translation_m": x[:3, 3].tolist(),
"rotation_rpy_deg_xyz": rpy_deg(x[:3, :3]),
"quaternion_xyzw": rotation_to_quat(x[:3, :3]).tolist(),
@@ -655,8 +748,8 @@ def cmd_calibrate(args):
"residuals": pair_metrics(a_array, b_array, x)},
"ground": {
"planes": len(planes),
"body_origin_height_above_ground_m": args.body_height,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height",
"reference_origin_height_above_ground_m": args.reference_height,
"formula": "d_lidar - (R_X n_lidar)^T t_X - reference_height",
},
"linearized_one_sigma": {
"translation_m": sigma[:3].tolist(),
@@ -706,22 +799,30 @@ def build_parser():
ground = commands.add_parser("ground")
ground.add_argument("--frames", required=True); ground.add_argument("--output", required=True)
ground.add_argument("--min-range", type=float, default=1.0); ground.add_argument("--max-range", type=float, default=30.0)
ground.add_argument("--z-min", type=float, default=-1.4); ground.add_argument("--z-max", type=float, default=-0.4)
# Default ROI for ~2 m roof LiDAR (Z-up). Override for other mounting heights.
ground.add_argument("--z-min", type=float, default=-2.5); ground.add_argument("--z-max", type=float, default=-1.5)
ground.add_argument("--voxel", type=float, default=0.08); ground.add_argument("--distance-threshold", type=float, default=0.025)
ground.add_argument("--ransac-iterations", type=int, default=500); ground.add_argument("--min-inliers", type=int, default=500)
ground.add_argument("--max-rms", type=float, default=0.025); ground.set_defaults(func=cmd_ground)
pairs = commands.add_parser("pairs")
pairs.add_argument("--backend", choices=["open3d", "small_gicp"], required=True)
pairs.add_argument("--frames", required=True); pairs.add_argument("--body", required=True)
pairs.add_argument("--frames", required=True)
pairs.add_argument("--reference-poses", "--body", dest="reference_poses", required=True)
pairs.add_argument("--output", required=True); pairs.add_argument("--quality-json"); pairs.add_argument("--quality-csv")
pairs.add_argument("--time-offset", type=float, default=0.0)
pairs.add_argument("--min-stations", type=int, default=30); pairs.add_argument("--min-pairs", type=int, default=25)
pairs.add_argument("--min-gap", type=int, default=1); pairs.add_argument("--max-gap", type=int, default=5)
pairs.add_argument("--max-reference-translation", type=float)
pairs.add_argument("--min-translation", type=float, default=0.5); pairs.add_argument("--min-rotation", type=float, default=3.0)
pairs.add_argument("--min-range", type=float, default=2.0); pairs.add_argument("--max-range", type=float, default=50.0)
pairs.add_argument("--z-min", type=float, default=-0.60); pairs.add_argument("--z-max", type=float, default=5.0)
pairs.add_argument("--min-roi-points", type=int, default=1000)
pairs.add_argument("--global-voxel", type=float, default=0.50)
pairs.add_argument("--global-correspondence", type=float, default=1.25)
pairs.add_argument("--global-ransac-attempts", type=int, default=3)
pairs.add_argument("--global-ransac-iterations", type=int, default=100000)
pairs.add_argument("--global-ransac-confidence", type=float, default=0.999)
pairs.add_argument("--holdout-fraction", type=float, default=0.20)
pairs.add_argument("--voxels", nargs="+", type=float, default=[0.30, 0.15, 0.08])
pairs.add_argument("--correspondences", nargs="+", type=float, default=[1.20, 0.50, 0.25])
@@ -742,11 +843,16 @@ def build_parser():
calibrate = commands.add_parser("calibrate")
calibrate.add_argument("--pairs", required=True); calibrate.add_argument("--ground-planes", required=True)
calibrate.add_argument("--output", required=True)
calibrate.add_argument("--initial-extrinsic")
calibrate.add_argument("--translation-sigma", type=float, default=0.05)
calibrate.add_argument("--rotation-sigma", type=float, default=0.5)
calibrate.add_argument("--plane-normal-sigma", type=float, default=0.02)
calibrate.add_argument("--plane-height-sigma", type=float, default=0.03)
calibrate.add_argument("--body-height", type=float, default=0.2335)
calibrate.add_argument(
"--reference-height", "--body-height", dest="reference_height",
type=float, required=True,
help="measured RTK/GGA reference-origin height above the local ground in metres",
)
calibrate.add_argument("--solver-multistart", type=int, default=12)
calibrate.add_argument("--start-translation-sigma", type=float, default=1.0)
calibrate.add_argument("--start-rotation-sigma", type=float, default=20.0)
-311
View File
@@ -1,311 +0,0 @@
#!/usr/bin/env python3
"""Scan body-left RPY corrections locally and validate them over every B pair.
This command is diagnostic only. It never writes or replaces an extrinsic JSON.
"""
from __future__ import annotations
import argparse
import csv
import json
import math
from pathlib import Path
import numpy as np
from scipy.spatial.transform import Rotation
from rigorous_calibration import (
inverse_transform, read_pairs, read_planes, rotation_angle_deg, rpy_deg,
)
def statistics(values):
values = np.asarray(values, float)
return {
"rms": float(np.sqrt(np.mean(values ** 2))),
"median": float(np.median(values)),
"p90": float(np.quantile(values, 0.90)),
"p95": float(np.quantile(values, 0.95)),
"max": float(np.max(values)),
}
def body_left_rpy(x, rpy_correction_deg):
correction = np.eye(4)
correction[:3, :3] = Rotation.from_euler(
"xyz", np.asarray(rpy_correction_deg, float), degrees=True
).as_matrix()
return correction @ x
def pair_delta(a_ij, b_ij, x):
predicted = inverse_transform(x) @ a_ij @ x
delta = inverse_transform(b_ij) @ predicted
translation = np.asarray(delta[:3, 3], float)
return {
"translation_xyz_m": translation.tolist(),
"translation_xyz_cm": (100.0 * translation).tolist(),
"translation_norm_m": float(np.linalg.norm(translation)),
"rotation_rpy_deg_xyz": rpy_deg(delta[:3, :3]),
"rotation_angle_deg": rotation_angle_deg(delta[:3, :3]),
}
def ground_metrics(planes, x, body_height):
if len(planes) == 0:
return None
up = np.array([0.0, 0.0, 1.0])
tilt_deg, height_m = [], []
for plane in planes:
normal_body = x[:3, :3] @ plane[:3]
normal_body /= np.linalg.norm(normal_body)
tilt_deg.append(math.degrees(math.atan2(
np.linalg.norm(np.cross(normal_body, up)),
float(np.clip(normal_body @ up, -1.0, 1.0)),
)))
height_m.append(
float(plane[3] - normal_body @ x[:3, 3] - body_height)
)
return {
"normal_tilt_deg": statistics(tilt_deg),
"height_residual_m": statistics(height_m),
}
def evaluate(label, correction, a_array, b_array, meta, x, pair_index,
translation_scale, rotation_scale, planes, body_height):
candidate_x = body_left_rpy(x, correction)
per_pair = []
translation, rotation, normalized = [], [], []
for index, (a_ij, b_ij, pair_meta) in enumerate(zip(a_array, b_array, meta)):
item = pair_delta(a_ij, b_ij, candidate_x)
item.update({
"pair_index": index,
"i": int(pair_meta[0]),
"j": int(pair_meta[1]),
})
t = item["translation_norm_m"]
r = item["rotation_angle_deg"]
translation.append(t)
rotation.append(r)
normalized.append(math.hypot(t / translation_scale, r / rotation_scale))
per_pair.append(item)
return {
"label": label,
"body_left_rpy_correction_deg_xyz": list(map(float, correction)),
"candidate_extrinsic": {
"translation_m": candidate_x[:3, 3].tolist(),
"rotation_rpy_deg_xyz": rpy_deg(candidate_x[:3, :3]),
},
"all_pairs": {
"count": len(per_pair),
"translation_m": statistics(translation),
"rotation_deg": statistics(rotation),
"normalized_pair_score": statistics(normalized),
"normalized_global_rms": float(np.sqrt(np.mean(np.asarray(normalized) ** 2))),
},
"selected_pair": per_pair[pair_index],
"ground": ground_metrics(planes, candidate_x, body_height),
"per_pair": per_pair,
}
def candidate_grid(pitch_values, roll_values, yaw_values):
answer = [("baseline", (0.0, 0.0, 0.0))]
for pitch in pitch_values:
answer.append((f"pitch_{pitch:+.3f}", (0.0, pitch, 0.0)))
for pitch in (0.0, *pitch_values):
for roll in roll_values:
answer.append((
f"pitch_{pitch:+.3f}_roll_{roll:+.3f}",
(roll, pitch, 0.0),
))
for yaw in yaw_values:
answer.append((f"yaw_{yaw:+.3f}_diagnostic", (0.0, 0.0, yaw)))
unique = []
seen = set()
for label, values in answer:
key = tuple(round(float(value), 12) for value in values)
if key not in seen:
seen.add(key)
unique.append((label, values))
return unique
def z_observability(a_array, x, test_shift_m):
shift = np.eye(4)
shift[2, 3] = test_shift_m
shifted_x = shift @ x
effects = []
for a_ij in a_array:
before = inverse_transform(x) @ a_ij @ x
after = inverse_transform(shifted_x) @ a_ij @ shifted_x
delta = inverse_transform(before) @ after
effects.append((
float(np.linalg.norm(delta[:3, 3])),
rotation_angle_deg(delta[:3, :3]),
))
effects = np.asarray(effects, float)
maximum = np.max(effects, axis=0)
return {
"body_left_z_test_shift_m": test_shift_m,
"max_predicted_motion_change_translation_m": float(maximum[0]),
"max_predicted_motion_change_rotation_deg": float(maximum[1]),
"numerically_unobservable": bool(maximum[0] < 1e-10 and maximum[1] < 1e-10),
"note": "AX pairs cannot determine X.z when every A rotation preserves body Z; use ground/external height constraints.",
}
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--pairs", required=True)
parser.add_argument("--extrinsic", required=True)
parser.add_argument("--output", required=True)
parser.add_argument("--csv")
parser.add_argument("--ground-planes")
parser.add_argument("--pair-index", type=int, default=0)
parser.add_argument("--pitch-values", nargs="+", type=float, default=[0.1, 0.2, 0.3])
parser.add_argument("--roll-values", nargs="+", type=float, default=[-0.2, -0.1, 0.1])
parser.add_argument("--yaw-values", nargs="+", type=float, default=[-0.2, 0.2])
parser.add_argument("--translation-scale", type=float, default=0.05)
parser.add_argument("--rotation-scale", type=float, default=0.5)
parser.add_argument("--body-height", type=float, default=0.2335)
args = parser.parse_args()
a_array, b_array, meta, stations = read_pairs(args.pairs)
if not 0 <= args.pair_index < len(a_array):
raise IndexError(f"pair-index {args.pair_index} outside [0,{len(a_array)-1}]")
with Path(args.extrinsic).open(encoding="utf-8-sig") as stream:
x = np.asarray(json.load(stream)["matrix_4x4"], float)
planes = read_planes(args.ground_planes) if args.ground_planes else np.empty((0, 4))
candidates = [
evaluate(
label, correction, a_array, b_array, meta, x, args.pair_index,
args.translation_scale, args.rotation_scale, planes, args.body_height,
)
for label, correction in candidate_grid(
args.pitch_values, args.roll_values, args.yaw_values
)
]
baseline = candidates[0]
baseline_scores = np.asarray([
math.hypot(
item["translation_norm_m"] / args.translation_scale,
item["rotation_angle_deg"] / args.rotation_scale,
)
for item in baseline["per_pair"]
])
base_global = baseline["all_pairs"]["normalized_global_rms"]
for candidate in candidates:
scores = np.asarray([
math.hypot(
item["translation_norm_m"] / args.translation_scale,
item["rotation_angle_deg"] / args.rotation_scale,
)
for item in candidate["per_pair"]
])
delta = scores - baseline_scores
candidate["comparison_to_baseline"] = {
"normalized_global_rms_change": float(
candidate["all_pairs"]["normalized_global_rms"] - base_global
),
"improved_pairs": int(np.sum(delta < -1e-12)),
"worsened_pairs": int(np.sum(delta > 1e-12)),
"unchanged_pairs": int(np.sum(np.abs(delta) <= 1e-12)),
"median_per_pair_score_change": float(np.median(delta)),
"global_consistency_signal": bool(
candidate["all_pairs"]["normalized_global_rms"] < base_global
and np.sum(delta < -1e-12) > np.sum(delta > 1e-12)
),
}
ranking = sorted(
candidates,
key=lambda item: item["all_pairs"]["normalized_global_rms"],
)
report = {
"schema_version": 1,
"diagnostic_only": True,
"extrinsic_was_modified": False,
"equation": "delta_ij = B_ij^-1 * (X^-1 * A_ij * X)",
"correction_convention": "X_test = DeltaR_body * X; DeltaR uses fixed body xyz RPY axes",
"component_frame": "delta translation/RPY components are in station-j LiDAR coordinates, not screen axes",
"selection_rule": (
"Never accept a correction from selected_pair alone. Require improvement over all "
"refined pairs, directional consistency across pairs, acceptable ground constraints, "
"and independent visual review. This script never overwrites X."
),
"pairs_file": str(Path(args.pairs).resolve()),
"extrinsic_file": str(Path(args.extrinsic).resolve()),
"stations": stations,
"pairs": len(a_array),
"selected_pair_index": args.pair_index,
"selected_pair_stations": [int(meta[args.pair_index, 0]), int(meta[args.pair_index, 1])],
"normalization": {
"translation_scale_m": args.translation_scale,
"rotation_scale_deg": args.rotation_scale,
},
"z_observability": z_observability(a_array, x, 0.10),
"ranking_by_all_pair_normalized_rms": [
{
"rank": rank,
"label": item["label"],
"body_left_rpy_correction_deg_xyz": item["body_left_rpy_correction_deg_xyz"],
"normalized_global_rms": item["all_pairs"]["normalized_global_rms"],
**item["comparison_to_baseline"],
}
for rank, item in enumerate(ranking, 1)
],
"candidates": candidates,
}
output = Path(args.output)
output.parent.mkdir(parents=True, exist_ok=True)
output.write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8")
csv_path = Path(args.csv) if args.csv else output.with_suffix(".csv")
with csv_path.open("w", encoding="utf-8", newline="") as stream:
fields = [
"label", "roll_correction_deg", "pitch_correction_deg", "yaw_correction_deg",
"selected_pair_translation_cm", "selected_pair_rotation_deg",
"all_pair_translation_rms_m", "all_pair_rotation_rms_deg",
"normalized_global_rms", "normalized_global_rms_change",
"improved_pairs", "worsened_pairs", "global_consistency_signal",
"ground_normal_tilt_rms_deg", "ground_height_rms_m",
]
writer = csv.DictWriter(stream, fieldnames=fields)
writer.writeheader()
for item in candidates:
correction = item["body_left_rpy_correction_deg_xyz"]
ground = item["ground"]
comparison = item["comparison_to_baseline"]
writer.writerow({
"label": item["label"],
"roll_correction_deg": correction[0],
"pitch_correction_deg": correction[1],
"yaw_correction_deg": correction[2],
"selected_pair_translation_cm": item["selected_pair"]["translation_norm_m"] * 100.0,
"selected_pair_rotation_deg": item["selected_pair"]["rotation_angle_deg"],
"all_pair_translation_rms_m": item["all_pairs"]["translation_m"]["rms"],
"all_pair_rotation_rms_deg": item["all_pairs"]["rotation_deg"]["rms"],
"normalized_global_rms": item["all_pairs"]["normalized_global_rms"],
"normalized_global_rms_change": comparison["normalized_global_rms_change"],
"improved_pairs": comparison["improved_pairs"],
"worsened_pairs": comparison["worsened_pairs"],
"global_consistency_signal": comparison["global_consistency_signal"],
"ground_normal_tilt_rms_deg": None if ground is None else ground["normal_tilt_deg"]["rms"],
"ground_height_rms_m": None if ground is None else ground["height_residual_m"]["rms"],
})
print(json.dumps({
"diagnostic_only": True,
"selected_pair": baseline["selected_pair"],
"z_observability": report["z_observability"],
"top_all_pair_candidates": report["ranking_by_all_pair_normalized_rms"][:8],
"output": str(output.resolve()),
"csv": str(csv_path.resolve()),
}, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
-87
View File
@@ -1,87 +0,0 @@
#!/usr/bin/env python3
"""Build a concise backend comparison and select the recommended result."""
import argparse
import json
from pathlib import Path
import numpy as np
from scipy.spatial.transform import Rotation
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--open3d", required=True)
parser.add_argument("--small", required=True)
parser.add_argument("--open3d-quality", required=True)
parser.add_argument("--small-quality", required=True)
parser.add_argument("--open3d-check", required=True)
parser.add_argument("--small-check", required=True)
parser.add_argument("--output", required=True)
parser.add_argument("--recommended-output", required=True)
args = parser.parse_args()
open_result = json.loads(Path(args.open3d).read_text(encoding="utf-8-sig"))
small_result = json.loads(Path(args.small).read_text(encoding="utf-8-sig"))
open_quality = json.loads(Path(args.open3d_quality).read_text(encoding="utf-8-sig"))
small_quality = json.loads(Path(args.small_quality).read_text(encoding="utf-8-sig"))
open_check = json.loads(Path(args.open3d_check).read_text(encoding="utf-8-sig"))
small_check = json.loads(Path(args.small_check).read_text(encoding="utf-8-sig"))
x_open = np.asarray(open_result["matrix_4x4"], float)
x_small = np.asarray(small_result["matrix_4x4"], float)
delta = np.linalg.inv(x_open) @ x_small
def compact(result, quality, check):
estimate = result["estimation"]["residuals"]
auxiliary = check["metrics"]
return {
"translation_m": result["translation_m"],
"rotation_rpy_deg_xyz": result["rotation_rpy_deg_xyz"],
"estimation_pairs": estimate["pairs"],
"estimation_translation_rms_m": estimate["translation_m"]["rms"],
"estimation_rotation_rms_deg": estimate["rotation_deg"]["rms"],
"bootstrap_std": result["bootstrap"]["std"],
"initial_B_loop_closure": quality["accepted_loop_closure"],
"batch1_auxiliary_pairs": auxiliary["pairs"],
"batch1_auxiliary_translation_rms_m": auxiliary["translation_m"]["rms"],
"batch1_auxiliary_rotation_rms_deg": auxiliary["rotation_deg"]["rms"],
}
summary = {
"recommended_backend": "open3d_gicp",
"selection_reason": (
"The two X estimates agree closely; Open3D has lower second-batch AX residual, "
"better B loop closure, and lower first-batch auxiliary residual."
),
"coordinate_convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"measured_extrinsic_used_as_initial": False,
"second_batch_role": "estimation (dense RTK)",
"first_batch_role": "auxiliary check only (sparse RTK)",
"backend_difference": {
"translation_m": float(np.linalg.norm(delta[:3, 3])),
"rotation_deg": float(np.rad2deg(Rotation.from_matrix(delta[:3, :3]).magnitude())),
},
"open3d_gicp": compact(open_result, open_quality, open_check),
"small_gicp": compact(small_result, small_quality, small_check),
"important_limit": (
"Backend agreement is strong, but AX rotation RMS remains about one degree. "
"This is not a centimetre-grade absolute certification."
),
}
output = Path(args.output)
output.parent.mkdir(parents=True, exist_ok=True)
output.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8")
recommended = dict(open_result)
recommended["selection"] = {
"recommended_backend": "open3d_gicp",
"comparison_summary": str(output.name),
"backend_difference": summary["backend_difference"],
"warning": summary["important_limit"],
}
Path(args.recommended_output).write_text(
json.dumps(recommended, ensure_ascii=False, indent=2), encoding="utf-8"
)
print(json.dumps(summary, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
+201 -76
View File
@@ -1,5 +1,21 @@
#!/usr/bin/env python3
"""Interactive 3D comparison of raw, RTK, GICP and hand-eye-predicted motion."""
"""Interactive 3D comparison of raw, RTK, GICP and hand-eye-predicted motion.
Modes (keyboard), aligned with the LiDARIMU viewer:
1 raw source (no transform)
2 RTK prediction with X=I (B_pred = A)
3 LiDAR registration B (reference)
4 calibrated prediction B_pred = X^{-1} A X
5 optional body-left RPY test (only if --left-rpy-deg is non-zero)
N / ] next motion pair
P / [ previous motion pair
Q / Esc exit
Blue = target station i; orange = source station j after the selected transform.
"""
from __future__ import annotations
import argparse
import json
@@ -7,7 +23,10 @@ import numpy as np
from scipy.spatial.transform import Rotation
from rigorous_calibration import (
inverse_transform, load_stations, rotation_angle_deg, rpy_deg, transform_points,
inverse_transform,
load_stations,
rotation_angle_deg,
rpy_deg,
)
@@ -16,15 +35,29 @@ COLORS = {
"source": [1.00, 0.35, 0.05],
}
MODE_NAMES = (
"1 raw",
"2 RTK initial (X=I)",
"3 GICP B",
"4 calibrated X^-1 A X",
)
def cloud(o3d, points, color, voxel):
item = o3d.geometry.PointCloud()
item.points = o3d.utility.Vector3dVector(points)
if voxel > 0:
item = item.voxel_down_sample(voxel)
item.paint_uniform_color(color)
return item
def set_cloud_points(cloud_geom, points, color, voxel, o3d) -> None:
tmp = cloud(o3d, points, color, voxel)
cloud_geom.points = tmp.points
cloud_geom.colors = tmp.colors
def delta_components(reference, candidate):
"""Components of reference^-1*candidate, plus coordinate-invariant norms."""
delta = inverse_transform(reference) @ candidate
@@ -50,15 +83,75 @@ def print_delta(name, reference, candidate):
tx, ty, tz = item["translation_xyz_cm"]
roll, pitch, yaw = item["rotation_rpy_deg_xyz"]
print(
f"{name}: B^-1*motion translation xyz = "
f"[{tx:+.4f}, {ty:+.4f}, {tz:+.4f}] cm; "
f"rpy xyz = [{roll:+.4f}, {pitch:+.4f}, {yaw:+.4f}] deg; "
f"norm = {item['translation_norm_cm']:.4f} cm / "
f"{item['rotation_angle_deg']:.6f} deg"
f"{name}: B^-1*motion "
f"t_xyz=[{tx:+.3f}, {ty:+.3f}, {tz:+.3f}] cm "
f"rpy=[{roll:+.3f}, {pitch:+.3f}, {yaw:+.3f}] deg "
f"|t|={item['translation_norm_cm']:.3f} cm "
f"|R|={item['rotation_angle_deg']:.4f} deg"
)
return item
def transforms_for_pair(x, a_ij, b_gicp, left_rpy_deg):
b_calibrated = inverse_transform(x) @ a_ij @ x
transforms = {
MODE_NAMES[0]: np.eye(4),
MODE_NAMES[1]: a_ij.copy(),
MODE_NAMES[2]: b_gicp.copy(),
MODE_NAMES[3]: b_calibrated,
}
correction = np.asarray(left_rpy_deg, float)
test_name = None
if np.any(np.abs(correction) > 0.0):
x_test = body_left_rpy(x, correction)
test_name = f"5 test body-left RPY {correction.tolist()} deg"
transforms[test_name] = inverse_transform(x_test) @ a_ij @ x_test
return transforms, test_name
def resolve_pair(stations, pairs_a, pairs_b, pairs_meta, pair_index, x, left_rpy_deg):
a_ij = np.asarray(pairs_a[pair_index], float)
b_gicp = np.asarray(pairs_b[pair_index], float)
i, j = np.asarray(pairs_meta[pair_index, :2], int)
transforms, test_name = transforms_for_pair(x, a_ij, b_gicp, left_rpy_deg)
label = (
f"pair {pair_index + 1}/{len(pairs_a)} "
f"station {i} <- {j} "
f"rotB={rotation_angle_deg(b_gicp[:3, :3]):.2f} deg "
f"|tB|={float(np.linalg.norm(b_gicp[:3, 3])):.3f} m"
)
return i, j, a_ij, b_gicp, transforms, test_name, label
def print_pair_header(label, b_gicp, transforms, test_name, a_ij):
print("-" * 72)
print(label)
print("blue=target i | orange=source j")
mode_hint = "1-4"
if test_name is not None:
mode_hint = "1-5"
print(f"{mode_hint}: overlay mode | N/]: next pair | P/[: prev pair | Q/Esc: exit")
print(
"IMPORTANT: delta xyz/rpy are components of B^-1*(X^-1*A*X), expressed "
"in station-j LiDAR coordinates; screen-left/right depends on the 3D camera view."
)
baseline = print_delta("mode4 minus mode3", b_gicp, transforms[MODE_NAMES[3]])
roll, pitch, yaw = np.abs(baseline["rotation_rpy_deg_xyz"])
if max(roll, pitch) > max(0.10, 2.0 * yaw):
print("note: roll/pitch dominate yaw on this pair.")
tx, ty, tz = np.abs(baseline["translation_xyz_cm"])
if tz > max(tx, ty):
print("note: largest translation component is Z for this pair.")
body_up = np.array([0.0, 0.0, 1.0])
if np.linalg.norm(a_ij[:3, :3] @ body_up - body_up) < 1e-8:
print(
"observability: this A preserves the body Z axis, so body-left X.z "
"translation is unobservable from this pair; use ground/external height constraints."
)
if test_name is not None:
print_delta("mode5 minus mode3", b_gicp, transforms[test_name])
def main():
import open3d as o3d
@@ -66,10 +159,13 @@ def main():
parser.add_argument("--frames", required=True)
parser.add_argument("--pairs", required=True)
parser.add_argument("--extrinsic", required=True)
parser.add_argument("--pair-index", type=int, default=0)
parser.add_argument("--pair-index", type=int, default=0, help="Starting motion-pair index")
parser.add_argument("--voxel", type=float, default=0.10)
parser.add_argument(
"--left-rpy-deg", nargs=3, type=float, default=[0.0, 0.0, 0.0],
"--left-rpy-deg",
nargs=3,
type=float,
default=[0.0, 0.0, 0.0],
metavar=("ROLL", "PITCH", "YAW"),
help="optional body-frame left correction applied as DeltaR_body * X",
)
@@ -82,85 +178,114 @@ def main():
f"frames contain {len(stations)} stations but pair file records "
f"{len(data['station_times'])}"
)
if not 0 <= args.pair_index < len(data["A"]):
raise IndexError(
f"pair-index {args.pair_index} outside [0,{len(data['A']) - 1}]"
)
a_ij = np.asarray(data["A"][args.pair_index], float)
b_gicp = np.asarray(data["B"][args.pair_index], float)
i, j = np.asarray(data["meta"][args.pair_index, :2], int)
pairs_a = np.asarray(data["A"], float)
pairs_b = np.asarray(data["B"], float)
pairs_meta = np.asarray(data["meta"])
n_pairs = len(pairs_a)
if not 0 <= args.pair_index < n_pairs:
raise IndexError(f"pair-index {args.pair_index} outside [0,{n_pairs - 1}]")
with open(args.extrinsic, encoding="utf-8-sig") as stream:
result = json.load(stream)
x = np.asarray(result["matrix_4x4"], float)
b_calibrated = inverse_transform(x) @ a_ij @ x
left_rpy = np.asarray(args.left_rpy_deg, float)
transforms = {
"1 raw": np.eye(4),
"2 RTK initial (X0=I)": a_ij,
"3 GICP B": b_gicp,
"4 calibrated X^-1 A X": b_calibrated,
}
correction = np.asarray(args.left_rpy_deg, float)
if np.any(np.abs(correction) > 0.0):
x_test = body_left_rpy(x, correction)
transforms[
f"5 test body-left RPY {correction.tolist()} deg"
] = inverse_transform(x_test) @ a_ij @ x_test
target = stations[i][3]
source = stations[j][3]
print(f"pair_index={args.pair_index}, station {i} <- {j}")
print("blue = target station i; orange = source station j after selected transform")
print("keys: 1 raw | 2 RTK initial | 3 GICP | 4 calibrated | 5 test correction | Q/Esc exit")
print(
"IMPORTANT: delta xyz/rpy are components of B^-1*(X^-1*A*X), expressed "
"in station-j LiDAR coordinates; screen-left/right depends on the 3D camera view."
pair_index = int(args.pair_index)
i, j, a_ij, b_gicp, transforms, test_name, label = resolve_pair(
stations, pairs_a, pairs_b, pairs_meta, pair_index, x, left_rpy
)
baseline = print_delta("mode 4 minus mode 3", b_gicp, b_calibrated)
roll, pitch, yaw = np.abs(baseline["rotation_rpy_deg_xyz"])
if max(roll, pitch) > max(0.10, 2.0 * yaw):
print("diagnosis: roll/pitch components dominate yaw; do not prioritize yaw tuning for this pair.")
tx, ty, tz = np.abs(baseline["translation_xyz_cm"])
if tz > max(tx, ty):
print("diagnosis: the largest translation component is relative Z, not lateral XY.")
body_up = np.array([0.0, 0.0, 1.0])
if np.linalg.norm(a_ij[:3, :3] @ body_up - body_up) < 1e-8:
print(
"observability: this A preserves the body Z axis, so body-left X.z "
"translation is unobservable from this pair; use ground/external height constraints."
)
if "5 test body-left RPY " + str(correction.tolist()) + " deg" in transforms:
print_delta("mode 5 minus mode 3", b_gicp, list(transforms.values())[-1])
viewer = o3d.visualization.VisualizerWithKeyCallback()
viewer.create_window("Rigorous LiDAR registration inspection - 3D", 1400, 900)
target_cloud = cloud(o3d, target, COLORS["target"], args.voxel)
source_cloud = cloud(o3d, source, COLORS["source"], args.voxel)
viewer.create_window("RTKLiDAR registration inspection", 1400, 900)
target_cloud = cloud(o3d, stations[i][3], COLORS["target"], args.voxel)
source_cloud = cloud(o3d, stations[j][3], COLORS["source"], args.voxel)
viewer.add_geometry(target_cloud)
viewer.add_geometry(source_cloud)
axes = o3d.geometry.TriangleMesh.create_coordinate_frame(size=1.0)
viewer.add_geometry(axes)
current = np.eye(4)
def select(name):
def callback(vis):
nonlocal current
desired = transforms[name]
source_cloud.transform(desired @ inverse_transform(current))
current = desired
vis.update_geometry(source_cloud)
if name == "3 GICP B":
print(f"{name}: reference registration B; delta = 0")
else:
print_delta(name + " minus mode 3", b_gicp, desired)
return False
return callback
for key, name in zip((ord("1"), ord("2"), ord("3"), ord("4"), ord("5")), transforms):
viewer.register_key_callback(key, select(name))
viewer.add_geometry(o3d.geometry.TriangleMesh.create_coordinate_frame(size=1.0))
viewer.get_render_option().background_color = np.array([0.02, 0.02, 0.02])
viewer.get_render_option().point_size = 2.0
state = {
"pair_index": pair_index,
"mode_name": MODE_NAMES[3],
"current": np.eye(4),
"transforms": transforms,
"b_gicp": b_gicp,
"a_ij": a_ij,
"test_name": test_name,
}
def apply_mode(vis, mode_name: str, *, announce: bool = True) -> None:
desired = state["transforms"][mode_name]
source_cloud.transform(desired @ inverse_transform(state["current"]))
state["current"] = desired
state["mode_name"] = mode_name
vis.update_geometry(source_cloud)
if announce:
if mode_name == MODE_NAMES[2]:
print(f"{mode_name}: registration reference; delta = 0")
else:
print_delta(mode_name + " minus mode3", state["b_gicp"], desired)
def load_pair(vis, new_index: int) -> None:
new_index = int(new_index) % n_pairs
i, j, a_ij, b_gicp, transforms, test_name, label = resolve_pair(
stations, pairs_a, pairs_b, pairs_meta, new_index, x, left_rpy
)
state["pair_index"] = new_index
state["transforms"] = transforms
state["b_gicp"] = b_gicp
state["a_ij"] = a_ij
state["test_name"] = test_name
state["current"] = np.eye(4)
set_cloud_points(target_cloud, stations[i][3], COLORS["target"], args.voxel, o3d)
set_cloud_points(source_cloud, stations[j][3], COLORS["source"], args.voxel, o3d)
vis.update_geometry(target_cloud)
vis.update_geometry(source_cloud)
# Keep current mode if still available (mode 5 may vanish when correction is zero).
mode_name = state["mode_name"]
if mode_name not in transforms:
mode_name = MODE_NAMES[3]
print_pair_header(label, b_gicp, transforms, test_name, a_ij)
apply_mode(vis, mode_name, announce=True)
def make_mode_cb(mode_name: str):
def callback(vis):
if mode_name not in state["transforms"]:
print(f"{mode_name}: unavailable (pass non-zero --left-rpy-deg for mode 5)")
return False
apply_mode(vis, mode_name, announce=True)
return False
return callback
def next_pair(vis):
load_pair(vis, state["pair_index"] + 1)
return False
def prev_pair(vis):
load_pair(vis, state["pair_index"] - 1)
return False
print_pair_header(label, b_gicp, transforms, test_name, a_ij)
for key, name in zip((ord("1"), ord("2"), ord("3"), ord("4")), MODE_NAMES):
viewer.register_key_callback(key, make_mode_cb(name))
def mode5(vis):
name = state["test_name"]
if name is None or name not in state["transforms"]:
print("5: unavailable (pass non-zero --left-rpy-deg for mode 5)")
return False
apply_mode(vis, name, announce=True)
return False
viewer.register_key_callback(ord("5"), mode5)
for key in (ord("N"), ord("n"), ord("]")):
viewer.register_key_callback(key, next_pair)
for key in (ord("P"), ord("p"), ord("[")):
viewer.register_key_callback(key, prev_pair)
apply_mode(viewer, MODE_NAMES[3], announce=False)
viewer.run()
viewer.destroy_window()
+1 -1
View File
@@ -1,4 +1,4 @@
numpy>=1.26
scipy>=1.11
open3d>=0.18
small-gicp==1.0.1
small-gicp
-10
View File
@@ -1,10 +0,0 @@
# 历史两批结果
第二批 38 站的密集 RTK 数据用于求解;第一批 38 站因 RTK 约 10 秒一条,仅作辅助检查。最终部署值:
```text
translation_m = [1.297759692, -0.000067331, 0.720497835]
RPY_deg_xyz = [-0.785151146, 1.202660822, -0.835510053]
```
共识估计使用 39 个运动对,AX RMS 约 `0.07985 m / 0.96118°`。第一批辅助检查 22 对约 `0.06067 m / 1.00298°``final_extrinsic_deployment.json` 是唯一建议直接交给下游的部署 JSON;其余文件用于审计和复现。
@@ -1,39 +0,0 @@
time,nx,ny,nz,d,inliers,rms_m,frame_counter
1784279335.9505181,-0.05361540190749781,-0.028612066826359885,0.9981516609765378,0.9970438972044271,1413,0.014218123000381944,190
1784279429.4466305,-0.020242124527498212,-0.021859763099327908,0.999556105054566,0.9527601103226121,1403,0.012533257614588953,1125
1784279517.5427606,-0.025255763366701406,-0.019499239847777874,0.9994908334057517,0.9627800728846587,1377,0.013484126577744504,2006
1784279605.2394407,-0.01384716564355861,-0.022470612380854543,0.9996516031012351,0.9522772824995122,1451,0.012466425277627606,2883
1784279701.2360666,-0.01555857544224011,-0.0217686215576034,0.999641964828253,0.9563364194973247,1538,0.012300341594741273,3843
1784279817.2306573,-0.011087527873671243,-0.020924555502825015,0.9997195755323889,0.9578164603891901,1449,0.011989950419186364,5003
1784280797.6884267,-0.02596647147549029,-0.017803282998918958,0.999504269862602,0.9413409925183257,1070,0.01285544119037058,1175
1784280931.5831878,-0.015374876237213071,-0.006972433892068898,0.9998574890184657,0.9529924610673387,1231,0.012386720372038787,2514
1784281027.8795433,-0.018194511282557984,-0.007436316920549397,0.9998068118140855,0.9473391457135313,994,0.013690484345080097,3477
1784281119.375541,-0.031030924482729524,-0.005127874296086657,0.9995052709370525,0.9424388693848053,1050,0.012540091408749102,4392
1784281219.2718523,0.010887801537886658,0.029801594631508527,0.9994965336283518,1.0385701101629785,1314,0.012779819581803468,5391
1784281326.268232,-0.0096362623873578,0.012819044946118371,0.9998713989978268,0.9312224966475169,1290,0.014104946182144612,6461
1784281406.9641902,0.0003902542885943621,0.08032748256370953,0.9967684501661191,1.1034060039993756,1292,0.010758148594815282,7268
1784281474.3615055,-0.03105566487178763,0.07564589746567012,0.9966510140846617,1.0327196422481995,1815,0.011041719572931458,7942
1784281630.3553114,-0.08580403119897857,-0.004531705446499283,0.9963017273274953,0.9450482405407393,2217,0.013149265194066527,9502
1784281794.7491786,-0.0338374639041254,-0.01961931634157733,0.9992347614363835,0.9452222296717823,1260,0.01201022023689137,11146
1784281908.3446162,-0.021893307599930106,-0.01424087221046337,0.9996588821398128,0.9576567371739861,1494,0.01236191966907317,12282
1784282032.5400162,-0.0158344231842381,-0.012467864421327742,0.9997968910729789,0.9463865980851461,1636,0.010787373185908479,13524
1784282152.7353525,-0.018682494816813326,-0.008766064442460298,0.9997870375743079,0.9483840866729998,2240,0.01283360827008306,14726
1784282248.831164,-0.023968085422919984,0.0010098337757014242,0.9997122141481043,0.9229733966918622,2063,0.01198166200322995,15687
1784282392.325837,-0.03491854849921791,-0.007495342405346995,0.999362053918866,0.9445161886424389,2063,0.012487104595673213,17122
1784282521.1221898,-0.033279977268402205,-0.021263918239006526,0.9992198401223525,0.9241543379566599,1765,0.012696796680589562,18410
1784282614.418045,-0.02206065096269162,-0.02672916533917316,0.9993992592549654,0.9465522302118663,1961,0.013512740981540523,19343
1784282682.8141525,-0.02081301783029168,-0.01579943764964285,0.9996585397318182,0.9449041973558906,1859,0.012396974052191898,20027
1784282765.6112185,-0.004508281075411156,-0.014008591413946636,0.9998917115209738,0.950099620414229,2036,0.011293042628447103,20855
1784282827.209564,-0.01736207184562764,-0.0031377437424165654,0.999844344398384,0.9426007877012084,1748,0.010719044572619517,21471
1784282910.2059953,-0.021125469928628078,-0.014448226693694841,0.9996724279811374,0.9542841605935083,2168,0.013339960186967582,22301
1784282963.3037353,-0.006457463553009421,-0.02032265008628933,0.9997726196780605,0.963795839330157,2091,0.012167595789322305,22832
1784283066.8004546,-0.025064234285691236,-0.029087411217067063,0.9992625814411152,0.9318734965466619,1864,0.012746549021992943,23867
1784283133.8969557,-0.016700078063969132,-0.04176715532503475,0.9989877937836437,0.9264060770827569,1908,0.01109353135053672,24538
1784283183.2952216,-0.01653688679373809,-0.017415882722786116,0.9997115676054555,0.9575547004867051,2007,0.012534093025107626,25032
1784283245.892713,-0.025847980338270828,-0.0153447484376825,0.9995481082008092,0.9578045061243852,1561,0.012070094021521557,25658
1784283298.8906527,-0.021273542761096498,-0.005573033066936611,0.9997581595970231,0.9467349945273356,2032,0.012236068644419621,26188
1784283360.3892086,-0.039281329759085375,-0.01627781426001628,0.9990955959743164,0.9222774871766527,1808,0.013038192231074228,26803
1784283421.0858324,-0.03317220277295649,-0.00229990918740887,0.9994470047886079,0.920634362486867,1708,0.012670933440544421,27410
1784283483.1839027,-0.025661097999728377,-0.014377994766167732,0.9995672970420513,0.9594288765988624,2042,0.012797258981502222,28031
1784283558.880709,-0.02901405273913087,-0.038144166153403075,0.998850943500637,0.9554734954630025,1768,0.012270678438066111,28788
1784283636.4777331,-0.03570548009769577,-0.0034801149872434093,0.9993562965682804,0.9414430863966106,1632,0.012966623651022222,29564
1 time nx ny nz d inliers rms_m frame_counter
2 1784279335.9505181 -0.05361540190749781 -0.028612066826359885 0.9981516609765378 0.9970438972044271 1413 0.014218123000381944 190
3 1784279429.4466305 -0.020242124527498212 -0.021859763099327908 0.999556105054566 0.9527601103226121 1403 0.012533257614588953 1125
4 1784279517.5427606 -0.025255763366701406 -0.019499239847777874 0.9994908334057517 0.9627800728846587 1377 0.013484126577744504 2006
5 1784279605.2394407 -0.01384716564355861 -0.022470612380854543 0.9996516031012351 0.9522772824995122 1451 0.012466425277627606 2883
6 1784279701.2360666 -0.01555857544224011 -0.0217686215576034 0.999641964828253 0.9563364194973247 1538 0.012300341594741273 3843
7 1784279817.2306573 -0.011087527873671243 -0.020924555502825015 0.9997195755323889 0.9578164603891901 1449 0.011989950419186364 5003
8 1784280797.6884267 -0.02596647147549029 -0.017803282998918958 0.999504269862602 0.9413409925183257 1070 0.01285544119037058 1175
9 1784280931.5831878 -0.015374876237213071 -0.006972433892068898 0.9998574890184657 0.9529924610673387 1231 0.012386720372038787 2514
10 1784281027.8795433 -0.018194511282557984 -0.007436316920549397 0.9998068118140855 0.9473391457135313 994 0.013690484345080097 3477
11 1784281119.375541 -0.031030924482729524 -0.005127874296086657 0.9995052709370525 0.9424388693848053 1050 0.012540091408749102 4392
12 1784281219.2718523 0.010887801537886658 0.029801594631508527 0.9994965336283518 1.0385701101629785 1314 0.012779819581803468 5391
13 1784281326.268232 -0.0096362623873578 0.012819044946118371 0.9998713989978268 0.9312224966475169 1290 0.014104946182144612 6461
14 1784281406.9641902 0.0003902542885943621 0.08032748256370953 0.9967684501661191 1.1034060039993756 1292 0.010758148594815282 7268
15 1784281474.3615055 -0.03105566487178763 0.07564589746567012 0.9966510140846617 1.0327196422481995 1815 0.011041719572931458 7942
16 1784281630.3553114 -0.08580403119897857 -0.004531705446499283 0.9963017273274953 0.9450482405407393 2217 0.013149265194066527 9502
17 1784281794.7491786 -0.0338374639041254 -0.01961931634157733 0.9992347614363835 0.9452222296717823 1260 0.01201022023689137 11146
18 1784281908.3446162 -0.021893307599930106 -0.01424087221046337 0.9996588821398128 0.9576567371739861 1494 0.01236191966907317 12282
19 1784282032.5400162 -0.0158344231842381 -0.012467864421327742 0.9997968910729789 0.9463865980851461 1636 0.010787373185908479 13524
20 1784282152.7353525 -0.018682494816813326 -0.008766064442460298 0.9997870375743079 0.9483840866729998 2240 0.01283360827008306 14726
21 1784282248.831164 -0.023968085422919984 0.0010098337757014242 0.9997122141481043 0.9229733966918622 2063 0.01198166200322995 15687
22 1784282392.325837 -0.03491854849921791 -0.007495342405346995 0.999362053918866 0.9445161886424389 2063 0.012487104595673213 17122
23 1784282521.1221898 -0.033279977268402205 -0.021263918239006526 0.9992198401223525 0.9241543379566599 1765 0.012696796680589562 18410
24 1784282614.418045 -0.02206065096269162 -0.02672916533917316 0.9993992592549654 0.9465522302118663 1961 0.013512740981540523 19343
25 1784282682.8141525 -0.02081301783029168 -0.01579943764964285 0.9996585397318182 0.9449041973558906 1859 0.012396974052191898 20027
26 1784282765.6112185 -0.004508281075411156 -0.014008591413946636 0.9998917115209738 0.950099620414229 2036 0.011293042628447103 20855
27 1784282827.209564 -0.01736207184562764 -0.0031377437424165654 0.999844344398384 0.9426007877012084 1748 0.010719044572619517 21471
28 1784282910.2059953 -0.021125469928628078 -0.014448226693694841 0.9996724279811374 0.9542841605935083 2168 0.013339960186967582 22301
29 1784282963.3037353 -0.006457463553009421 -0.02032265008628933 0.9997726196780605 0.963795839330157 2091 0.012167595789322305 22832
30 1784283066.8004546 -0.025064234285691236 -0.029087411217067063 0.9992625814411152 0.9318734965466619 1864 0.012746549021992943 23867
31 1784283133.8969557 -0.016700078063969132 -0.04176715532503475 0.9989877937836437 0.9264060770827569 1908 0.01109353135053672 24538
32 1784283183.2952216 -0.01653688679373809 -0.017415882722786116 0.9997115676054555 0.9575547004867051 2007 0.012534093025107626 25032
33 1784283245.892713 -0.025847980338270828 -0.0153447484376825 0.9995481082008092 0.9578045061243852 1561 0.012070094021521557 25658
34 1784283298.8906527 -0.021273542761096498 -0.005573033066936611 0.9997581595970231 0.9467349945273356 2032 0.012236068644419621 26188
35 1784283360.3892086 -0.039281329759085375 -0.01627781426001628 0.9990955959743164 0.9222774871766527 1808 0.013038192231074228 26803
36 1784283421.0858324 -0.03317220277295649 -0.00229990918740887 0.9994470047886079 0.920634362486867 1708 0.012670933440544421 27410
37 1784283483.1839027 -0.025661097999728377 -0.014377994766167732 0.9995672970420513 0.9594288765988624 2042 0.012797258981502222 28031
38 1784283558.880709 -0.02901405273913087 -0.038144166153403075 0.998850943500637 0.9554734954630025 1768 0.012270678438066111 28788
39 1784283636.4777331 -0.03570548009769577 -0.0034801149872434093 0.9993562965682804 0.9414430863966106 1632 0.012966623651022222 29564
@@ -1,79 +0,0 @@
{
"recommended_backend": "open3d_gicp",
"selection_reason": "The two X estimates agree closely; Open3D has lower second-batch AX residual, better B loop closure, and lower first-batch auxiliary residual.",
"coordinate_convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"measured_extrinsic_used_as_initial": false,
"second_batch_role": "estimation (dense RTK)",
"first_batch_role": "auxiliary check only (sparse RTK)",
"backend_difference": {
"translation_m": 0.00181035475331947,
"rotation_deg": 0.06312194455789993
},
"open3d_gicp": {
"translation_m": [
1.2978831677200011,
-0.0030997734098957433,
0.7217892226151688
],
"rotation_rpy_deg_xyz": [
-0.7572070226288585,
1.1460424368859559,
-0.8797812288284186
],
"estimation_pairs": 66,
"estimation_translation_rms_m": 0.10017183831403174,
"estimation_rotation_rms_deg": 1.011529772202344,
"bootstrap_std": [
0.0020832827985508263,
0.002063603632322515,
0.001427746471392659,
0.07576290622767821,
0.06304875844333606,
0.07843172452171372
],
"initial_B_loop_closure": {
"count": 106,
"translation_rms_m": 0.020350848901853437,
"translation_p95_m": 0.04464367942375473,
"rotation_rms_deg": 0.2674546762953808,
"rotation_p95_deg": 0.5761692075739222
},
"batch1_auxiliary_pairs": 41,
"batch1_auxiliary_translation_rms_m": 0.06627076507951374,
"batch1_auxiliary_rotation_rms_deg": 1.0783402768758907
},
"small_gicp": {
"translation_m": [
1.2996301155160686,
-0.0035647011612625953,
0.7218861757826791
],
"rotation_rpy_deg_xyz": [
-0.7871563544979889,
1.1414557494228486,
-0.9357571721886107
],
"estimation_pairs": 80,
"estimation_translation_rms_m": 0.11870623426762615,
"estimation_rotation_rms_deg": 1.135091439337232,
"bootstrap_std": [
0.0017068433472663032,
0.0019214288447692426,
0.0013180801706094514,
0.06849719260762097,
0.05792635838163369,
0.062093058432709465
],
"initial_B_loop_closure": {
"count": 252,
"translation_rms_m": 0.06356464456110195,
"translation_p95_m": 0.12253135158224471,
"rotation_rms_deg": 0.7286536542725655,
"rotation_p95_deg": 1.4911215410143956
},
"batch1_auxiliary_pairs": 36,
"batch1_auxiliary_translation_rms_m": 0.07402020402512643,
"batch1_auxiliary_rotation_rms_deg": 1.1492603033421918
},
"important_limit": "Backend agreement is strong, but AX rotation RMS remains about one degree. This is not a centimetre-grade absolute certification."
}
@@ -1,328 +0,0 @@
{
"selection_is_X_independent": true,
"B_source": "Open3D; small_gicp is used only as an agreement gate",
"max_translation_m": 0.05,
"max_rotation_deg": 0.5,
"input_open3d_pairs": 41,
"accepted_pairs": 22,
"pairs": [
{
"i": 0,
"j": 1,
"open3d_small_translation_m": 0.04084575096493436,
"open3d_small_rotation_deg": 0.8091245488258404,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 0,
"j": 3,
"open3d_small_translation_m": 0.007440836728606337,
"open3d_small_rotation_deg": 0.14377171116926005,
"accepted": true,
"reason": ""
},
{
"i": 1,
"j": 2,
"open3d_small_translation_m": 0.012040931709501762,
"open3d_small_rotation_deg": 0.09198739647809913,
"accepted": true,
"reason": ""
},
{
"i": 2,
"j": 3,
"open3d_small_translation_m": 0.020167802344555865,
"open3d_small_rotation_deg": 0.10088741778579047,
"accepted": true,
"reason": ""
},
{
"i": 2,
"j": 5,
"open3d_small_translation_m": 0.05126263142175136,
"open3d_small_rotation_deg": 1.129023564517054,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 3,
"j": 4,
"open3d_small_translation_m": 0.008340648580577372,
"open3d_small_rotation_deg": 0.48893802037297335,
"accepted": true,
"reason": ""
},
{
"i": 3,
"j": 5,
"open3d_small_translation_m": 0.03255543023061846,
"open3d_small_rotation_deg": 0.04924738744939371,
"accepted": true,
"reason": ""
},
{
"i": 4,
"j": 5,
"open3d_small_translation_m": 0.01717130804559543,
"open3d_small_rotation_deg": 0.18948013657322885,
"accepted": true,
"reason": ""
},
{
"i": 5,
"j": 6,
"open3d_small_translation_m": 0.00790599819083906,
"open3d_small_rotation_deg": 0.1334214273599749,
"accepted": true,
"reason": ""
},
{
"i": 6,
"j": 7,
"open3d_small_translation_m": 0.02785621409489221,
"open3d_small_rotation_deg": 0.4203987393515618,
"accepted": true,
"reason": ""
},
{
"i": 6,
"j": 9,
"open3d_small_translation_m": 0.012940492880990915,
"open3d_small_rotation_deg": 0.16985420735800236,
"accepted": true,
"reason": ""
},
{
"i": 11,
"j": 12,
"open3d_small_translation_m": 0.016762449071916253,
"open3d_small_rotation_deg": 0.43689758943546,
"accepted": true,
"reason": ""
},
{
"i": 16,
"j": 17,
"open3d_small_translation_m": 0.038512603544217365,
"open3d_small_rotation_deg": 1.3958733432618273,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 16,
"j": 18,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 17,
"j": 18,
"open3d_small_translation_m": 0.04386909360158492,
"open3d_small_rotation_deg": 0.49818041971185584,
"accepted": true,
"reason": ""
},
{
"i": 18,
"j": 19,
"open3d_small_translation_m": 0.02904786593904068,
"open3d_small_rotation_deg": 0.6456312776257432,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 18,
"j": 20,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 18,
"j": 21,
"open3d_small_translation_m": 0.06690824468510452,
"open3d_small_rotation_deg": 0.5787554058174607,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 19,
"j": 20,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 20,
"j": 21,
"open3d_small_translation_m": 0.02975935281075696,
"open3d_small_rotation_deg": 0.36957453812106744,
"accepted": true,
"reason": ""
},
{
"i": 20,
"j": 22,
"open3d_small_translation_m": 0.01187767303223306,
"open3d_small_rotation_deg": 0.11119975547992203,
"accepted": true,
"reason": ""
},
{
"i": 20,
"j": 23,
"open3d_small_translation_m": 0.02085962034691778,
"open3d_small_rotation_deg": 0.14906239098917923,
"accepted": true,
"reason": ""
},
{
"i": 21,
"j": 22,
"open3d_small_translation_m": 0.07344207054217174,
"open3d_small_rotation_deg": 0.4720715999477229,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 21,
"j": 24,
"open3d_small_translation_m": 0.003446026826977358,
"open3d_small_rotation_deg": 0.06718280580638468,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 23,
"open3d_small_translation_m": 0.0038695246290457396,
"open3d_small_rotation_deg": 0.19583405427516354,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 24,
"open3d_small_translation_m": 0.008952357752471345,
"open3d_small_rotation_deg": 0.2129847177606736,
"accepted": true,
"reason": ""
},
{
"i": 23,
"j": 24,
"open3d_small_translation_m": 0.0569515146956438,
"open3d_small_rotation_deg": 0.6801187045572974,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 24,
"j": 25,
"open3d_small_translation_m": 0.025823784600755004,
"open3d_small_rotation_deg": 0.7451009005368011,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 24,
"j": 26,
"open3d_small_translation_m": 0.005434928313511662,
"open3d_small_rotation_deg": 0.38110259637848837,
"accepted": true,
"reason": ""
},
{
"i": 25,
"j": 26,
"open3d_small_translation_m": 0.032394639661318274,
"open3d_small_rotation_deg": 0.6672581993183133,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 27,
"j": 28,
"open3d_small_translation_m": 0.03319908369315011,
"open3d_small_rotation_deg": 0.3374096789165904,
"accepted": true,
"reason": ""
},
{
"i": 27,
"j": 29,
"open3d_small_translation_m": 0.064122224643194,
"open3d_small_rotation_deg": 0.3369642063017735,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 28,
"j": 29,
"open3d_small_translation_m": 0.04054098962864038,
"open3d_small_rotation_deg": 0.6304817774750828,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 30,
"j": 31,
"open3d_small_translation_m": 0.06429006702815496,
"open3d_small_rotation_deg": 0.6364945448655926,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 30,
"j": 33,
"open3d_small_translation_m": 0.02846544971259277,
"open3d_small_rotation_deg": 0.5396634629075986,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 31,
"j": 33,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 33,
"j": 34,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 33,
"j": 35,
"open3d_small_translation_m": 0.012003505646551895,
"open3d_small_rotation_deg": 0.2900810668840737,
"accepted": true,
"reason": ""
},
{
"i": 34,
"j": 35,
"open3d_small_translation_m": 0.034420937161804874,
"open3d_small_rotation_deg": 0.3929515224293036,
"accepted": true,
"reason": ""
},
{
"i": 34,
"j": 37,
"open3d_small_translation_m": 0.017073125816226477,
"open3d_small_rotation_deg": 0.5761893617071098,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 35,
"j": 36,
"open3d_small_translation_m": 0.009761763696948316,
"open3d_small_rotation_deg": 0.47958651768297733,
"accepted": true,
"reason": ""
}
]
}
@@ -1,530 +0,0 @@
{
"selection_is_X_independent": true,
"B_source": "Open3D; small_gicp is used only as an agreement gate",
"max_translation_m": 0.05,
"max_rotation_deg": 0.5,
"input_open3d_pairs": 66,
"accepted_pairs": 39,
"pairs": [
{
"i": 0,
"j": 1,
"open3d_small_translation_m": 0.014112857127352833,
"open3d_small_rotation_deg": 0.9322795088817045,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 0,
"j": 2,
"open3d_small_translation_m": 0.04048559177128157,
"open3d_small_rotation_deg": 0.13828514886662066,
"accepted": true,
"reason": ""
},
{
"i": 0,
"j": 3,
"open3d_small_translation_m": 0.043319730028129194,
"open3d_small_rotation_deg": 0.18606836567929377,
"accepted": true,
"reason": ""
},
{
"i": 1,
"j": 2,
"open3d_small_translation_m": 0.027224756971621137,
"open3d_small_rotation_deg": 0.11107273153325639,
"accepted": true,
"reason": ""
},
{
"i": 1,
"j": 3,
"open3d_small_translation_m": 0.04006763116408136,
"open3d_small_rotation_deg": 0.3402294071905194,
"accepted": true,
"reason": ""
},
{
"i": 1,
"j": 4,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 2,
"j": 3,
"open3d_small_translation_m": 0.01124849125851201,
"open3d_small_rotation_deg": 0.08934477097506471,
"accepted": true,
"reason": ""
},
{
"i": 2,
"j": 4,
"open3d_small_translation_m": 0.03581057712566857,
"open3d_small_rotation_deg": 0.47251701196497253,
"accepted": true,
"reason": ""
},
{
"i": 2,
"j": 5,
"open3d_small_translation_m": 0.08528072944363045,
"open3d_small_rotation_deg": 1.2141759174965312,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 3,
"j": 4,
"open3d_small_translation_m": 0.0075101104952604815,
"open3d_small_rotation_deg": 0.18179062115813846,
"accepted": true,
"reason": ""
},
{
"i": 3,
"j": 5,
"open3d_small_translation_m": 0.024397939276152487,
"open3d_small_rotation_deg": 0.3105330721864524,
"accepted": true,
"reason": ""
},
{
"i": 4,
"j": 5,
"open3d_small_translation_m": 0.020705651033865183,
"open3d_small_rotation_deg": 0.1233418901694322,
"accepted": true,
"reason": ""
},
{
"i": 4,
"j": 7,
"open3d_small_translation_m": 0.020920545183303704,
"open3d_small_rotation_deg": 0.7722300773846386,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 5,
"j": 7,
"open3d_small_translation_m": 0.04282503694424416,
"open3d_small_rotation_deg": 0.5633825712787606,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 5,
"j": 8,
"open3d_small_translation_m": 0.11029404203405435,
"open3d_small_rotation_deg": 0.5325792081092059,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 6,
"j": 7,
"open3d_small_translation_m": 0.03271497478931517,
"open3d_small_rotation_deg": 0.31987628752295666,
"accepted": true,
"reason": ""
},
{
"i": 6,
"j": 8,
"open3d_small_translation_m": 0.07284151111110872,
"open3d_small_rotation_deg": 1.4450826858938794,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 7,
"j": 8,
"open3d_small_translation_m": 0.09279358525836445,
"open3d_small_rotation_deg": 0.19167684909579139,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 7,
"j": 9,
"open3d_small_translation_m": 0.012050834357664957,
"open3d_small_rotation_deg": 0.4077277697131033,
"accepted": true,
"reason": ""
},
{
"i": 7,
"j": 10,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 8,
"j": 9,
"open3d_small_translation_m": 0.026603663511016604,
"open3d_small_rotation_deg": 0.3213901608387603,
"accepted": true,
"reason": ""
},
{
"i": 8,
"j": 10,
"open3d_small_translation_m": 0.029568992143279488,
"open3d_small_rotation_deg": 0.42606536158015423,
"accepted": true,
"reason": ""
},
{
"i": 9,
"j": 10,
"open3d_small_translation_m": 0.03641531538812563,
"open3d_small_rotation_deg": 0.20836252860025806,
"accepted": true,
"reason": ""
},
{
"i": 10,
"j": 11,
"open3d_small_translation_m": 0.013655861114026318,
"open3d_small_rotation_deg": 0.7320732922437044,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 11,
"j": 12,
"open3d_small_translation_m": 0.015611342863539268,
"open3d_small_rotation_deg": 0.5694244139356097,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 11,
"j": 13,
"open3d_small_translation_m": 0.08667727215031616,
"open3d_small_rotation_deg": 0.8576430944387251,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 11,
"j": 14,
"open3d_small_translation_m": 0.013212394743280101,
"open3d_small_rotation_deg": 0.5395038717718552,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 12,
"j": 13,
"open3d_small_translation_m": 0.05511305334837847,
"open3d_small_rotation_deg": 1.2808633685978204,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 12,
"j": 14,
"open3d_small_translation_m": 0.01673887890907281,
"open3d_small_rotation_deg": 0.4590349395304042,
"accepted": true,
"reason": ""
},
{
"i": 12,
"j": 15,
"open3d_small_translation_m": 0.09777961576971127,
"open3d_small_rotation_deg": 0.6299487235133375,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 13,
"j": 14,
"open3d_small_translation_m": 0.03968493416626958,
"open3d_small_rotation_deg": 1.39604879980664,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 13,
"j": 15,
"open3d_small_translation_m": 0.04654254454408651,
"open3d_small_rotation_deg": 0.19549226846654652,
"accepted": true,
"reason": ""
},
{
"i": 13,
"j": 16,
"open3d_small_translation_m": 0.016539968897939728,
"open3d_small_rotation_deg": 0.5036637170277819,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 14,
"j": 15,
"open3d_small_translation_m": 0.08740655127874042,
"open3d_small_rotation_deg": 0.9024809168777701,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 14,
"j": 16,
"open3d_small_translation_m": 0.007961162148769676,
"open3d_small_rotation_deg": 0.3128279997254769,
"accepted": true,
"reason": ""
},
{
"i": 15,
"j": 16,
"open3d_small_translation_m": 0.05660525597010978,
"open3d_small_rotation_deg": 0.3498659583909866,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 17,
"j": 18,
"open3d_small_translation_m": 0.012632921988089662,
"open3d_small_rotation_deg": 0.23041873752448738,
"accepted": true,
"reason": ""
},
{
"i": 18,
"j": 19,
"open3d_small_translation_m": 0.02031854418240709,
"open3d_small_rotation_deg": 0.10632729898220249,
"accepted": true,
"reason": ""
},
{
"i": 20,
"j": 21,
"open3d_small_translation_m": 0.013503153993963056,
"open3d_small_rotation_deg": 0.17004359316703027,
"accepted": true,
"reason": ""
},
{
"i": 21,
"j": 22,
"open3d_small_translation_m": 0.06340422221619042,
"open3d_small_rotation_deg": 0.5794375484544898,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 22,
"j": 23,
"open3d_small_translation_m": 0.0058706045875484576,
"open3d_small_rotation_deg": 0.09261171568609482,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 24,
"open3d_small_translation_m": 0.035452027277204735,
"open3d_small_rotation_deg": 0.344137196022356,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 25,
"open3d_small_translation_m": 0.016505964730377052,
"open3d_small_rotation_deg": 0.2843410430726553,
"accepted": true,
"reason": ""
},
{
"i": 23,
"j": 24,
"open3d_small_translation_m": 0.00794618091675699,
"open3d_small_rotation_deg": 0.3391363354920984,
"accepted": true,
"reason": ""
},
{
"i": 24,
"j": 25,
"open3d_small_translation_m": 0.005640140207369355,
"open3d_small_rotation_deg": 0.40156498371331323,
"accepted": true,
"reason": ""
},
{
"i": 24,
"j": 26,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 24,
"j": 27,
"open3d_small_translation_m": 0.0748996904677792,
"open3d_small_rotation_deg": 0.13727707305657308,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 25,
"j": 26,
"open3d_small_translation_m": 0.03081891880529517,
"open3d_small_rotation_deg": 0.36020242073965086,
"accepted": true,
"reason": ""
},
{
"i": 25,
"j": 27,
"open3d_small_translation_m": 0.021168896509812032,
"open3d_small_rotation_deg": 0.14597845760153952,
"accepted": true,
"reason": ""
},
{
"i": 26,
"j": 27,
"open3d_small_translation_m": 0.01536711683556009,
"open3d_small_rotation_deg": 0.4140655889201126,
"accepted": true,
"reason": ""
},
{
"i": 26,
"j": 28,
"open3d_small_translation_m": 0.00692948322087535,
"open3d_small_rotation_deg": 0.2580451959432504,
"accepted": true,
"reason": ""
},
{
"i": 26,
"j": 29,
"open3d_small_translation_m": 0.004434517854459698,
"open3d_small_rotation_deg": 0.3814089109711929,
"accepted": true,
"reason": ""
},
{
"i": 27,
"j": 28,
"open3d_small_translation_m": 0.050137370980335605,
"open3d_small_rotation_deg": 0.3289989587699738,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 27,
"j": 29,
"open3d_small_translation_m": 0.05401741972476896,
"open3d_small_rotation_deg": 0.5027869137341908,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 27,
"j": 30,
"open3d_small_translation_m": 0.014426259697867812,
"open3d_small_rotation_deg": 0.10299393098756303,
"accepted": true,
"reason": ""
},
{
"i": 29,
"j": 30,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 30,
"j": 31,
"open3d_small_translation_m": 0.017329917379458395,
"open3d_small_rotation_deg": 0.22398877826738903,
"accepted": true,
"reason": ""
},
{
"i": 30,
"j": 32,
"open3d_small_translation_m": 0.014715435206511102,
"open3d_small_rotation_deg": 0.11629038752134123,
"accepted": true,
"reason": ""
},
{
"i": 31,
"j": 32,
"open3d_small_translation_m": 0.015582546369975235,
"open3d_small_rotation_deg": 0.5827409440555306,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 32,
"j": 33,
"open3d_small_translation_m": 0.008274791505352475,
"open3d_small_rotation_deg": 0.16710510386507704,
"accepted": true,
"reason": ""
},
{
"i": 32,
"j": 34,
"open3d_small_translation_m": 0.009965535682972116,
"open3d_small_rotation_deg": 0.25506349516996085,
"accepted": true,
"reason": ""
},
{
"i": 32,
"j": 35,
"open3d_small_translation_m": 0.013983188091914709,
"open3d_small_rotation_deg": 0.4717278366783201,
"accepted": true,
"reason": ""
},
{
"i": 33,
"j": 34,
"open3d_small_translation_m": 0.01464477642231769,
"open3d_small_rotation_deg": 0.23054883080903335,
"accepted": true,
"reason": ""
},
{
"i": 33,
"j": 35,
"open3d_small_translation_m": 0.02477884255472743,
"open3d_small_rotation_deg": 0.21737771891740004,
"accepted": true,
"reason": ""
},
{
"i": 34,
"j": 35,
"open3d_small_translation_m": 0.05732289121946012,
"open3d_small_rotation_deg": 0.16151350666473244,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 35,
"j": 36,
"open3d_small_translation_m": 0.01157700515581757,
"open3d_small_rotation_deg": 0.49328772540040833,
"accepted": true,
"reason": ""
}
]
}
@@ -1,179 +0,0 @@
{
"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": 22,
"translation_m": {
"rms": 0.06067269746244947,
"median": 0.042680679229823305,
"p90": 0.090942947259565,
"p95": 0.10135707648063859,
"max": 0.14643003383767556
},
"rotation_deg": {
"rms": 1.002984942285067,
"median": 0.707406938077333,
"p90": 1.573355332434981,
"p95": 1.7757584051966382,
"max": 1.8710372365314285
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.048343805321803004,
"rotation_deg": 0.6668376546913104,
"i": 0,
"j": 3
},
{
"pair_index": 1,
"translation_m": 0.0423483041362295,
"rotation_deg": 1.7859688557628564,
"i": 1,
"j": 2
},
{
"pair_index": 2,
"translation_m": 0.02300615185240312,
"rotation_deg": 1.8710372365314285,
"i": 2,
"j": 3
},
{
"pair_index": 3,
"translation_m": 0.09155252198785023,
"rotation_deg": 0.6733340854508988,
"i": 3,
"j": 4
},
{
"pair_index": 4,
"translation_m": 0.03158045213093479,
"rotation_deg": 0.2310116592109763,
"i": 3,
"j": 5
},
{
"pair_index": 5,
"translation_m": 0.07825296974670955,
"rotation_deg": 0.7403656481818025,
"i": 4,
"j": 5
},
{
"pair_index": 6,
"translation_m": 0.03623050776977002,
"rotation_deg": 0.29976499205053747,
"i": 5,
"j": 6
},
{
"pair_index": 7,
"translation_m": 0.017322045818086197,
"rotation_deg": 1.0428116209013618,
"i": 6,
"j": 7
},
{
"pair_index": 8,
"translation_m": 0.037890995883582496,
"rotation_deg": 0.5003524050137443,
"i": 6,
"j": 9
},
{
"pair_index": 9,
"translation_m": 0.055811972906268326,
"rotation_deg": 0.9711899476368479,
"i": 11,
"j": 12
},
{
"pair_index": 10,
"translation_m": 0.10187310566446957,
"rotation_deg": 0.48973592009907335,
"i": 17,
"j": 18
},
{
"pair_index": 11,
"translation_m": 0.0304808468879537,
"rotation_deg": 1.3239848803794854,
"i": 20,
"j": 21
},
{
"pair_index": 12,
"translation_m": 0.04462456608967399,
"rotation_deg": 0.2812977599385038,
"i": 20,
"j": 22
},
{
"pair_index": 13,
"translation_m": 0.03611683783839059,
"rotation_deg": 0.7096084761069892,
"i": 20,
"j": 23
},
{
"pair_index": 14,
"translation_m": 0.07267248449673575,
"rotation_deg": 0.6614151319251916,
"i": 21,
"j": 24
},
{
"pair_index": 15,
"translation_m": 0.04417889214251473,
"rotation_deg": 0.537164719319421,
"i": 22,
"j": 23
},
{
"pair_index": 16,
"translation_m": 0.020100630082582033,
"rotation_deg": 1.4866116021028042,
"i": 22,
"j": 24
},
{
"pair_index": 17,
"translation_m": 0.04301305432341711,
"rotation_deg": 0.7052054000476768,
"i": 24,
"j": 26
},
{
"pair_index": 18,
"translation_m": 0.0344886352240195,
"rotation_deg": 1.4977147244033493,
"i": 27,
"j": 28
},
{
"pair_index": 19,
"translation_m": 0.14643003383767556,
"rotation_deg": 0.527768319167481,
"i": 33,
"j": 35
},
{
"pair_index": 20,
"translation_m": 0.08545677470499786,
"rotation_deg": 0.7336105280022196,
"i": 34,
"j": 35
},
{
"pair_index": 21,
"translation_m": 0.025212589301108413,
"rotation_deg": 1.5817598444384953,
"i": 35,
"j": 36
}
]
}
}
@@ -1,399 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2977596922478565,
-6.733076264476427e-05,
0.7204978345266887
],
"rotation_rpy_deg_xyz": [
-0.7851511464150316,
1.2026608220810453,
-0.835510052785851
],
"quaternion_xyzw": [
-0.0067746045444860015,
0.010544431385358818,
-0.0072186568687935965,
0.9998953998759249
],
"matrix_4x4": [
[
0.9996734119195402,
0.014292934887214408,
0.021184463964312037,
1.2977596922478565
],
[
-0.01457867229834346,
0.9998039914525529,
0.013395558575925315,
-6.733076264476427e-05
],
[
-0.020988849781798404,
-0.013700025104115046,
0.9996858394000506,
0.7204978345266887
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 39,
"residuals": {
"pairs": 39,
"translation_m": {
"rms": 0.07984780651249465,
"median": 0.05392926910429046,
"p90": 0.11822807898946641,
"p95": 0.14420733112402187,
"max": 0.2330103519747209
},
"rotation_deg": {
"rms": 0.961176171904301,
"median": 0.8002960897011372,
"p90": 1.422624767604584,
"p95": 1.4793113785217964,
"max": 1.7237415928660533
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.1353760421849012,
"rotation_deg": 0.5166365681634405
},
{
"pair_index": 1,
"translation_m": 0.11487543918383647,
"rotation_deg": 0.5717221816616095
},
{
"pair_index": 2,
"translation_m": 0.06210064976174764,
"rotation_deg": 0.4402983357286552
},
{
"pair_index": 3,
"translation_m": 0.054355548674489614,
"rotation_deg": 0.5821611725015269
},
{
"pair_index": 4,
"translation_m": 0.02391657882546618,
"rotation_deg": 0.32738975448002894
},
{
"pair_index": 5,
"translation_m": 0.07775220171630512,
"rotation_deg": 0.8706732532310371
},
{
"pair_index": 6,
"translation_m": 0.06265840922697155,
"rotation_deg": 0.8002960897011372
},
{
"pair_index": 7,
"translation_m": 0.09282561040685418,
"rotation_deg": 1.0484294819479303
},
{
"pair_index": 8,
"translation_m": 0.034474807960716856,
"rotation_deg": 0.40941928556312257
},
{
"pair_index": 9,
"translation_m": 0.13163863821198593,
"rotation_deg": 1.1065820279922887
},
{
"pair_index": 10,
"translation_m": 0.0018609877360485794,
"rotation_deg": 0.6081452332544832
},
{
"pair_index": 11,
"translation_m": 0.06488404028756532,
"rotation_deg": 0.05192051717362457
},
{
"pair_index": 12,
"translation_m": 0.1147488321233841,
"rotation_deg": 0.9937108406424444
},
{
"pair_index": 13,
"translation_m": 0.05392926910429046,
"rotation_deg": 0.9700546737541248
},
{
"pair_index": 14,
"translation_m": 0.02302185790244543,
"rotation_deg": 1.6149869587730064
},
{
"pair_index": 15,
"translation_m": 0.2330103519747209,
"rotation_deg": 0.5939965715201481
},
{
"pair_index": 16,
"translation_m": 0.2236889315761065,
"rotation_deg": 1.1151964340680336
},
{
"pair_index": 17,
"translation_m": 0.04090994021171706,
"rotation_deg": 0.7785618518380144
},
{
"pair_index": 18,
"translation_m": 0.054652520003134704,
"rotation_deg": 1.124375763416717
},
{
"pair_index": 19,
"translation_m": 0.04547500551567543,
"rotation_deg": 0.6556954445211121
},
{
"pair_index": 20,
"translation_m": 0.02484690940972022,
"rotation_deg": 1.7237415928660533
},
{
"pair_index": 21,
"translation_m": 0.056832852413462566,
"rotation_deg": 0.5831473606925555
},
{
"pair_index": 22,
"translation_m": 0.03998842216950218,
"rotation_deg": 1.124691549503354
},
{
"pair_index": 23,
"translation_m": 0.052224143195848054,
"rotation_deg": 1.1184574012171749
},
{
"pair_index": 24,
"translation_m": 0.06305629062353875,
"rotation_deg": 0.5252019728243343
},
{
"pair_index": 25,
"translation_m": 0.0552093328283033,
"rotation_deg": 0.08705258513790126
},
{
"pair_index": 26,
"translation_m": 0.08502281683725502,
"rotation_deg": 0.6459827373704314
},
{
"pair_index": 27,
"translation_m": 0.03727269737723399,
"rotation_deg": 0.7631660358041192
},
{
"pair_index": 28,
"translation_m": 0.04543722819346571,
"rotation_deg": 1.4218618784137362
},
{
"pair_index": 29,
"translation_m": 0.02559982081388642,
"rotation_deg": 1.388947601285772
},
{
"pair_index": 30,
"translation_m": 0.01827234061769129,
"rotation_deg": 1.206866980510853
},
{
"pair_index": 31,
"translation_m": 0.06863732394647468,
"rotation_deg": 1.4642363140494394
},
{
"pair_index": 32,
"translation_m": 0.04770629220585725,
"rotation_deg": 0.6244903967618446
},
{
"pair_index": 33,
"translation_m": 0.027074935362624366,
"rotation_deg": 1.3688430767407767
},
{
"pair_index": 34,
"translation_m": 0.03301156138156032,
"rotation_deg": 1.4256763243679755
},
{
"pair_index": 35,
"translation_m": 0.054240160043693975,
"rotation_deg": 0.6486412679040612
},
{
"pair_index": 36,
"translation_m": 0.021992835671895014,
"rotation_deg": 0.23769553016909395
},
{
"pair_index": 37,
"translation_m": 0.031890552923517286,
"rotation_deg": 1.0832171246083164
},
{
"pair_index": 38,
"translation_m": 0.025286131886091672,
"rotation_deg": 1.2215923174512224
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.0061384486036208784,
0.006616582082990767,
0.004372364137893693
],
"rotation_deg": [
0.06746979098802125,
0.05919345389075773,
0.16157711056486687
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.965138763120991,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 152.7941369486616,
"success": true,
"translation_m": 5.01999140559543e-10,
"rotation_deg": 7.693408441139155e-09
},
{
"cost": 152.79413694866156,
"success": true,
"translation_m": 1.7788160768171148e-10,
"rotation_deg": 3.2213546311649044e-09
},
{
"cost": 152.7941369486616,
"success": true,
"translation_m": 2.04052729806573e-10,
"rotation_deg": 5.128825141169912e-09
},
{
"cost": 152.79413694866287,
"success": true,
"translation_m": 3.6987521890593636e-09,
"rotation_deg": 1.471926437983498e-07
},
{
"cost": 152.79413694866153,
"success": true,
"translation_m": 3.0367491381779985e-10,
"rotation_deg": 3.27791256123688e-09
},
{
"cost": 152.79413694866173,
"success": true,
"translation_m": 6.928454212106221e-10,
"rotation_deg": 2.8875952395155353e-08
},
{
"cost": 152.79413694866153,
"success": true,
"translation_m": 1.9628898247072475e-10,
"rotation_deg": 3.769277991759282e-09
},
{
"cost": 152.79413694866167,
"success": true,
"translation_m": 1.8108640246434077e-09,
"rotation_deg": 5.6964069970580913e-08
},
{
"cost": 152.79413694866145,
"success": true,
"translation_m": 0.0,
"rotation_deg": 0.0
},
{
"cost": 152.7941369486631,
"success": true,
"translation_m": 3.8878373558477815e-09,
"rotation_deg": 1.567977862312646e-07
},
{
"cost": 152.79413694866162,
"success": true,
"translation_m": 1.928688225276107e-09,
"rotation_deg": 6.007537452298471e-08
},
{
"cost": 152.79413694866165,
"success": true,
"translation_m": 6.380398519737792e-10,
"rotation_deg": 2.6596239917974983e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.003223574650236103,
0.003334649335095665,
0.0016858977028131694,
0.0980155224808408,
0.07461769310738842,
0.11886090357304822
],
"p025": [
1.2916920074190312,
-0.005413227092587022,
0.7171569502776788,
-0.9695959273616203,
1.066246526462818,
-1.100751980508544
],
"p975": [
1.3034038047298853,
0.007138524793626496,
0.7235834879340349,
-0.6076030002143074,
1.3517461178267727,
-0.6468477685453492
]
}
}
@@ -1,19 +0,0 @@
label,roll_correction_deg,pitch_correction_deg,yaw_correction_deg,selected_pair_translation_cm,selected_pair_rotation_deg,all_pair_translation_rms_m,all_pair_rotation_rms_deg,normalized_global_rms,normalized_global_rms_change,improved_pairs,worsened_pairs,global_consistency_signal,ground_normal_tilt_rms_deg,ground_height_rms_m
baseline,0.0,0.0,0.0,13.53760421849012,0.5166365681634405,0.07984780651249465,0.961176171904301,2.4991413356769443,0.0,0,0,False,1.6662748432297785,0.03471396517121729
pitch_+0.100,0.0,0.1,0.0,13.322368374959654,0.4851311566747633,0.07937622701088871,0.9709178397492695,2.508178616440067,0.009037280763122713,17,22,False,1.661255702204205,0.03471396517121729
pitch_+0.200,0.0,0.2,0.0,13.107741962217032,0.45594025406310634,0.07905894857986535,0.991843015836615,2.536757223795175,0.03761588811823069,17,22,False,1.6622470214176333,0.03471396517121729
pitch_+0.300,0.0,0.3,0.0,12.89375489636804,0.4295360884271374,0.07889765995849754,1.0232658257505307,2.5842267894606974,0.0850854537837531,16,23,False,1.669238092496052,0.034713965171217276
pitch_+0.000_roll_-0.200,-0.2,0.0,0.0,13.395035432680281,0.501501180601739,0.08136434456273667,0.9671396098919116,2.5277457796497282,0.028604443972783944,12,27,False,1.7107124278398285,0.034713965171217304
pitch_+0.000_roll_-0.100,-0.1,0.0,0.0,13.466127879921094,0.5071126466746416,0.08054864611850543,0.958376027630505,2.503831503507573,0.004690167830628589,13,26,False,1.685676496509504,0.034713965171217304
pitch_+0.000_roll_+0.100,0.1,0.0,0.0,13.609457775458583,0.5298619890141043,0.07926481666577584,0.9754404878748625,2.5137822192795105,0.014640883602566213,23,16,False,1.652705907802981,0.034713965171217304
pitch_+0.100_roll_-0.200,-0.2,0.1,0.0,13.180263465884618,0.4689801268726104,0.08100204146829142,0.9768217811391146,2.5379628557651293,0.03882152008818496,14,25,False,1.7058242505297496,0.034713965171217304
pitch_+0.100_roll_-0.100,-0.1,0.1,0.0,13.251119920699841,0.47497594758710626,0.08013195956996022,0.9681458624297539,2.5134991588556583,0.014357823178714035,17,22,False,1.6807154082401394,0.03471396517121729
pitch_+0.100_roll_+0.100,0.1,0.1,0.0,13.394001942784334,0.4991919434350986,0.07873808044179886,0.9850410981186302,2.5221217227950565,0.022980387118112233,19,20,False,1.6476453039285432,0.0347139651712173
pitch_+0.200_roll_-0.200,-0.2,0.2,0.0,12.966120616418092,0.43871598020210434,0.08079188106279227,0.9976230703529106,2.567477045713792,0.0683357100368478,15,24,False,1.7067898021773054,0.034713965171217304
pitch_+0.200_roll_-0.100,-0.1,0.2,0.0,13.036731063691272,0.44511961856905025,0.07986863254178682,0.989129669887256,2.5426579402355864,0.04351660455864215,19,20,False,1.6816953294526065,0.03471396517121731
pitch_+0.200_roll_+0.100,0.1,0.2,0.0,13.179146202690733,0.4708734484159498,0.07836629319834118,1.0056724288764685,2.5499055866185576,0.0507642509416133,19,20,False,1.648644705864238,0.034713965171217304
pitch_+0.300_roll_-0.200,-0.2,0.3,0.0,12.752638042306833,0.4112074527490782,0.08073488194995813,1.0288692761236073,2.6156330810711834,0.11649174539423912,15,24,False,1.7135991876939975,0.03471396517121731
pitch_+0.300_roll_-0.100,-0.1,0.3,0.0,12.822991835578721,0.41803263983275235,0.07976001272785865,1.020636005744607,2.5906476559016074,0.0915063202246631,16,23,False,1.6886059172123598,0.0347139651712173
pitch_+0.300_roll_+0.100,0.1,0.3,0.0,12.964919880829425,0.44535539842024163,0.07815149226179761,1.036676092226784,2.596507573236926,0.09736623755998153,18,21,False,1.6556931398905776,0.034713965171217304
yaw_-0.200_diagnostic,0.0,0.0,-0.2,13.607478813867315,0.5166365681634414,0.08024771376258277,0.961176171904301,2.5042597228312786,0.005118387154334325,18,21,False,1.6662748432297787,0.0347139651712173
yaw_+0.200_diagnostic,0.0,0.0,0.2,13.479715314434312,0.5166365681634427,0.08028135387591602,0.961176171904301,2.5046909681249,0.005549632447955588,13,26,False,1.6662748432297787,0.0347139651712173
1 label roll_correction_deg pitch_correction_deg yaw_correction_deg selected_pair_translation_cm selected_pair_rotation_deg all_pair_translation_rms_m all_pair_rotation_rms_deg normalized_global_rms normalized_global_rms_change improved_pairs worsened_pairs global_consistency_signal ground_normal_tilt_rms_deg ground_height_rms_m
2 baseline 0.0 0.0 0.0 13.53760421849012 0.5166365681634405 0.07984780651249465 0.961176171904301 2.4991413356769443 0.0 0 0 False 1.6662748432297785 0.03471396517121729
3 pitch_+0.100 0.0 0.1 0.0 13.322368374959654 0.4851311566747633 0.07937622701088871 0.9709178397492695 2.508178616440067 0.009037280763122713 17 22 False 1.661255702204205 0.03471396517121729
4 pitch_+0.200 0.0 0.2 0.0 13.107741962217032 0.45594025406310634 0.07905894857986535 0.991843015836615 2.536757223795175 0.03761588811823069 17 22 False 1.6622470214176333 0.03471396517121729
5 pitch_+0.300 0.0 0.3 0.0 12.89375489636804 0.4295360884271374 0.07889765995849754 1.0232658257505307 2.5842267894606974 0.0850854537837531 16 23 False 1.669238092496052 0.034713965171217276
6 pitch_+0.000_roll_-0.200 -0.2 0.0 0.0 13.395035432680281 0.501501180601739 0.08136434456273667 0.9671396098919116 2.5277457796497282 0.028604443972783944 12 27 False 1.7107124278398285 0.034713965171217304
7 pitch_+0.000_roll_-0.100 -0.1 0.0 0.0 13.466127879921094 0.5071126466746416 0.08054864611850543 0.958376027630505 2.503831503507573 0.004690167830628589 13 26 False 1.685676496509504 0.034713965171217304
8 pitch_+0.000_roll_+0.100 0.1 0.0 0.0 13.609457775458583 0.5298619890141043 0.07926481666577584 0.9754404878748625 2.5137822192795105 0.014640883602566213 23 16 False 1.652705907802981 0.034713965171217304
9 pitch_+0.100_roll_-0.200 -0.2 0.1 0.0 13.180263465884618 0.4689801268726104 0.08100204146829142 0.9768217811391146 2.5379628557651293 0.03882152008818496 14 25 False 1.7058242505297496 0.034713965171217304
10 pitch_+0.100_roll_-0.100 -0.1 0.1 0.0 13.251119920699841 0.47497594758710626 0.08013195956996022 0.9681458624297539 2.5134991588556583 0.014357823178714035 17 22 False 1.6807154082401394 0.03471396517121729
11 pitch_+0.100_roll_+0.100 0.1 0.1 0.0 13.394001942784334 0.4991919434350986 0.07873808044179886 0.9850410981186302 2.5221217227950565 0.022980387118112233 19 20 False 1.6476453039285432 0.0347139651712173
12 pitch_+0.200_roll_-0.200 -0.2 0.2 0.0 12.966120616418092 0.43871598020210434 0.08079188106279227 0.9976230703529106 2.567477045713792 0.0683357100368478 15 24 False 1.7067898021773054 0.034713965171217304
13 pitch_+0.200_roll_-0.100 -0.1 0.2 0.0 13.036731063691272 0.44511961856905025 0.07986863254178682 0.989129669887256 2.5426579402355864 0.04351660455864215 19 20 False 1.6816953294526065 0.03471396517121731
14 pitch_+0.200_roll_+0.100 0.1 0.2 0.0 13.179146202690733 0.4708734484159498 0.07836629319834118 1.0056724288764685 2.5499055866185576 0.0507642509416133 19 20 False 1.648644705864238 0.034713965171217304
15 pitch_+0.300_roll_-0.200 -0.2 0.3 0.0 12.752638042306833 0.4112074527490782 0.08073488194995813 1.0288692761236073 2.6156330810711834 0.11649174539423912 15 24 False 1.7135991876939975 0.03471396517121731
16 pitch_+0.300_roll_-0.100 -0.1 0.3 0.0 12.822991835578721 0.41803263983275235 0.07976001272785865 1.020636005744607 2.5906476559016074 0.0915063202246631 16 23 False 1.6886059172123598 0.0347139651712173
17 pitch_+0.300_roll_+0.100 0.1 0.3 0.0 12.964919880829425 0.44535539842024163 0.07815149226179761 1.036676092226784 2.596507573236926 0.09736623755998153 18 21 False 1.6556931398905776 0.034713965171217304
18 yaw_-0.200_diagnostic 0.0 0.0 -0.2 13.607478813867315 0.5166365681634414 0.08024771376258277 0.961176171904301 2.5042597228312786 0.005118387154334325 18 21 False 1.6662748432297787 0.0347139651712173
19 yaw_+0.200_diagnostic 0.0 0.0 0.2 13.479715314434312 0.5166365681634427 0.08028135387591602 0.961176171904301 2.5046909681249 0.005549632447955588 13 26 False 1.6662748432297787 0.0347139651712173
File diff suppressed because it is too large Load Diff
@@ -1,19 +0,0 @@
label,roll_correction_deg,pitch_correction_deg,yaw_correction_deg,selected_pair_translation_cm,selected_pair_rotation_deg,all_pair_translation_rms_m,all_pair_rotation_rms_deg,normalized_global_rms,normalized_global_rms_change,improved_pairs,worsened_pairs,global_consistency_signal,ground_normal_tilt_rms_deg,ground_height_rms_m
baseline,0.0,0.0,0.0,7.9716047501124,0.5471090190705759,0.10039155672864886,1.0152957563636194,2.855641391442648,0.0,0,0,False,1.6662748432297785,0.03471396517121729
pitch_+0.100,0.0,0.1,0.0,7.877722926634115,0.5242415332114175,0.10031155812336309,1.0345690614552345,2.8820645462820917,0.026423154839443797,27,39,False,1.661255702204205,0.03471396517121729
pitch_+0.200,0.0,0.2,0.0,7.783902534642328,0.5013877557627758,0.10034501725742666,1.0647782869175946,2.9262023505769332,0.07056095913428528,26,40,False,1.6622470214176333,0.03471396517121729
pitch_+0.300,0.0,0.3,0.0,7.69014529426882,0.4785497243321324,0.1004916878666913,1.1050268752403856,2.9872678674890754,0.1316264760464274,25,41,False,1.669238092496052,0.034713965171217276
pitch_+0.000_roll_-0.200,-0.2,0.0,0.0,7.822046878606513,0.5457706857344996,0.10257010426899679,1.0267538544989139,2.9026099336312234,0.04696854218857549,22,44,False,1.7107124278398285,0.034713965171217304
pitch_+0.000_roll_-0.100,-0.1,0.0,0.0,7.896797905766369,0.545955313109902,0.10143505999644054,1.0151691591975842,2.870174601960012,0.014533210517364115,25,41,False,1.685676496509504,0.034713965171217304
pitch_+0.000_roll_+0.100,0.1,0.0,0.0,8.046465471725153,0.5492256932471735,0.09944242267101946,1.0271293323765827,2.859282573021794,0.0036411815791459468,38,28,False,1.652705907802981,0.034713965171217304
pitch_+0.100_roll_-0.200,-0.2,0.1,0.0,7.728092854641688,0.5228446714705329,0.10256719458254226,1.0458160126880083,2.929664876976855,0.07402348553420701,24,42,False,1.7058242505297496,0.034713965171217304
pitch_+0.100_roll_-0.100,-0.1,0.1,0.0,7.802880223772661,0.5230373912267472,0.10139401948155134,1.0344448200154543,2.896999001946205,0.04135761050355713,31,35,False,1.6807154082401394,0.03471396517121729
pitch_+0.100_roll_+0.100,0.1,0.1,0.0,7.952619015892104,0.5264501536349752,0.09932272291285332,1.0461846579706375,2.885136161262053,0.029494769819405242,30,36,False,1.6476453039285432,0.0347139651712173
pitch_+0.200_roll_-0.200,-0.2,0.2,0.0,7.634199171873722,0.49992704876652105,0.10267526429269669,1.0757093910702569,2.9741363007059745,0.11849490926332651,27,39,False,1.7067898021773054,0.034713965171217304
pitch_+0.200_roll_-0.100,-0.1,0.2,0.0,7.709023440769963,0.5001285987059726,0.10146524807256484,1.0646575627535269,2.9414386837539155,0.08579729231126754,30,36,False,1.6816953294526065,0.03471396517121731
pitch_+0.200_roll_+0.100,0.1,0.2,0.0,7.8588344993060915,0.5036965847149959,0.09931755660454081,1.0760678191977628,2.928699135454269,0.07305774401162113,29,37,False,1.648644705864238,0.034713965171217304
pitch_+0.300_roll_-0.200,-0.2,0.3,0.0,7.540367539154748,0.47701910095086286,0.102893833307342,1.1155635852142416,3.035256961724302,0.17961557028165398,25,41,False,1.7135991876939975,0.03471396517121731
pitch_+0.300_roll_-0.100,-0.1,0.3,0.0,7.615229271779279,0.47723032409407057,0.10164837804314657,1.1049105360171487,3.0027098217989345,0.14706843035628658,25,41,False,1.6886059172123598,0.0347139651712173
pitch_+0.300_roll_+0.100,0.1,0.3,0.0,7.7651136462045685,0.48096817789925783,0.09942680753866891,1.1159092500059349,2.989195517179804,0.13355412573715597,28,38,False,1.6556931398905776,0.034713965171217304
yaw_-0.200_diagnostic,0.0,0.0,-0.2,7.9342751812671235,0.5471090190705757,0.10053142254152782,1.0152957563636194,2.8576089058597884,0.0019675144171404924,35,31,False,1.6662748432297787,0.0347139651712173
yaw_+0.200_diagnostic,0.0,0.0,0.2,8.012589151848083,0.547109019070576,0.10091495789660097,1.0152957563636194,2.8630112438600364,0.007369852417388412,18,48,False,1.6662748432297787,0.0347139651712173
1 label roll_correction_deg pitch_correction_deg yaw_correction_deg selected_pair_translation_cm selected_pair_rotation_deg all_pair_translation_rms_m all_pair_rotation_rms_deg normalized_global_rms normalized_global_rms_change improved_pairs worsened_pairs global_consistency_signal ground_normal_tilt_rms_deg ground_height_rms_m
2 baseline 0.0 0.0 0.0 7.9716047501124 0.5471090190705759 0.10039155672864886 1.0152957563636194 2.855641391442648 0.0 0 0 False 1.6662748432297785 0.03471396517121729
3 pitch_+0.100 0.0 0.1 0.0 7.877722926634115 0.5242415332114175 0.10031155812336309 1.0345690614552345 2.8820645462820917 0.026423154839443797 27 39 False 1.661255702204205 0.03471396517121729
4 pitch_+0.200 0.0 0.2 0.0 7.783902534642328 0.5013877557627758 0.10034501725742666 1.0647782869175946 2.9262023505769332 0.07056095913428528 26 40 False 1.6622470214176333 0.03471396517121729
5 pitch_+0.300 0.0 0.3 0.0 7.69014529426882 0.4785497243321324 0.1004916878666913 1.1050268752403856 2.9872678674890754 0.1316264760464274 25 41 False 1.669238092496052 0.034713965171217276
6 pitch_+0.000_roll_-0.200 -0.2 0.0 0.0 7.822046878606513 0.5457706857344996 0.10257010426899679 1.0267538544989139 2.9026099336312234 0.04696854218857549 22 44 False 1.7107124278398285 0.034713965171217304
7 pitch_+0.000_roll_-0.100 -0.1 0.0 0.0 7.896797905766369 0.545955313109902 0.10143505999644054 1.0151691591975842 2.870174601960012 0.014533210517364115 25 41 False 1.685676496509504 0.034713965171217304
8 pitch_+0.000_roll_+0.100 0.1 0.0 0.0 8.046465471725153 0.5492256932471735 0.09944242267101946 1.0271293323765827 2.859282573021794 0.0036411815791459468 38 28 False 1.652705907802981 0.034713965171217304
9 pitch_+0.100_roll_-0.200 -0.2 0.1 0.0 7.728092854641688 0.5228446714705329 0.10256719458254226 1.0458160126880083 2.929664876976855 0.07402348553420701 24 42 False 1.7058242505297496 0.034713965171217304
10 pitch_+0.100_roll_-0.100 -0.1 0.1 0.0 7.802880223772661 0.5230373912267472 0.10139401948155134 1.0344448200154543 2.896999001946205 0.04135761050355713 31 35 False 1.6807154082401394 0.03471396517121729
11 pitch_+0.100_roll_+0.100 0.1 0.1 0.0 7.952619015892104 0.5264501536349752 0.09932272291285332 1.0461846579706375 2.885136161262053 0.029494769819405242 30 36 False 1.6476453039285432 0.0347139651712173
12 pitch_+0.200_roll_-0.200 -0.2 0.2 0.0 7.634199171873722 0.49992704876652105 0.10267526429269669 1.0757093910702569 2.9741363007059745 0.11849490926332651 27 39 False 1.7067898021773054 0.034713965171217304
13 pitch_+0.200_roll_-0.100 -0.1 0.2 0.0 7.709023440769963 0.5001285987059726 0.10146524807256484 1.0646575627535269 2.9414386837539155 0.08579729231126754 30 36 False 1.6816953294526065 0.03471396517121731
14 pitch_+0.200_roll_+0.100 0.1 0.2 0.0 7.8588344993060915 0.5036965847149959 0.09931755660454081 1.0760678191977628 2.928699135454269 0.07305774401162113 29 37 False 1.648644705864238 0.034713965171217304
15 pitch_+0.300_roll_-0.200 -0.2 0.3 0.0 7.540367539154748 0.47701910095086286 0.102893833307342 1.1155635852142416 3.035256961724302 0.17961557028165398 25 41 False 1.7135991876939975 0.03471396517121731
16 pitch_+0.300_roll_-0.100 -0.1 0.3 0.0 7.615229271779279 0.47723032409407057 0.10164837804314657 1.1049105360171487 3.0027098217989345 0.14706843035628658 25 41 False 1.6886059172123598 0.0347139651712173
17 pitch_+0.300_roll_+0.100 0.1 0.3 0.0 7.7651136462045685 0.48096817789925783 0.09942680753866891 1.1159092500059349 2.989195517179804 0.13355412573715597 28 38 False 1.6556931398905776 0.034713965171217304
18 yaw_-0.200_diagnostic 0.0 0.0 -0.2 7.9342751812671235 0.5471090190705757 0.10053142254152782 1.0152957563636194 2.8576089058597884 0.0019675144171404924 35 31 False 1.6662748432297787 0.0347139651712173
19 yaw_+0.200_diagnostic 0.0 0.0 0.2 8.012589151848083 0.547109019070576 0.10091495789660097 1.0152957563636194 2.8630112438600364 0.007369852417388412 18 48 False 1.6662748432297787 0.0347139651712173
@@ -1,19 +0,0 @@
label,roll_correction_deg,pitch_correction_deg,yaw_correction_deg,selected_pair_translation_cm,selected_pair_rotation_deg,all_pair_translation_rms_m,all_pair_rotation_rms_deg,normalized_global_rms,normalized_global_rms_change,improved_pairs,worsened_pairs,global_consistency_signal,ground_normal_tilt_rms_deg,ground_height_rms_m
baseline,0.0,0.0,0.0,9.17040157943579,0.3948131792835417,0.11878243181951181,1.1425260172834293,3.296235617224735,0.0,0,0,False,1.6662748432297785,0.03471396517121729
pitch_+0.100,0.0,0.1,0.0,9.076928136371041,0.4171107485761563,0.11876672804528438,1.1650719587800913,3.3274291807303316,0.031193563505596433,37,43,False,1.661255702204205,0.03471396517121729
pitch_+0.200,0.0,0.2,0.0,8.983515248729091,0.4394867360130287,0.11886418170047355,1.2000618469690334,3.378175724075376,0.08194010685064068,33,47,False,1.6622470214176333,0.03471396517121729
pitch_+0.300,0.0,0.3,0.0,8.890164410286015,0.4619296835950138,0.11907438084482405,1.246448116042569,3.4476100262900324,0.1513744090652973,29,51,False,1.669238092496052,0.034713965171217276
pitch_+0.000_roll_-0.200,-0.2,0.0,0.0,9.01972941526644,0.4032977537513619,0.12043024872839399,1.1611526935950138,3.3458153318563415,0.049579714631606375,32,48,False,1.7107124278398285,0.034713965171217304
pitch_+0.000_roll_-0.100,-0.1,0.0,0.0,9.095041148790378,0.3984113441028921,0.1195670451553767,1.1451882592248208,3.3112438616237037,0.015008244398968529,36,44,False,1.685676496509504,0.034713965171217304
pitch_+0.000_roll_+0.100,0.1,0.0,0.0,9.245809148607497,0.39253869750368725,0.1180779565326178,1.153258101553409,3.3010571825949637,0.004821565370228598,39,41,False,1.652705907802981,0.034713965171217304
pitch_+0.100_roll_-0.200,-0.2,0.1,0.0,8.926223519858327,0.4251505609368216,0.12047176074785593,1.1833438511380916,3.3773641697603143,0.08112855253557916,35,45,False,1.7058242505297496,0.034713965171217304
pitch_+0.100_roll_-0.100,-0.1,0.1,0.0,9.001551548682645,0.4205181630564456,0.1195801596045202,1.1676828282839524,3.342708269995132,0.046472652770396916,34,46,False,1.6807154082401394,0.03471396517121729
pitch_+0.100_roll_+0.100,0.1,0.1,0.0,9.152351713867697,0.41495850563128295,0.11803306342745587,1.175598202053685,3.331793234208173,0.035557616983437956,33,47,False,1.6476453039285432,0.0347139651712173
pitch_+0.200_roll_-0.200,-0.2,0.2,0.0,8.832778133209484,0.4471243504044202,0.12062476910644687,1.2178088730560497,3.428172658132847,0.13193704090811176,30,50,False,1.7067898021773054,0.034713965171217304
pitch_+0.200_roll_-0.100,-0.1,0.2,0.0,8.908122483450981,0.44272195299870193,0.11970563817510238,1.2025967761770837,3.3936310861155006,0.09739546889076545,33,47,False,1.6816953294526065,0.03471396517121731
pitch_+0.200_roll_+0.100,0.1,0.2,0.0,9.058954849462527,0.4374446064319599,0.11810204126073977,1.2102837520093128,3.3820679918494174,0.0858323746246823,32,48,False,1.648644705864238,0.034713965171217304
pitch_+0.300_roll_-0.200,-0.2,0.3,0.0,8.739394768298625,0.469202063453847,0.1208887180452031,1.263543756747655,3.4973996284538247,0.20116401122908956,29,51,False,1.7135991876939975,0.03471396517121731
pitch_+0.300_roll_-0.100,-0.1,0.3,0.0,8.81475545648032,0.46500876133584307,0.11994299492844523,1.2488889095688314,3.4631521547194706,0.16691653749473545,30,50,False,1.6886059172123598,0.0347139651712173
pitch_+0.300_roll_+0.100,0.1,0.3,0.0,8.96562003954328,0.45998721539756443,0.11828455597352863,1.2562925755921872,3.4510257337050003,0.1547901164802652,29,51,False,1.6556931398905776,0.034713965171217304
yaw_-0.200_diagnostic,0.0,0.0,-0.2,9.118174501598277,0.39481317928354154,0.11873527555886121,1.142526017283429,3.295555956965929,-0.0006796602588061695,45,35,True,1.6662748432297787,0.0347139651712173
yaw_+0.200_diagnostic,0.0,0.0,0.2,9.225647367504836,0.39481317928354204,0.1194719055604376,1.142526017283429,3.306187727273662,0.009952110048927043,27,53,False,1.6662748432297787,0.0347139651712173
1 label roll_correction_deg pitch_correction_deg yaw_correction_deg selected_pair_translation_cm selected_pair_rotation_deg all_pair_translation_rms_m all_pair_rotation_rms_deg normalized_global_rms normalized_global_rms_change improved_pairs worsened_pairs global_consistency_signal ground_normal_tilt_rms_deg ground_height_rms_m
2 baseline 0.0 0.0 0.0 9.17040157943579 0.3948131792835417 0.11878243181951181 1.1425260172834293 3.296235617224735 0.0 0 0 False 1.6662748432297785 0.03471396517121729
3 pitch_+0.100 0.0 0.1 0.0 9.076928136371041 0.4171107485761563 0.11876672804528438 1.1650719587800913 3.3274291807303316 0.031193563505596433 37 43 False 1.661255702204205 0.03471396517121729
4 pitch_+0.200 0.0 0.2 0.0 8.983515248729091 0.4394867360130287 0.11886418170047355 1.2000618469690334 3.378175724075376 0.08194010685064068 33 47 False 1.6622470214176333 0.03471396517121729
5 pitch_+0.300 0.0 0.3 0.0 8.890164410286015 0.4619296835950138 0.11907438084482405 1.246448116042569 3.4476100262900324 0.1513744090652973 29 51 False 1.669238092496052 0.034713965171217276
6 pitch_+0.000_roll_-0.200 -0.2 0.0 0.0 9.01972941526644 0.4032977537513619 0.12043024872839399 1.1611526935950138 3.3458153318563415 0.049579714631606375 32 48 False 1.7107124278398285 0.034713965171217304
7 pitch_+0.000_roll_-0.100 -0.1 0.0 0.0 9.095041148790378 0.3984113441028921 0.1195670451553767 1.1451882592248208 3.3112438616237037 0.015008244398968529 36 44 False 1.685676496509504 0.034713965171217304
8 pitch_+0.000_roll_+0.100 0.1 0.0 0.0 9.245809148607497 0.39253869750368725 0.1180779565326178 1.153258101553409 3.3010571825949637 0.004821565370228598 39 41 False 1.652705907802981 0.034713965171217304
9 pitch_+0.100_roll_-0.200 -0.2 0.1 0.0 8.926223519858327 0.4251505609368216 0.12047176074785593 1.1833438511380916 3.3773641697603143 0.08112855253557916 35 45 False 1.7058242505297496 0.034713965171217304
10 pitch_+0.100_roll_-0.100 -0.1 0.1 0.0 9.001551548682645 0.4205181630564456 0.1195801596045202 1.1676828282839524 3.342708269995132 0.046472652770396916 34 46 False 1.6807154082401394 0.03471396517121729
11 pitch_+0.100_roll_+0.100 0.1 0.1 0.0 9.152351713867697 0.41495850563128295 0.11803306342745587 1.175598202053685 3.331793234208173 0.035557616983437956 33 47 False 1.6476453039285432 0.0347139651712173
12 pitch_+0.200_roll_-0.200 -0.2 0.2 0.0 8.832778133209484 0.4471243504044202 0.12062476910644687 1.2178088730560497 3.428172658132847 0.13193704090811176 30 50 False 1.7067898021773054 0.034713965171217304
13 pitch_+0.200_roll_-0.100 -0.1 0.2 0.0 8.908122483450981 0.44272195299870193 0.11970563817510238 1.2025967761770837 3.3936310861155006 0.09739546889076545 33 47 False 1.6816953294526065 0.03471396517121731
14 pitch_+0.200_roll_+0.100 0.1 0.2 0.0 9.058954849462527 0.4374446064319599 0.11810204126073977 1.2102837520093128 3.3820679918494174 0.0858323746246823 32 48 False 1.648644705864238 0.034713965171217304
15 pitch_+0.300_roll_-0.200 -0.2 0.3 0.0 8.739394768298625 0.469202063453847 0.1208887180452031 1.263543756747655 3.4973996284538247 0.20116401122908956 29 51 False 1.7135991876939975 0.03471396517121731
16 pitch_+0.300_roll_-0.100 -0.1 0.3 0.0 8.81475545648032 0.46500876133584307 0.11994299492844523 1.2488889095688314 3.4631521547194706 0.16691653749473545 30 50 False 1.6886059172123598 0.0347139651712173
17 pitch_+0.300_roll_+0.100 0.1 0.3 0.0 8.96562003954328 0.45998721539756443 0.11828455597352863 1.2562925755921872 3.4510257337050003 0.1547901164802652 29 51 False 1.6556931398905776 0.034713965171217304
18 yaw_-0.200_diagnostic 0.0 0.0 -0.2 9.118174501598277 0.39481317928354154 0.11873527555886121 1.142526017283429 3.295555956965929 -0.0006796602588061695 45 35 True 1.6662748432297787 0.0347139651712173
19 yaw_+0.200_diagnostic 0.0 0.0 0.2 9.225647367504836 0.39481317928354204 0.1194719055604376 1.142526017283429 3.306187727273662 0.009952110048927043 27 53 False 1.6662748432297787 0.0347139651712173
@@ -1,46 +0,0 @@
{
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"translation_m": [
1.2977596922478565,
-0.00006733076264476427,
0.7204978345266887
],
"rotation_rpy_deg_xyz": [
-0.7851511464150316,
1.2026608220810453,
-0.835510052785851
],
"quaternion_xyzw": [
-0.0067746045444860015,
0.010544431385358818,
-0.0072186568687935965,
0.9998953998759249
],
"matrix_4x4": [
[
0.9996734119195402,
0.014292934887214408,
0.021184463964312037,
1.2977596922478565
],
[
-0.01457867229834346,
0.9998039914525529,
0.013395558575925315,
-0.00006733076264476427
],
[
-0.020988849781798404,
-0.013700025104115046,
0.9996858394000506,
0.7204978345266887
],
[
0.0,
0.0,
0.0,
1.0
]
]
}
@@ -1,405 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2977596922478565,
-6.733076264476427e-05,
0.7204978345266887
],
"rotation_rpy_deg_xyz": [
-0.7851511464150316,
1.2026608220810453,
-0.835510052785851
],
"quaternion_xyzw": [
-0.0067746045444860015,
0.010544431385358818,
-0.0072186568687935965,
0.9998953998759249
],
"matrix_4x4": [
[
0.9996734119195402,
0.014292934887214408,
0.021184463964312037,
1.2977596922478565
],
[
-0.01457867229834346,
0.9998039914525529,
0.013395558575925315,
-6.733076264476427e-05
],
[
-0.020988849781798404,
-0.013700025104115046,
0.9996858394000506,
0.7204978345266887
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 39,
"residuals": {
"pairs": 39,
"translation_m": {
"rms": 0.07984780651249465,
"median": 0.05392926910429046,
"p90": 0.11822807898946641,
"p95": 0.14420733112402187,
"max": 0.2330103519747209
},
"rotation_deg": {
"rms": 0.961176171904301,
"median": 0.8002960897011372,
"p90": 1.422624767604584,
"p95": 1.4793113785217964,
"max": 1.7237415928660533
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.1353760421849012,
"rotation_deg": 0.5166365681634405
},
{
"pair_index": 1,
"translation_m": 0.11487543918383647,
"rotation_deg": 0.5717221816616095
},
{
"pair_index": 2,
"translation_m": 0.06210064976174764,
"rotation_deg": 0.4402983357286552
},
{
"pair_index": 3,
"translation_m": 0.054355548674489614,
"rotation_deg": 0.5821611725015269
},
{
"pair_index": 4,
"translation_m": 0.02391657882546618,
"rotation_deg": 0.32738975448002894
},
{
"pair_index": 5,
"translation_m": 0.07775220171630512,
"rotation_deg": 0.8706732532310371
},
{
"pair_index": 6,
"translation_m": 0.06265840922697155,
"rotation_deg": 0.8002960897011372
},
{
"pair_index": 7,
"translation_m": 0.09282561040685418,
"rotation_deg": 1.0484294819479303
},
{
"pair_index": 8,
"translation_m": 0.034474807960716856,
"rotation_deg": 0.40941928556312257
},
{
"pair_index": 9,
"translation_m": 0.13163863821198593,
"rotation_deg": 1.1065820279922887
},
{
"pair_index": 10,
"translation_m": 0.0018609877360485794,
"rotation_deg": 0.6081452332544832
},
{
"pair_index": 11,
"translation_m": 0.06488404028756532,
"rotation_deg": 0.05192051717362457
},
{
"pair_index": 12,
"translation_m": 0.1147488321233841,
"rotation_deg": 0.9937108406424444
},
{
"pair_index": 13,
"translation_m": 0.05392926910429046,
"rotation_deg": 0.9700546737541248
},
{
"pair_index": 14,
"translation_m": 0.02302185790244543,
"rotation_deg": 1.6149869587730064
},
{
"pair_index": 15,
"translation_m": 0.2330103519747209,
"rotation_deg": 0.5939965715201481
},
{
"pair_index": 16,
"translation_m": 0.2236889315761065,
"rotation_deg": 1.1151964340680336
},
{
"pair_index": 17,
"translation_m": 0.04090994021171706,
"rotation_deg": 0.7785618518380144
},
{
"pair_index": 18,
"translation_m": 0.054652520003134704,
"rotation_deg": 1.124375763416717
},
{
"pair_index": 19,
"translation_m": 0.04547500551567543,
"rotation_deg": 0.6556954445211121
},
{
"pair_index": 20,
"translation_m": 0.02484690940972022,
"rotation_deg": 1.7237415928660533
},
{
"pair_index": 21,
"translation_m": 0.056832852413462566,
"rotation_deg": 0.5831473606925555
},
{
"pair_index": 22,
"translation_m": 0.03998842216950218,
"rotation_deg": 1.124691549503354
},
{
"pair_index": 23,
"translation_m": 0.052224143195848054,
"rotation_deg": 1.1184574012171749
},
{
"pair_index": 24,
"translation_m": 0.06305629062353875,
"rotation_deg": 0.5252019728243343
},
{
"pair_index": 25,
"translation_m": 0.0552093328283033,
"rotation_deg": 0.08705258513790126
},
{
"pair_index": 26,
"translation_m": 0.08502281683725502,
"rotation_deg": 0.6459827373704314
},
{
"pair_index": 27,
"translation_m": 0.03727269737723399,
"rotation_deg": 0.7631660358041192
},
{
"pair_index": 28,
"translation_m": 0.04543722819346571,
"rotation_deg": 1.4218618784137362
},
{
"pair_index": 29,
"translation_m": 0.02559982081388642,
"rotation_deg": 1.388947601285772
},
{
"pair_index": 30,
"translation_m": 0.01827234061769129,
"rotation_deg": 1.206866980510853
},
{
"pair_index": 31,
"translation_m": 0.06863732394647468,
"rotation_deg": 1.4642363140494394
},
{
"pair_index": 32,
"translation_m": 0.04770629220585725,
"rotation_deg": 0.6244903967618446
},
{
"pair_index": 33,
"translation_m": 0.027074935362624366,
"rotation_deg": 1.3688430767407767
},
{
"pair_index": 34,
"translation_m": 0.03301156138156032,
"rotation_deg": 1.4256763243679755
},
{
"pair_index": 35,
"translation_m": 0.054240160043693975,
"rotation_deg": 0.6486412679040612
},
{
"pair_index": 36,
"translation_m": 0.021992835671895014,
"rotation_deg": 0.23769553016909395
},
{
"pair_index": 37,
"translation_m": 0.031890552923517286,
"rotation_deg": 1.0832171246083164
},
{
"pair_index": 38,
"translation_m": 0.025286131886091672,
"rotation_deg": 1.2215923174512224
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.0061384486036208784,
0.006616582082990767,
0.004372364137893693
],
"rotation_deg": [
0.06746979098802125,
0.05919345389075773,
0.16157711056486687
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.965138763120991,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 152.7941369486616,
"success": true,
"translation_m": 5.01999140559543e-10,
"rotation_deg": 7.693408441139155e-09
},
{
"cost": 152.79413694866156,
"success": true,
"translation_m": 1.7788160768171148e-10,
"rotation_deg": 3.2213546311649044e-09
},
{
"cost": 152.7941369486616,
"success": true,
"translation_m": 2.04052729806573e-10,
"rotation_deg": 5.128825141169912e-09
},
{
"cost": 152.79413694866287,
"success": true,
"translation_m": 3.6987521890593636e-09,
"rotation_deg": 1.471926437983498e-07
},
{
"cost": 152.79413694866153,
"success": true,
"translation_m": 3.0367491381779985e-10,
"rotation_deg": 3.27791256123688e-09
},
{
"cost": 152.79413694866173,
"success": true,
"translation_m": 6.928454212106221e-10,
"rotation_deg": 2.8875952395155353e-08
},
{
"cost": 152.79413694866153,
"success": true,
"translation_m": 1.9628898247072475e-10,
"rotation_deg": 3.769277991759282e-09
},
{
"cost": 152.79413694866167,
"success": true,
"translation_m": 1.8108640246434077e-09,
"rotation_deg": 5.6964069970580913e-08
},
{
"cost": 152.79413694866145,
"success": true,
"translation_m": 0.0,
"rotation_deg": 0.0
},
{
"cost": 152.7941369486631,
"success": true,
"translation_m": 3.8878373558477815e-09,
"rotation_deg": 1.567977862312646e-07
},
{
"cost": 152.79413694866162,
"success": true,
"translation_m": 1.928688225276107e-09,
"rotation_deg": 6.007537452298471e-08
},
{
"cost": 152.79413694866165,
"success": true,
"translation_m": 6.380398519737792e-10,
"rotation_deg": 2.6596239917974983e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.003223574650236103,
0.003334649335095665,
0.0016858977028131694,
0.0980155224808408,
0.07461769310738842,
0.11886090357304822
],
"p025": [
1.2916920074190312,
-0.005413227092587022,
0.7171569502776788,
-0.9695959273616203,
1.066246526462818,
-1.100751980508544
],
"p975": [
1.3034038047298853,
0.007138524793626496,
0.7235834879340349,
-0.6076030002143074,
1.3517461178267727,
-0.6468477685453492
]
},
"selection": {
"method": "Open3D B gated by Open3D-small_gicp cross-backend agreement",
"selection_is_X_independent": true,
"consensus_pair_threshold": "Open3D-small_gicp B delta <= 0.05 m and <= 0.50 deg",
"warning": "AX rotation RMS remains about one degree; this is not centimetre-grade absolute certification."
}
}
@@ -1,440 +0,0 @@
{
"recommended_method": "Open3D B gated by Open3D-small_gicp cross-backend agreement",
"selection_is_X_independent": true,
"second_batch_role": "estimation (dense RTK)",
"first_batch_role": "auxiliary check only (sparse RTK)",
"consensus": {
"translation_m": [
1.2977596922478565,
-6.733076264476427e-05,
0.7204978345266887
],
"rotation_rpy_deg_xyz": [
-0.7851511464150316,
1.2026608220810453,
-0.835510052785851
],
"estimation": {
"pairs": 39,
"translation_m": {
"rms": 0.07984780651249465,
"median": 0.05392926910429046,
"p90": 0.11822807898946641,
"p95": 0.14420733112402187,
"max": 0.2330103519747209
},
"rotation_deg": {
"rms": 0.961176171904301,
"median": 0.8002960897011372,
"p90": 1.422624767604584,
"p95": 1.4793113785217964,
"max": 1.7237415928660533
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.1353760421849012,
"rotation_deg": 0.5166365681634405
},
{
"pair_index": 1,
"translation_m": 0.11487543918383647,
"rotation_deg": 0.5717221816616095
},
{
"pair_index": 2,
"translation_m": 0.06210064976174764,
"rotation_deg": 0.4402983357286552
},
{
"pair_index": 3,
"translation_m": 0.054355548674489614,
"rotation_deg": 0.5821611725015269
},
{
"pair_index": 4,
"translation_m": 0.02391657882546618,
"rotation_deg": 0.32738975448002894
},
{
"pair_index": 5,
"translation_m": 0.07775220171630512,
"rotation_deg": 0.8706732532310371
},
{
"pair_index": 6,
"translation_m": 0.06265840922697155,
"rotation_deg": 0.8002960897011372
},
{
"pair_index": 7,
"translation_m": 0.09282561040685418,
"rotation_deg": 1.0484294819479303
},
{
"pair_index": 8,
"translation_m": 0.034474807960716856,
"rotation_deg": 0.40941928556312257
},
{
"pair_index": 9,
"translation_m": 0.13163863821198593,
"rotation_deg": 1.1065820279922887
},
{
"pair_index": 10,
"translation_m": 0.0018609877360485794,
"rotation_deg": 0.6081452332544832
},
{
"pair_index": 11,
"translation_m": 0.06488404028756532,
"rotation_deg": 0.05192051717362457
},
{
"pair_index": 12,
"translation_m": 0.1147488321233841,
"rotation_deg": 0.9937108406424444
},
{
"pair_index": 13,
"translation_m": 0.05392926910429046,
"rotation_deg": 0.9700546737541248
},
{
"pair_index": 14,
"translation_m": 0.02302185790244543,
"rotation_deg": 1.6149869587730064
},
{
"pair_index": 15,
"translation_m": 0.2330103519747209,
"rotation_deg": 0.5939965715201481
},
{
"pair_index": 16,
"translation_m": 0.2236889315761065,
"rotation_deg": 1.1151964340680336
},
{
"pair_index": 17,
"translation_m": 0.04090994021171706,
"rotation_deg": 0.7785618518380144
},
{
"pair_index": 18,
"translation_m": 0.054652520003134704,
"rotation_deg": 1.124375763416717
},
{
"pair_index": 19,
"translation_m": 0.04547500551567543,
"rotation_deg": 0.6556954445211121
},
{
"pair_index": 20,
"translation_m": 0.02484690940972022,
"rotation_deg": 1.7237415928660533
},
{
"pair_index": 21,
"translation_m": 0.056832852413462566,
"rotation_deg": 0.5831473606925555
},
{
"pair_index": 22,
"translation_m": 0.03998842216950218,
"rotation_deg": 1.124691549503354
},
{
"pair_index": 23,
"translation_m": 0.052224143195848054,
"rotation_deg": 1.1184574012171749
},
{
"pair_index": 24,
"translation_m": 0.06305629062353875,
"rotation_deg": 0.5252019728243343
},
{
"pair_index": 25,
"translation_m": 0.0552093328283033,
"rotation_deg": 0.08705258513790126
},
{
"pair_index": 26,
"translation_m": 0.08502281683725502,
"rotation_deg": 0.6459827373704314
},
{
"pair_index": 27,
"translation_m": 0.03727269737723399,
"rotation_deg": 0.7631660358041192
},
{
"pair_index": 28,
"translation_m": 0.04543722819346571,
"rotation_deg": 1.4218618784137362
},
{
"pair_index": 29,
"translation_m": 0.02559982081388642,
"rotation_deg": 1.388947601285772
},
{
"pair_index": 30,
"translation_m": 0.01827234061769129,
"rotation_deg": 1.206866980510853
},
{
"pair_index": 31,
"translation_m": 0.06863732394647468,
"rotation_deg": 1.4642363140494394
},
{
"pair_index": 32,
"translation_m": 0.04770629220585725,
"rotation_deg": 0.6244903967618446
},
{
"pair_index": 33,
"translation_m": 0.027074935362624366,
"rotation_deg": 1.3688430767407767
},
{
"pair_index": 34,
"translation_m": 0.03301156138156032,
"rotation_deg": 1.4256763243679755
},
{
"pair_index": 35,
"translation_m": 0.054240160043693975,
"rotation_deg": 0.6486412679040612
},
{
"pair_index": 36,
"translation_m": 0.021992835671895014,
"rotation_deg": 0.23769553016909395
},
{
"pair_index": 37,
"translation_m": 0.031890552923517286,
"rotation_deg": 1.0832171246083164
},
{
"pair_index": 38,
"translation_m": 0.025286131886091672,
"rotation_deg": 1.2215923174512224
}
]
},
"bootstrap_std": [
0.003223574650236103,
0.003334649335095665,
0.0016858977028131694,
0.0980155224808408,
0.07461769310738842,
0.11886090357304822
],
"batch1_auxiliary": {
"pairs": 22,
"translation_m": {
"rms": 0.06067269746244947,
"median": 0.042680679229823305,
"p90": 0.090942947259565,
"p95": 0.10135707648063859,
"max": 0.14643003383767556
},
"rotation_deg": {
"rms": 1.002984942285067,
"median": 0.707406938077333,
"p90": 1.573355332434981,
"p95": 1.7757584051966382,
"max": 1.8710372365314285
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.048343805321803004,
"rotation_deg": 0.6668376546913104,
"i": 0,
"j": 3
},
{
"pair_index": 1,
"translation_m": 0.0423483041362295,
"rotation_deg": 1.7859688557628564,
"i": 1,
"j": 2
},
{
"pair_index": 2,
"translation_m": 0.02300615185240312,
"rotation_deg": 1.8710372365314285,
"i": 2,
"j": 3
},
{
"pair_index": 3,
"translation_m": 0.09155252198785023,
"rotation_deg": 0.6733340854508988,
"i": 3,
"j": 4
},
{
"pair_index": 4,
"translation_m": 0.03158045213093479,
"rotation_deg": 0.2310116592109763,
"i": 3,
"j": 5
},
{
"pair_index": 5,
"translation_m": 0.07825296974670955,
"rotation_deg": 0.7403656481818025,
"i": 4,
"j": 5
},
{
"pair_index": 6,
"translation_m": 0.03623050776977002,
"rotation_deg": 0.29976499205053747,
"i": 5,
"j": 6
},
{
"pair_index": 7,
"translation_m": 0.017322045818086197,
"rotation_deg": 1.0428116209013618,
"i": 6,
"j": 7
},
{
"pair_index": 8,
"translation_m": 0.037890995883582496,
"rotation_deg": 0.5003524050137443,
"i": 6,
"j": 9
},
{
"pair_index": 9,
"translation_m": 0.055811972906268326,
"rotation_deg": 0.9711899476368479,
"i": 11,
"j": 12
},
{
"pair_index": 10,
"translation_m": 0.10187310566446957,
"rotation_deg": 0.48973592009907335,
"i": 17,
"j": 18
},
{
"pair_index": 11,
"translation_m": 0.0304808468879537,
"rotation_deg": 1.3239848803794854,
"i": 20,
"j": 21
},
{
"pair_index": 12,
"translation_m": 0.04462456608967399,
"rotation_deg": 0.2812977599385038,
"i": 20,
"j": 22
},
{
"pair_index": 13,
"translation_m": 0.03611683783839059,
"rotation_deg": 0.7096084761069892,
"i": 20,
"j": 23
},
{
"pair_index": 14,
"translation_m": 0.07267248449673575,
"rotation_deg": 0.6614151319251916,
"i": 21,
"j": 24
},
{
"pair_index": 15,
"translation_m": 0.04417889214251473,
"rotation_deg": 0.537164719319421,
"i": 22,
"j": 23
},
{
"pair_index": 16,
"translation_m": 0.020100630082582033,
"rotation_deg": 1.4866116021028042,
"i": 22,
"j": 24
},
{
"pair_index": 17,
"translation_m": 0.04301305432341711,
"rotation_deg": 0.7052054000476768,
"i": 24,
"j": 26
},
{
"pair_index": 18,
"translation_m": 0.0344886352240195,
"rotation_deg": 1.4977147244033493,
"i": 27,
"j": 28
},
{
"pair_index": 19,
"translation_m": 0.14643003383767556,
"rotation_deg": 0.527768319167481,
"i": 33,
"j": 35
},
{
"pair_index": 20,
"translation_m": 0.08545677470499786,
"rotation_deg": 0.7336105280022196,
"i": 34,
"j": 35
},
{
"pair_index": 21,
"translation_m": 0.025212589301108413,
"rotation_deg": 1.5817598444384953,
"i": 35,
"j": 36
}
]
}
},
"separate_backend_results": {
"open3d_gicp": {
"translation_m": [
1.2978831677200011,
-0.0030997734098957433,
0.7217892226151688
],
"rotation_rpy_deg_xyz": [
-0.7572070226288585,
1.1460424368859559,
-0.8797812288284186
]
},
"small_gicp": {
"translation_m": [
1.2996301155160686,
-0.0035647011612625953,
0.7218861757826791
],
"rotation_rpy_deg_xyz": [
-0.7871563544979889,
1.1414557494228486,
-0.9357571721886107
]
}
},
"warning": "AX rotation RMS remains about one degree; this is not centimetre-grade absolute certification."
}
@@ -1,109 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,4.069460063439237,24.612641616688823,0.742135248947238,0.1176855237061111,6,4.407651482488117,0.013825313356667012,0.06962701621921227,1.0,True,
0,2,8.883155687691525,14.186041609026283,0.6152139070398225,0.12748244203393638,6,7.377377816318336,0.010848197501521375,0.23936253539883626,1.0,True,
0,3,5.800196618465403,50.885974946353855,0.7200942109830172,0.11742249635115339,6,5.031984522656203,0.010896220625647894,0.1047126090415015,1.0,True,
1,2,4.892046307546544,10.426600007662538,0.7419273778112828,0.11333156226718596,6,4.459403177706152,0.011700301190659394,0.07531112640817904,1.0,True,
1,3,1.7315947839093804,26.273333329665036,0.860897030953885,0.10772639754828932,6,3.19377614050938,0.0031419813068167823,0.07553165598013784,1.0,True,
1,4,1.6946255625760025,60.40345832959281,0.881875,0.10577894988132426,6,3.092963722704653,0.004385743087150129,0.11984963227966941,1.0,True,
2,3,3.2805755806518446,36.69993333732758,0.7933853118712274,0.10942029884827265,6,3.7004807304428255,0.008219359847113026,0.1277049389798412,1.0,True,
2,4,4.866335020594746,70.83005833725535,0.7129525942515864,0.11823277244188567,6,3.5207832348575936,0.003926646926802803,0.12676782091003777,1.0,True,
2,5,1.8274406190287722,30.448549979291712,0.7434186132740082,0.11591916677323456,6,3.2245913426430066,0.005762289421636631,0.0417195018069042,1.0,True,
3,4,1.75881263274858,34.13012499992777,0.8393594395095709,0.11198421236679276,6,2.9955796261301395,0.016040499501420776,0.10475252258183747,1.0,True,
3,5,2.1020200425132134,67.14848331661929,0.7942090219957748,0.1150960059583273,6,3.466731955810642,0.01716401750472473,0.19985666972488197,1.0,True,
3,6,5.791805311102367,61.163322289150074,0.6534504391468005,0.12221285442048085,6,4.065547866736895,0.010758157432153631,0.2541461196933768,1.0,True,
4,5,3.30592832159088,101.27860831654709,0.7519675356615839,0.11239744207499523,6,3.538427973689991,0.007054246334297592,0.24517862996973167,1.0,True,
4,6,6.453995240105232,95.29344728907782,0.6228429546865301,0.12861898753238143,6,5.239918976750594,0.01896562608787198,0.25933537698897335,1.0,True,
4,7,9.537609568572432,26.32130681988008,0.6193556570268899,0.13116150037214716,6,6.94052030016787,0.01746189088684816,0.36780633600082835,1.0,True,
5,6,3.7769167422851373,5.985161027469212,0.7384387717351092,0.11889495868628594,6,3.6057257786167156,0.00882639593332281,0.0737386250122742,1.0,True,
5,7,6.565348405821576,74.95730149666699,0.6792642983119174,0.11864042030155272,6,4.820407924638239,0.009720083307578809,0.20972540690307045,1.0,True,
5,8,6.3343271669452825,107.99940292217995,0.6467507736253273,0.12542317047495377,6,3.0799731272083655,0.01002585992591628,0.05691592874139322,1.0,True,
6,7,3.1558607172566147,68.97214046919777,0.7476148072764279,0.11288592031143596,6,3.5859463118826977,0.010814191328094169,0.0266481566439959,1.0,True,
6,8,3.3979014114419868,102.01424189471071,0.6804804804804805,0.11508385505331041,6,2.2706877166387276,0.004482804469688638,0.1044466289150781,1.0,True,
6,9,0.28270347875173524,124.11602215258995,0.7371697154471545,0.11682527448508172,6,2.8975705145594723,0.005203408768588573,0.04849411501759064,1.0,True,
7,8,4.78580085090425,33.04210142551296,0.664336521952416,0.11766047279270792,6,2.929070995599858,0.0018478739597912201,0.09974755915747875,1.0,True,
7,9,2.876695741106431,166.91183737821345,0.6077132839890923,0.1180552047396233,6,3.7184930305903685,0.010919730241803961,0.14576304064343415,1.0,True,
7,10,3.5227760858025783,151.5297683494061,0.8481789137380191,0.10615102438506704,6,2.8662462784517695,0.006788694147854834,0.052872203183928275,1.0,True,
8,9,3.469611483011297,133.86973595269956,0.5943661971830986,0.11920565901187036,6,3.7883774947006965,0.0042443197269814905,0.10102914613043958,1.0,True,
8,10,8.226583602288494,175.42813022508852,0.5924719507781397,0.12046539737502422,6,6.6212639471399966,0.012068925048483609,0.06971570917645852,1.0,True,
8,11,1.865267488778983,173.7180803410843,0.6789593030194534,0.1124672015619688,6,2.333957745729889,0.006563181150688944,0.09301162138898374,1.0,True,
9,10,5.488028285806731,41.558394272381754,0.6015824400204186,0.11914584090399423,6,5.490861355062907,0.023677817470035802,0.12091279277864625,1.0,True,
9,11,4.718056434111957,39.84834438838189,0.5936159475145092,0.12220038333634799,6,2.975477564952316,0.010739868846460122,0.11267510434066752,1.0,True,
9,12,4.0664516687652705,11.300244475855449,0.6125753012048193,0.12248054470736866,6,2.850813791288553,0.006578056867618694,0.0648765356282168,1.0,True,
10,11,8.48963239412477,1.7100498839998592,0.5922981366459628,0.1252332170275593,6,3.561970732702301,0.0101884878590875,0.04905586883665525,1.0,True,
10,12,7.8510898708654135,30.258149796526293,0.5541275333662877,0.12481360204475032,6,3.7517795436266956,0.031261518480906504,0.2822575477830575,1.0,True,
10,13,7.303425556850936,93.89697482620899,0.4898572501878287,0.1234709130125476,6,5.011926866876523,0.002887507644989318,0.12861291537137956,1.0,True,
11,12,0.684356309096518,28.54809991252644,0.8033488144707895,0.10033649821782255,6,2.8495161791494152,0.0037957676909615035,0.030493386938618566,1.0,True,
11,13,4.983180422136547,92.18692494220912,0.48959881129271915,0.13002768142853224,6,7.500744983348576,0.04820000634069387,0.21663658694591276,1.0,True,
11,14,7.513058208926106,116.17598776756182,0.5511551155115512,0.1363490361205856,6,8.69179713026475,0.020420243910966678,0.3388561639372597,1.0,True,
12,13,4.470221622128888,63.638825029682685,0.5484109386548411,0.12959344453923985,6,6.303133528073185,0.011857268436770598,0.07665557322523474,1.0,True,
12,14,7.042432348069883,87.62788785503537,0.5823908549191292,0.13141832933236727,6,7.376965777627224,0.010833935971029728,0.22584716035991784,1.0,True,
12,15,9.425648786798952,64.11974003309916,0.5143102812922246,0.13728792513153318,6,10.6657111200586,0.012453922151317217,0.21281971313986298,1.0,True,
13,14,2.6059162757855927,23.989062825352686,0.6649008254281138,0.11829356218038511,6,4.46953470312236,0.010710695211339957,0.05103080008067046,1.0,True,
13,15,4.985522367267706,0.4809150034164723,0.6433105164903546,0.12280456147298241,6,5.48212715248282,0.002079348825514708,0.08095419399489742,1.0,True,
13,16,5.330126890587504,0.570225046299944,0.5092755076460266,0.12767535698436475,6,5.1227851245513,0.01771530501608281,0.1987385247368959,1.0,True,
14,15,2.3845573265941185,23.508147821936216,0.7934889434889435,0.10996554201681306,6,3.5978390564938083,0.010537581931095797,0.18886023198851049,1.0,True,
14,16,7.871327660405588,24.55928787165262,0.5124335024124707,0.1271130929550258,6,6.773046277884419,0.0367675981786339,0.17067950171934768,1.0,True,
14,17,6.334147330965719,0.13339551798522414,0.5997034840622684,0.12123178848040567,6,5.0521521307734485,0.007039639082169618,0.1420706023439064,1.0,True,
15,16,10.188241681839806,1.051140049716416,0.4525684289463817,0.1310762605599437,6,10.161233588287896,0.03028489261617412,0.2306307424740811,1.0,True,
15,17,8.639041695194567,23.641543339921444,0.5419370943584623,0.12926666329467473,6,7.1208904116826295,0.016749087599431237,0.21516518274709787,1.0,True,
15,18,9.620687246763701,76.25281000098852,0.5239486723415068,0.13468232645821807,6,7.765728655204814,0.015824236097669597,0.5418501890608881,1.0,False,forward_reverse_rotation
16,17,1.5531467972267479,24.69268338963786,0.725455688246386,0.11626130134637655,6,2.5539312507809044,0.008173066808338859,0.1459219364983215,1.0,True,
16,18,0.5677742310084086,77.30395005070493,0.7509598157153826,0.11215936550371307,6,2.72958456426664,0.01007065253007885,0.024451533638690782,1.0,True,
16,19,2.9811390265794215,109.91770005034847,0.61725,0.11278472852394253,6,3.8445921585562353,0.013911959588582991,0.09838261866068182,1.0,True,
17,18,0.98603936348044,52.61126666106708,0.7936102236421725,0.10947670477666799,6,2.9613430589728713,0.004348617987976676,0.08578297576648478,1.0,True,
17,19,3.326868398717413,85.22501666071064,0.6638372238172513,0.11457050422944211,6,4.039052271877423,0.011384309901198326,0.08601325248059774,1.0,True,
17,20,1.702964560097507,146.95247656520317,0.6755903523172118,0.11461754659819628,6,2.9771145257220444,0.003070224389531284,0.041777705584758074,1.0,True,
18,19,3.0423123591285863,32.61374999964355,0.7679796696315121,0.10951225500902462,6,3.162387301290471,0.0016757410207260358,0.05240557176555545,1.0,True,
18,20,1.0853574230860805,94.34120990413592,0.7909488300334276,0.11336174254244849,6,2.472783746978993,0.0011490974177271606,0.05798276029492007,1.0,True,
18,21,0.7190584934612743,134.43032499953063,0.7659654868371332,0.11623488568922577,6,2.3334272634442037,0.0007397588392132655,0.049540488476333674,1.0,True,
19,20,1.9962827272376449,61.72745990449234,0.7140883977900553,0.1080327967474786,6,2.8867642059111027,0.008102122424322853,0.0646114560547033,1.0,True,
19,21,3.133843614009462,101.81657499988698,0.6584615384615384,0.10963878686899117,6,2.8691912248684632,0.012913229197399395,0.08080164801156113,1.0,True,
19,22,3.558853688535236,131.87013333415302,0.6261591020009761,0.11484815169172223,6,3.1506020281084415,0.008079663853152794,0.06664730348633674,1.0,True,
20,21,1.4312693216245356,40.08911509539463,0.8130212871903398,0.10717601941116739,6,2.598682401671686,0.003986207075465725,0.014468856174509968,1.0,True,
20,22,2.8745434122269677,70.1426734296607,0.709279368213228,0.11654592484503022,6,3.3550200552976293,0.004732316748497569,0.04653511032479733,1.0,True,
20,23,2.368927629183393,88.7954400941961,0.7151155604993202,0.11440209684434971,6,3.0862044513861178,0.013864191008669256,0.04741774806449891,1.0,True,
21,22,1.9888588003695142,30.053558334266054,0.7434966727162734,0.11011755646689264,6,3.014221192692681,0.0010075959724342985,0.03301381213076696,1.0,True,
21,23,1.9477165743251885,48.70632499880147,0.7529083858458555,0.11149633235838309,6,3.077926485095861,0.001989351505445817,0.010666288445208057,1.0,True,
21,24,3.76075382790461,86.89547500633407,0.7106949236076885,0.11526418670282225,6,3.884216729530811,0.0033123302523526757,0.010450448797924646,1.0,True,
22,23,0.8778876913955667,18.652766664535406,0.8800913132284032,0.0910569893232571,6,2.4100478670835583,0.0032245216994413483,0.016462830433921317,1.0,True,
22,24,2.2510479983846268,56.84191667206801,0.746915842188836,0.11145740682737049,6,2.851886485949151,0.01259476909551429,0.07575320422516746,1.0,True,
22,25,3.452614527841686,105.36038662410485,0.6202953787517865,0.10996904036547328,6,3.4469213215286616,0.01971125516503169,0.10319789629151777,1.0,True,
23,24,1.8212773036309853,38.18915000753262,0.7859065329092244,0.11467536863831725,6,2.8422525641977647,0.011606021246419816,0.08140725284903579,1.0,True,
23,25,2.999856552735995,86.70761995956946,0.6364070141953955,0.11293944470788622,6,3.2389862166172447,0.02314438992859391,0.07068788850704667,1.0,True,
23,26,1.7088514993141615,157.34900000166795,0.6150898203592814,0.11134349524292353,6,3.3995614886239296,0.039322949699257106,0.11562859307450143,1.0,True,
24,25,1.2059352225587747,48.51846995203683,0.7858615254031769,0.11149776506996652,6,2.476851261276463,0.011240124367435099,0.1049569848741807,1.0,True,
24,26,1.1958827550030364,119.15984999413537,0.7456781105429754,0.10341842736085993,6,2.5300194557440525,0.01395883182919579,0.08780591339848752,1.0,True,
24,27,3.786115539231191,149.59794999698258,0.621380846325167,0.10953325191126222,6,3.7363642522268807,0.016637332395867215,0.10353943868518889,1.0,True,
25,26,1.8270495459501794,70.64138004209858,0.8347382167873679,0.10115747661888057,6,3.0333095788198037,0.01268722454395532,0.041403863092781025,1.0,True,
25,27,4.741885618180033,101.07948004494568,0.624412013026173,0.11277808045896366,6,3.9078457957611743,0.025589655197266314,0.15422514597254583,1.0,True,
25,28,3.8640843382258447,141.59343004213218,0.5869307400379506,0.11770827672499123,6,4.799123781945888,0.022027669812843296,0.2897817423195282,1.0,True,
26,27,2.939444415707082,30.43810000284707,0.6580285783482683,0.1098010629341849,6,3.5110471043097586,0.0028795138573569803,0.007524827744647535,1.0,True,
26,28,2.285770454773634,70.95205000003368,0.6673413501607334,0.11114983317987888,6,3.8873517833668108,0.008151782060846088,0.22733511766651973,1.0,True,
26,29,3.6568094249627374,131.92299999999997,0.567654409139593,0.1129321723600836,6,3.929185583738771,0.018525590401292088,0.6411617076853331,1.0,False,forward_reverse_rotation
27,28,2.3764785758716087,40.513949997186636,0.795572759162937,0.10258057277674534,6,3.138921602248635,0.0021193681800924964,0.11642323746608753,1.0,True,
27,29,4.061689152213973,101.48489999715295,0.7440454600411075,0.10506613395932038,6,3.1227510205159508,0.010617830050775887,0.010252586949293494,1.0,True,
27,30,5.033742765789926,178.61309998505533,0.5825184112036702,0.11453665822491028,6,7.650962341345717,2.5431128502617377,2.5742599673919253,1.0,False,forward_reverse_translation;forward_reverse_rotation
28,29,1.7860052935263149,60.970949999966315,0.829172610556348,0.101007907265047,6,3.8068503338763042,0.002050657211153992,0.060432422726630436,1.0,True,
28,30,7.378510482049102,138.09914998778677,0.5397673314339981,0.12193285407050827,6,9.554349687793176,2.3478431587463846,1.5786016001583607,1.0,False,forward_reverse_translation;forward_reverse_rotation
28,31,8.396001985859645,161.15751666826222,0.5045164398410213,0.12642928247376978,6,9.31764609998303,0.020394024193417442,0.4096021180283358,1.0,True,
29,30,8.925911734961222,77.12819998782052,0.5217133364973896,0.12674065647229513,6,8.522188842167411,0.029506475723043876,0.11389243918851435,1.0,True,
29,31,9.936139535050964,100.18656666829587,0.49500421331407246,0.12930714939449198,6,8.914982386428042,0.09268316078142827,0.5769686714189283,1.0,False,forward_reverse_translation;forward_reverse_rotation
29,32,9.719184595429152,159.1482027457047,0.4949034656433625,0.12826034683961704,6,9.48481031343127,0.046228293643484374,0.3497292020413176,0.0,False,multistart_instability
30,31,1.0176267260390144,23.058366680475352,0.8362783988460152,0.09839553390448733,6,3.4866604582833345,0.00292801654357991,0.07029435398214784,1.0,True,
30,32,0.8427696971904044,82.02000275788396,0.8588193030774758,0.09922846236206209,6,3.665055653691297,0.007868521232743847,0.0646663588791515,1.0,True,
30,33,1.1320092061720382,147.1799498371321,0.7985030295829868,0.09950089003213429,6,4.012416511656465,0.002818384349407474,0.04751878128625789,1.0,True,
31,32,0.2771314063233405,58.9616360774086,0.8562575941676792,0.09641015722415121,6,3.1475922536183365,0.00743603397476557,0.05749362415769439,1.0,True,
31,33,0.5409306841643147,124.12158315665668,0.7594021215043394,0.09971190839470828,6,3.924941555652805,0.008658288176145966,0.04699249624411687,1.0,True,
31,34,0.9901318542574941,155.5976733552555,0.7827868852459017,0.09387821156002771,6,3.677769944550314,0.001760438169327793,0.07141137968742438,0.0,False,multistart_instability
32,33,0.38765596924480794,65.15994707924807,0.859390009606148,0.09596734045987164,6,3.3457711754162425,0.007599187780672587,0.08086834965344242,1.0,True,
32,34,1.0327853226589305,96.63603727784675,0.8306916426512968,0.09663160733562838,6,3.561692133355112,0.008708468398558678,0.031578495955716095,1.0,True,
32,35,1.1947451269258382,131.6892972449946,0.8055028462998103,0.09329597448562056,6,3.202004817860687,0.002684669665422271,0.0241000049832631,1.0,True,
33,34,0.7453275493729801,31.47609019859864,0.8550154872527996,0.09764473733600805,6,3.153108280248987,0.005560284067502743,0.07666131775182662,1.0,True,
33,35,1.0924186931915323,66.52935016574651,0.8344316309719935,0.08989959394950665,6,3.014281766333208,0.0013737288250339052,0.028590963377823297,1.0,True,
33,36,3.335020341384374,123.21987515531416,0.7655961609449982,0.10046425727734096,6,3.222688396070449,0.012544124903927084,0.05831564134554671,1.0,True,
34,35,0.6186130964444055,35.05325996714787,0.8692633560837845,0.08711586696140278,6,2.9228018947680083,0.006834102546614079,0.04740606842462777,1.0,True,
34,36,3.114273556969299,91.74378495671547,0.771256306140027,0.09836949441930562,6,3.7389528980898077,0.004832468349243269,0.046439990812924645,1.0,True,
34,37,2.8155528331227235,126.08390993626574,0.722881252293017,0.10001696647063055,6,3.8298681993003196,0.0035748664819913244,0.09211471145637762,1.0,True,
35,36,2.4989423629184655,56.69052498956759,0.7697728101081278,0.09462474495647087,6,3.9667933176330195,0.004833519542267701,0.07989067847153554,1.0,True,
35,37,2.2182956249874577,91.03064996911786,0.7351769110010868,0.09626480689856566,6,3.604883740945235,0.00826951342075784,0.05772015666601106,1.0,True,
36,37,0.5129211474320938,34.34012497955026,0.8790139064475347,0.08686306972783016,6,2.86419132160936,0.0018743847744752261,0.0426177033120738,1.0,True,
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 4.069460063439237 24.612641616688823 0.742135248947238 0.1176855237061111 6 4.407651482488117 0.013825313356667012 0.06962701621921227 1.0 True
3 0 2 8.883155687691525 14.186041609026283 0.6152139070398225 0.12748244203393638 6 7.377377816318336 0.010848197501521375 0.23936253539883626 1.0 True
4 0 3 5.800196618465403 50.885974946353855 0.7200942109830172 0.11742249635115339 6 5.031984522656203 0.010896220625647894 0.1047126090415015 1.0 True
5 1 2 4.892046307546544 10.426600007662538 0.7419273778112828 0.11333156226718596 6 4.459403177706152 0.011700301190659394 0.07531112640817904 1.0 True
6 1 3 1.7315947839093804 26.273333329665036 0.860897030953885 0.10772639754828932 6 3.19377614050938 0.0031419813068167823 0.07553165598013784 1.0 True
7 1 4 1.6946255625760025 60.40345832959281 0.881875 0.10577894988132426 6 3.092963722704653 0.004385743087150129 0.11984963227966941 1.0 True
8 2 3 3.2805755806518446 36.69993333732758 0.7933853118712274 0.10942029884827265 6 3.7004807304428255 0.008219359847113026 0.1277049389798412 1.0 True
9 2 4 4.866335020594746 70.83005833725535 0.7129525942515864 0.11823277244188567 6 3.5207832348575936 0.003926646926802803 0.12676782091003777 1.0 True
10 2 5 1.8274406190287722 30.448549979291712 0.7434186132740082 0.11591916677323456 6 3.2245913426430066 0.005762289421636631 0.0417195018069042 1.0 True
11 3 4 1.75881263274858 34.13012499992777 0.8393594395095709 0.11198421236679276 6 2.9955796261301395 0.016040499501420776 0.10475252258183747 1.0 True
12 3 5 2.1020200425132134 67.14848331661929 0.7942090219957748 0.1150960059583273 6 3.466731955810642 0.01716401750472473 0.19985666972488197 1.0 True
13 3 6 5.791805311102367 61.163322289150074 0.6534504391468005 0.12221285442048085 6 4.065547866736895 0.010758157432153631 0.2541461196933768 1.0 True
14 4 5 3.30592832159088 101.27860831654709 0.7519675356615839 0.11239744207499523 6 3.538427973689991 0.007054246334297592 0.24517862996973167 1.0 True
15 4 6 6.453995240105232 95.29344728907782 0.6228429546865301 0.12861898753238143 6 5.239918976750594 0.01896562608787198 0.25933537698897335 1.0 True
16 4 7 9.537609568572432 26.32130681988008 0.6193556570268899 0.13116150037214716 6 6.94052030016787 0.01746189088684816 0.36780633600082835 1.0 True
17 5 6 3.7769167422851373 5.985161027469212 0.7384387717351092 0.11889495868628594 6 3.6057257786167156 0.00882639593332281 0.0737386250122742 1.0 True
18 5 7 6.565348405821576 74.95730149666699 0.6792642983119174 0.11864042030155272 6 4.820407924638239 0.009720083307578809 0.20972540690307045 1.0 True
19 5 8 6.3343271669452825 107.99940292217995 0.6467507736253273 0.12542317047495377 6 3.0799731272083655 0.01002585992591628 0.05691592874139322 1.0 True
20 6 7 3.1558607172566147 68.97214046919777 0.7476148072764279 0.11288592031143596 6 3.5859463118826977 0.010814191328094169 0.0266481566439959 1.0 True
21 6 8 3.3979014114419868 102.01424189471071 0.6804804804804805 0.11508385505331041 6 2.2706877166387276 0.004482804469688638 0.1044466289150781 1.0 True
22 6 9 0.28270347875173524 124.11602215258995 0.7371697154471545 0.11682527448508172 6 2.8975705145594723 0.005203408768588573 0.04849411501759064 1.0 True
23 7 8 4.78580085090425 33.04210142551296 0.664336521952416 0.11766047279270792 6 2.929070995599858 0.0018478739597912201 0.09974755915747875 1.0 True
24 7 9 2.876695741106431 166.91183737821345 0.6077132839890923 0.1180552047396233 6 3.7184930305903685 0.010919730241803961 0.14576304064343415 1.0 True
25 7 10 3.5227760858025783 151.5297683494061 0.8481789137380191 0.10615102438506704 6 2.8662462784517695 0.006788694147854834 0.052872203183928275 1.0 True
26 8 9 3.469611483011297 133.86973595269956 0.5943661971830986 0.11920565901187036 6 3.7883774947006965 0.0042443197269814905 0.10102914613043958 1.0 True
27 8 10 8.226583602288494 175.42813022508852 0.5924719507781397 0.12046539737502422 6 6.6212639471399966 0.012068925048483609 0.06971570917645852 1.0 True
28 8 11 1.865267488778983 173.7180803410843 0.6789593030194534 0.1124672015619688 6 2.333957745729889 0.006563181150688944 0.09301162138898374 1.0 True
29 9 10 5.488028285806731 41.558394272381754 0.6015824400204186 0.11914584090399423 6 5.490861355062907 0.023677817470035802 0.12091279277864625 1.0 True
30 9 11 4.718056434111957 39.84834438838189 0.5936159475145092 0.12220038333634799 6 2.975477564952316 0.010739868846460122 0.11267510434066752 1.0 True
31 9 12 4.0664516687652705 11.300244475855449 0.6125753012048193 0.12248054470736866 6 2.850813791288553 0.006578056867618694 0.0648765356282168 1.0 True
32 10 11 8.48963239412477 1.7100498839998592 0.5922981366459628 0.1252332170275593 6 3.561970732702301 0.0101884878590875 0.04905586883665525 1.0 True
33 10 12 7.8510898708654135 30.258149796526293 0.5541275333662877 0.12481360204475032 6 3.7517795436266956 0.031261518480906504 0.2822575477830575 1.0 True
34 10 13 7.303425556850936 93.89697482620899 0.4898572501878287 0.1234709130125476 6 5.011926866876523 0.002887507644989318 0.12861291537137956 1.0 True
35 11 12 0.684356309096518 28.54809991252644 0.8033488144707895 0.10033649821782255 6 2.8495161791494152 0.0037957676909615035 0.030493386938618566 1.0 True
36 11 13 4.983180422136547 92.18692494220912 0.48959881129271915 0.13002768142853224 6 7.500744983348576 0.04820000634069387 0.21663658694591276 1.0 True
37 11 14 7.513058208926106 116.17598776756182 0.5511551155115512 0.1363490361205856 6 8.69179713026475 0.020420243910966678 0.3388561639372597 1.0 True
38 12 13 4.470221622128888 63.638825029682685 0.5484109386548411 0.12959344453923985 6 6.303133528073185 0.011857268436770598 0.07665557322523474 1.0 True
39 12 14 7.042432348069883 87.62788785503537 0.5823908549191292 0.13141832933236727 6 7.376965777627224 0.010833935971029728 0.22584716035991784 1.0 True
40 12 15 9.425648786798952 64.11974003309916 0.5143102812922246 0.13728792513153318 6 10.6657111200586 0.012453922151317217 0.21281971313986298 1.0 True
41 13 14 2.6059162757855927 23.989062825352686 0.6649008254281138 0.11829356218038511 6 4.46953470312236 0.010710695211339957 0.05103080008067046 1.0 True
42 13 15 4.985522367267706 0.4809150034164723 0.6433105164903546 0.12280456147298241 6 5.48212715248282 0.002079348825514708 0.08095419399489742 1.0 True
43 13 16 5.330126890587504 0.570225046299944 0.5092755076460266 0.12767535698436475 6 5.1227851245513 0.01771530501608281 0.1987385247368959 1.0 True
44 14 15 2.3845573265941185 23.508147821936216 0.7934889434889435 0.10996554201681306 6 3.5978390564938083 0.010537581931095797 0.18886023198851049 1.0 True
45 14 16 7.871327660405588 24.55928787165262 0.5124335024124707 0.1271130929550258 6 6.773046277884419 0.0367675981786339 0.17067950171934768 1.0 True
46 14 17 6.334147330965719 0.13339551798522414 0.5997034840622684 0.12123178848040567 6 5.0521521307734485 0.007039639082169618 0.1420706023439064 1.0 True
47 15 16 10.188241681839806 1.051140049716416 0.4525684289463817 0.1310762605599437 6 10.161233588287896 0.03028489261617412 0.2306307424740811 1.0 True
48 15 17 8.639041695194567 23.641543339921444 0.5419370943584623 0.12926666329467473 6 7.1208904116826295 0.016749087599431237 0.21516518274709787 1.0 True
49 15 18 9.620687246763701 76.25281000098852 0.5239486723415068 0.13468232645821807 6 7.765728655204814 0.015824236097669597 0.5418501890608881 1.0 False forward_reverse_rotation
50 16 17 1.5531467972267479 24.69268338963786 0.725455688246386 0.11626130134637655 6 2.5539312507809044 0.008173066808338859 0.1459219364983215 1.0 True
51 16 18 0.5677742310084086 77.30395005070493 0.7509598157153826 0.11215936550371307 6 2.72958456426664 0.01007065253007885 0.024451533638690782 1.0 True
52 16 19 2.9811390265794215 109.91770005034847 0.61725 0.11278472852394253 6 3.8445921585562353 0.013911959588582991 0.09838261866068182 1.0 True
53 17 18 0.98603936348044 52.61126666106708 0.7936102236421725 0.10947670477666799 6 2.9613430589728713 0.004348617987976676 0.08578297576648478 1.0 True
54 17 19 3.326868398717413 85.22501666071064 0.6638372238172513 0.11457050422944211 6 4.039052271877423 0.011384309901198326 0.08601325248059774 1.0 True
55 17 20 1.702964560097507 146.95247656520317 0.6755903523172118 0.11461754659819628 6 2.9771145257220444 0.003070224389531284 0.041777705584758074 1.0 True
56 18 19 3.0423123591285863 32.61374999964355 0.7679796696315121 0.10951225500902462 6 3.162387301290471 0.0016757410207260358 0.05240557176555545 1.0 True
57 18 20 1.0853574230860805 94.34120990413592 0.7909488300334276 0.11336174254244849 6 2.472783746978993 0.0011490974177271606 0.05798276029492007 1.0 True
58 18 21 0.7190584934612743 134.43032499953063 0.7659654868371332 0.11623488568922577 6 2.3334272634442037 0.0007397588392132655 0.049540488476333674 1.0 True
59 19 20 1.9962827272376449 61.72745990449234 0.7140883977900553 0.1080327967474786 6 2.8867642059111027 0.008102122424322853 0.0646114560547033 1.0 True
60 19 21 3.133843614009462 101.81657499988698 0.6584615384615384 0.10963878686899117 6 2.8691912248684632 0.012913229197399395 0.08080164801156113 1.0 True
61 19 22 3.558853688535236 131.87013333415302 0.6261591020009761 0.11484815169172223 6 3.1506020281084415 0.008079663853152794 0.06664730348633674 1.0 True
62 20 21 1.4312693216245356 40.08911509539463 0.8130212871903398 0.10717601941116739 6 2.598682401671686 0.003986207075465725 0.014468856174509968 1.0 True
63 20 22 2.8745434122269677 70.1426734296607 0.709279368213228 0.11654592484503022 6 3.3550200552976293 0.004732316748497569 0.04653511032479733 1.0 True
64 20 23 2.368927629183393 88.7954400941961 0.7151155604993202 0.11440209684434971 6 3.0862044513861178 0.013864191008669256 0.04741774806449891 1.0 True
65 21 22 1.9888588003695142 30.053558334266054 0.7434966727162734 0.11011755646689264 6 3.014221192692681 0.0010075959724342985 0.03301381213076696 1.0 True
66 21 23 1.9477165743251885 48.70632499880147 0.7529083858458555 0.11149633235838309 6 3.077926485095861 0.001989351505445817 0.010666288445208057 1.0 True
67 21 24 3.76075382790461 86.89547500633407 0.7106949236076885 0.11526418670282225 6 3.884216729530811 0.0033123302523526757 0.010450448797924646 1.0 True
68 22 23 0.8778876913955667 18.652766664535406 0.8800913132284032 0.0910569893232571 6 2.4100478670835583 0.0032245216994413483 0.016462830433921317 1.0 True
69 22 24 2.2510479983846268 56.84191667206801 0.746915842188836 0.11145740682737049 6 2.851886485949151 0.01259476909551429 0.07575320422516746 1.0 True
70 22 25 3.452614527841686 105.36038662410485 0.6202953787517865 0.10996904036547328 6 3.4469213215286616 0.01971125516503169 0.10319789629151777 1.0 True
71 23 24 1.8212773036309853 38.18915000753262 0.7859065329092244 0.11467536863831725 6 2.8422525641977647 0.011606021246419816 0.08140725284903579 1.0 True
72 23 25 2.999856552735995 86.70761995956946 0.6364070141953955 0.11293944470788622 6 3.2389862166172447 0.02314438992859391 0.07068788850704667 1.0 True
73 23 26 1.7088514993141615 157.34900000166795 0.6150898203592814 0.11134349524292353 6 3.3995614886239296 0.039322949699257106 0.11562859307450143 1.0 True
74 24 25 1.2059352225587747 48.51846995203683 0.7858615254031769 0.11149776506996652 6 2.476851261276463 0.011240124367435099 0.1049569848741807 1.0 True
75 24 26 1.1958827550030364 119.15984999413537 0.7456781105429754 0.10341842736085993 6 2.5300194557440525 0.01395883182919579 0.08780591339848752 1.0 True
76 24 27 3.786115539231191 149.59794999698258 0.621380846325167 0.10953325191126222 6 3.7363642522268807 0.016637332395867215 0.10353943868518889 1.0 True
77 25 26 1.8270495459501794 70.64138004209858 0.8347382167873679 0.10115747661888057 6 3.0333095788198037 0.01268722454395532 0.041403863092781025 1.0 True
78 25 27 4.741885618180033 101.07948004494568 0.624412013026173 0.11277808045896366 6 3.9078457957611743 0.025589655197266314 0.15422514597254583 1.0 True
79 25 28 3.8640843382258447 141.59343004213218 0.5869307400379506 0.11770827672499123 6 4.799123781945888 0.022027669812843296 0.2897817423195282 1.0 True
80 26 27 2.939444415707082 30.43810000284707 0.6580285783482683 0.1098010629341849 6 3.5110471043097586 0.0028795138573569803 0.007524827744647535 1.0 True
81 26 28 2.285770454773634 70.95205000003368 0.6673413501607334 0.11114983317987888 6 3.8873517833668108 0.008151782060846088 0.22733511766651973 1.0 True
82 26 29 3.6568094249627374 131.92299999999997 0.567654409139593 0.1129321723600836 6 3.929185583738771 0.018525590401292088 0.6411617076853331 1.0 False forward_reverse_rotation
83 27 28 2.3764785758716087 40.513949997186636 0.795572759162937 0.10258057277674534 6 3.138921602248635 0.0021193681800924964 0.11642323746608753 1.0 True
84 27 29 4.061689152213973 101.48489999715295 0.7440454600411075 0.10506613395932038 6 3.1227510205159508 0.010617830050775887 0.010252586949293494 1.0 True
85 27 30 5.033742765789926 178.61309998505533 0.5825184112036702 0.11453665822491028 6 7.650962341345717 2.5431128502617377 2.5742599673919253 1.0 False forward_reverse_translation;forward_reverse_rotation
86 28 29 1.7860052935263149 60.970949999966315 0.829172610556348 0.101007907265047 6 3.8068503338763042 0.002050657211153992 0.060432422726630436 1.0 True
87 28 30 7.378510482049102 138.09914998778677 0.5397673314339981 0.12193285407050827 6 9.554349687793176 2.3478431587463846 1.5786016001583607 1.0 False forward_reverse_translation;forward_reverse_rotation
88 28 31 8.396001985859645 161.15751666826222 0.5045164398410213 0.12642928247376978 6 9.31764609998303 0.020394024193417442 0.4096021180283358 1.0 True
89 29 30 8.925911734961222 77.12819998782052 0.5217133364973896 0.12674065647229513 6 8.522188842167411 0.029506475723043876 0.11389243918851435 1.0 True
90 29 31 9.936139535050964 100.18656666829587 0.49500421331407246 0.12930714939449198 6 8.914982386428042 0.09268316078142827 0.5769686714189283 1.0 False forward_reverse_translation;forward_reverse_rotation
91 29 32 9.719184595429152 159.1482027457047 0.4949034656433625 0.12826034683961704 6 9.48481031343127 0.046228293643484374 0.3497292020413176 0.0 False multistart_instability
92 30 31 1.0176267260390144 23.058366680475352 0.8362783988460152 0.09839553390448733 6 3.4866604582833345 0.00292801654357991 0.07029435398214784 1.0 True
93 30 32 0.8427696971904044 82.02000275788396 0.8588193030774758 0.09922846236206209 6 3.665055653691297 0.007868521232743847 0.0646663588791515 1.0 True
94 30 33 1.1320092061720382 147.1799498371321 0.7985030295829868 0.09950089003213429 6 4.012416511656465 0.002818384349407474 0.04751878128625789 1.0 True
95 31 32 0.2771314063233405 58.9616360774086 0.8562575941676792 0.09641015722415121 6 3.1475922536183365 0.00743603397476557 0.05749362415769439 1.0 True
96 31 33 0.5409306841643147 124.12158315665668 0.7594021215043394 0.09971190839470828 6 3.924941555652805 0.008658288176145966 0.04699249624411687 1.0 True
97 31 34 0.9901318542574941 155.5976733552555 0.7827868852459017 0.09387821156002771 6 3.677769944550314 0.001760438169327793 0.07141137968742438 0.0 False multistart_instability
98 32 33 0.38765596924480794 65.15994707924807 0.859390009606148 0.09596734045987164 6 3.3457711754162425 0.007599187780672587 0.08086834965344242 1.0 True
99 32 34 1.0327853226589305 96.63603727784675 0.8306916426512968 0.09663160733562838 6 3.561692133355112 0.008708468398558678 0.031578495955716095 1.0 True
100 32 35 1.1947451269258382 131.6892972449946 0.8055028462998103 0.09329597448562056 6 3.202004817860687 0.002684669665422271 0.0241000049832631 1.0 True
101 33 34 0.7453275493729801 31.47609019859864 0.8550154872527996 0.09764473733600805 6 3.153108280248987 0.005560284067502743 0.07666131775182662 1.0 True
102 33 35 1.0924186931915323 66.52935016574651 0.8344316309719935 0.08989959394950665 6 3.014281766333208 0.0013737288250339052 0.028590963377823297 1.0 True
103 33 36 3.335020341384374 123.21987515531416 0.7655961609449982 0.10046425727734096 6 3.222688396070449 0.012544124903927084 0.05831564134554671 1.0 True
104 34 35 0.6186130964444055 35.05325996714787 0.8692633560837845 0.08711586696140278 6 2.9228018947680083 0.006834102546614079 0.04740606842462777 1.0 True
105 34 36 3.114273556969299 91.74378495671547 0.771256306140027 0.09836949441930562 6 3.7389528980898077 0.004832468349243269 0.046439990812924645 1.0 True
106 34 37 2.8155528331227235 126.08390993626574 0.722881252293017 0.10001696647063055 6 3.8298681993003196 0.0035748664819913244 0.09211471145637762 1.0 True
107 35 36 2.4989423629184655 56.69052498956759 0.7697728101081278 0.09462474495647087 6 3.9667933176330195 0.004833519542267701 0.07989067847153554 1.0 True
108 35 37 2.2182956249874577 91.03064996911786 0.7351769110010868 0.09626480689856566 6 3.604883740945235 0.00826951342075784 0.05772015666601106 1.0 True
109 36 37 0.5129211474320938 34.34012497955026 0.8790139064475347 0.08686306972783016 6 2.86419132160936 0.0018743847744752261 0.0426177033120738 1.0 True
File diff suppressed because it is too large Load Diff
@@ -1,109 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,0.503306788400079,13.198324485965863,0.7947725072604066,0.09714510386272111,6,3.1645559924308744,0.00040681040655899406,0.015836974306118006,1.0,True,
0,2,1.1601020961002007,26.306295080591493,0.8196783588704571,0.10111548255452249,6,3.1496351272437915,0.0024786662018318395,0.04305117802148083,1.0,True,
0,3,1.1328421148283978,41.74134818989305,0.8170202208162759,0.10132889132333661,6,2.9636847958606816,0.001763337668740155,0.0152261810177797,1.0,True,
1,2,0.6927979865343085,13.107970594625625,0.7847728726807421,0.08513837010948266,6,2.6465075635845983,0.003621881376895638,0.011153493139183525,1.0,True,
1,3,0.7002295454253883,28.543023703927183,0.7885699962401304,0.09713251502799032,6,2.6341764735488145,0.0014094469663425105,0.02902143941632062,1.0,True,
1,4,0.8045641659338967,57.731023816949346,0.7363658899355479,0.09863727794945644,6,2.7377680197189993,0.011592408190980286,0.17084480097436408,1.0,True,
2,3,0.13949776780243606,15.435053109301553,0.918286915396742,0.07288259780013887,6,2.6383381348446657,0.002273707715582919,0.0026923349652342365,1.0,True,
2,4,0.6701726006967371,44.62305322232371,0.8370341514089079,0.09441127521663696,6,3.0939727970407334,0.0041401597740440875,0.03075174550917053,1.0,True,
2,5,0.8004226998626774,62.96656300910673,0.8235371293623721,0.10626795357026747,6,2.8027866429960917,0.009148796674106823,0.05256412309062332,1.0,True,
3,4,0.5366157827594368,29.188000113022152,0.8850603941513032,0.07613142655207121,6,2.6417590251999084,0.0013904645484531576,0.0259404694028417,1.0,True,
3,5,0.6760093701980526,47.53150989980517,0.8740046236835346,0.09072202522560696,6,2.686157540984516,0.006509933107990933,0.02545212192512678,1.0,True,
3,6,1.4361364806393455,80.09091141471853,0.6795928884308168,0.10271649349323747,6,3.008166890660092,0.00828154435242913,0.026486510290724834,1.0,True,
4,5,0.17861948949299924,18.343509786783002,0.8684444444444445,0.0784387700526441,6,2.6861954442048104,0.0025072579888539386,0.021042298559759365,1.0,True,
4,6,1.5807073315069207,50.90291130169636,0.6781301745000636,0.10313081772493418,6,2.8455217243212387,0.003271195715147848,0.14716032493381534,1.0,True,
4,7,1.7804201387535592,75.18775779751417,0.7873548387096774,0.09891997778736471,6,3.1802938248442474,0.004633577062239209,0.04472721629193465,1.0,True,
5,6,1.5316987521992935,32.55940151491337,0.6911991765311374,0.10152400788085783,6,3.2393513551418907,0.005288907067525738,0.05494235971756111,1.0,True,
5,7,1.6091514152462776,56.844248010731185,0.7747360187719984,0.09121609616459708,6,3.123473300580222,0.00421464356720393,0.015634168997181876,1.0,True,
5,8,1.1872485760158462,85.67585439000777,0.7829477514946712,0.10577559680144696,6,3.109219016133088,0.0033105282814613057,0.030813019102438145,1.0,True,
6,7,1.5692385974903325,24.284846495817817,0.7347979599843075,0.10196810239533251,6,3.458846242963224,0.004020707752206965,0.039850323489805044,1.0,True,
6,8,0.5035712140385419,53.11645287509441,0.7155149934810952,0.10460245111398395,6,3.0180670962260874,0.0072368624874882504,0.0055907688631446776,1.0,True,
6,9,0.8508108569116883,66.44324365209327,0.6825438366919655,0.10495957402394829,6,3.140616320789838,0.00430894236478819,0.13911475434755866,1.0,True,
7,8,1.1230406357307108,28.831606379276582,0.8127890077949531,0.09942756972076687,6,2.9436564519387325,0.008316114154115147,0.01814737917470093,1.0,True,
7,9,0.7186795671679719,42.158397156275456,0.8193873491579367,0.09507291602212191,6,3.5012345051117295,0.006751593996528964,0.029293578235221863,1.0,True,
7,10,0.39293571356254015,58.25702665650087,0.7940216681895313,0.10356080767641777,6,2.817840996766873,0.006883567504360684,0.016492683422577963,1.0,True,
8,9,0.4407680716864947,13.326790776998866,0.8581438392384981,0.09484304022144129,6,3.219825075793889,0.007253035671159373,0.024252719250072975,1.0,True,
8,10,0.968166048306331,29.425420277224287,0.8015356585111921,0.10152298131640612,6,3.7446585062478155,0.0017523919908150464,0.05042176209078739,1.0,True,
8,11,3.0540124804140354,66.34511043540417,0.688687555052221,0.10536230082368817,6,4.696625415382456,0.0036281146181207165,0.013078005975049522,1.0,True,
9,10,0.5276649044820116,16.098629500225417,0.8560606060606061,0.09594368034796862,6,3.2778548903058375,0.010491037599418197,0.0599937188173442,1.0,True,
9,11,2.680593454060616,53.0183196584053,0.6966788735951509,0.10384409271666459,6,4.3419055531595605,0.009543265092514783,0.09977883713501384,1.0,True,
9,12,3.2944321799753977,73.22024906015783,0.6579243162233046,0.10621203405076814,6,4.293885241325807,0.0028782078295197843,0.0743495992598884,1.0,True,
10,11,2.249454986440387,36.91969015817989,0.729195173529046,0.10869447817964137,6,4.322382098282597,0.0028206125960216254,0.014140069566934874,1.0,True,
10,12,2.8783779741216167,57.12161955993242,0.6945982527377876,0.10596349826421764,6,4.493186221276381,0.005660464094292755,0.08952914345108036,1.0,True,
10,13,3.84803303865234,78.07081297783375,0.6530587074494326,0.1098871098886565,6,4.997105968288151,0.009441275754405344,0.06902225135435515,1.0,True,
11,12,0.636223282239137,20.20192940175253,0.865792610250298,0.09248705530398661,6,3.4380496057859116,0.007654923324833218,0.03083951917063289,1.0,True,
11,13,2.0145868546459504,41.151122819653864,0.8217656194003106,0.10443913508460159,6,3.957969004992005,0.0019958122994113434,0.04243931133970266,1.0,True,
11,14,1.2405786051647103,116.67752660647822,0.7462918660287081,0.10754571546972236,6,4.619857754383166,0.0030226348073827927,0.05528144266002643,1.0,True,
12,13,1.5928240921286525,20.949193417901323,0.8347322378531742,0.10791137431619166,6,3.358528082155117,0.0033753816186126483,0.015427430722607398,1.0,True,
12,14,0.6774809171975742,96.47559720472566,0.7626657196969697,0.10926443071446633,6,3.847953795189004,0.0011083901763643633,0.03408686226954418,1.0,True,
12,15,1.8892292086221258,131.14857460490867,0.7404945183111733,0.10470183850479874,6,3.1806996321008576,0.008442575945215317,0.02844707164454242,1.0,True,
13,14,0.9721300146850552,75.52640378682433,0.8138569225293629,0.1125369920515294,6,3.2147734820704015,0.005457899756974233,0.04250371025579654,1.0,True,
13,15,2.426469315960194,110.19938118700728,0.7853886616014026,0.10710393317615087,6,2.4365756135744383,0.0023363953219779758,0.003679886698275418,1.0,True,
13,16,4.157137927296689,135.66277163100625,0.7461059190031153,0.10791684095774041,6,2.2141337125272007,0.0023169831632091926,0.02473862097872449,1.0,True,
14,15,2.176233486689304,34.672977400182965,0.7456694756554307,0.11049010248131722,6,2.3376174680383377,0.0027632919724097076,0.05272762900968177,1.0,True,
14,16,3.79947855245853,60.13636784418198,0.7114577084583084,0.11170286188791147,6,2.479974772421199,0.0043726035924820505,0.11525585711885118,1.0,True,
14,17,6.190474035537447,15.261944565117341,0.6170986278878855,0.11803645680912848,6,5.206426513766648,0.02802927019183766,0.10048860643286558,1.0,True,
15,16,1.7328875589135755,25.463390443999018,0.7687034629476421,0.09834033850996364,6,2.3729567416081196,0.004926598691892943,0.10049788043616295,1.0,True,
15,17,8.352264787019024,19.411032835065622,0.5596902808274586,0.12817180913542037,6,8.442537153126064,0.04660873899639204,0.08128930035257874,1.0,True,
15,18,6.346037230040679,25.592965647994788,0.6134687462217386,0.11861991782546771,6,5.933642175309751,0.006137337753783083,0.040498570689394164,1.0,True,
16,17,9.849975560032544,44.87442327906463,0.589649455234486,0.12715782204597983,6,10.240964391202342,0.016491489842564398,0.29283865924681673,1.0,True,
16,18,7.9099649541476005,0.12957520399577063,0.6441329694864798,0.11977657776801591,6,7.973620675877663,0.01581702082704062,0.07681086634765077,1.0,True,
16,19,6.609737623005951,34.172763646089344,0.642055375405338,0.11922626532224312,6,5.690723701436521,0.01936736899083179,0.22155509936605944,1.0,True,
17,18,2.081596655954183,45.003998483060414,0.761206687666586,0.10248796635270672,6,4.778521884225018,0.003602819302929225,0.04280787772842571,1.0,True,
17,19,4.34928579963815,79.047186925154,0.6654080389768575,0.10560001932239894,6,4.647516519431804,0.015683211248127868,0.18051709633786264,1.0,True,
17,20,4.4206846692505035,169.37257900760153,0.6377810007251632,0.11215519048187066,6,5.178731668470772,0.016926609942259613,0.20634229894075337,1.0,True,
18,19,3.459222336215112,34.04318844209358,0.7556208482370976,0.10994458141969204,6,3.594858191146124,0.004654350735545165,0.12873243616635754,1.0,True,
18,20,4.94806857498194,124.36858052454107,0.6686517992904207,0.11525187440612464,6,4.510107356424666,0.022993775653731053,0.1013964892640344,1.0,True,
18,21,6.5847443121227816,175.25342056617163,0.5905541093343251,0.1262853354637165,6,5.942345924349615,0.021857815102479028,0.4259066161744867,1.0,True,
19,20,3.031758915138065,90.32539208244746,0.7420998980632009,0.12052023632629244,6,3.3463968507926847,0.012566250876576632,0.08500209892702067,1.0,True,
19,21,3.732423384308353,141.21023212407198,0.6515019319456562,0.12055764747498063,6,4.076270140910382,0.007120603737667027,0.05561876226347328,1.0,True,
19,22,6.37255124464243,175.13200822775684,0.5905501782985226,0.12548545004843537,6,5.705777346141328,0.005772061596466365,0.10356450735473072,1.0,True,
20,21,2.057726146362386,50.884840041624386,0.7791517249907258,0.1109933103332085,6,3.525554312141476,0.004882992437392809,0.09954673132586826,1.0,True,
20,22,4.388457127616061,94.54259968980386,0.6575290550783224,0.11893104898070972,6,4.203674621017558,0.005511015274661758,0.13108161960065734,1.0,True,
20,23,8.256548639868363,126.4903843444735,0.5799237611181702,0.12732395079162134,6,6.120182481367245,0.02421237470645105,0.2728497258921342,1.0,True,
21,22,2.665930009787955,43.65775964817948,0.7379804721295267,0.11301282071283571,6,4.252070885311591,0.005342970038949662,0.023692959917636515,1.0,True,
21,23,6.670349114267683,75.60554430284907,0.6154133001864512,0.11796945645750438,6,5.503558762374886,0.021862964848253088,0.18671115674675795,1.0,True,
21,24,4.0761181240750135,118.87493116884215,0.6688601936925751,0.11271893154362743,6,4.6072424136923145,0.017882487871653564,0.11231417140662198,1.0,True,
22,23,4.005228418650323,31.947784654669576,0.7269494538989077,0.11696827793053062,6,3.9354343956207307,0.036708381465019306,0.17149160359500737,1.0,True,
22,24,1.4231800329066895,75.21717152066267,0.7625269567423569,0.11122908154278312,6,2.9923801902407035,0.033708002403797385,0.18898419347187523,1.0,True,
22,25,0.9824487562406952,165.63918634111403,0.7063042657606644,0.1109686247290255,6,3.260862218157852,0.0237546710240931,0.20388046327310663,1.0,True,
23,24,2.6253440212817054,43.26938686599312,0.785377057547531,0.11259637754562075,6,3.1689777161216344,0.008388924730327863,0.09824473511740778,1.0,True,
23,25,4.30404511575867,133.69140168644446,0.682445260093659,0.11585305930039552,6,4.459805342354154,0.03262070035564156,0.26820774135203534,1.0,True,
23,26,6.580252552934289,159.52196102005493,0.6190717727618564,0.1225437625254746,6,4.748664745468758,0.020450511219618477,0.11876511292532045,1.0,True,
24,25,2.0155105379126432,90.4220148204513,0.7662452591656131,0.10751986617832841,6,3.2073569479179214,0.020801978066425954,0.11499836231449187,1.0,True,
24,26,4.344602404326578,157.20865211395216,0.7051298290056998,0.11713046861462412,6,4.0423396253765445,0.02866879831073192,0.14020373652670878,1.0,True,
24,27,4.194437499675352,171.65485957819877,0.7231216797369087,0.11332956637109663,6,3.5737137574022637,0.0391123663878616,0.31745415833557195,1.0,True,
25,26,2.340922525153354,66.78663729350096,0.8146752104535746,0.1067005622933313,6,2.8555177924942416,0.015155094735859666,0.09937091691588736,1.0,True,
25,27,2.187150933555911,97.92312560134954,0.8480552070263488,0.10282262567757873,6,2.8008487935140383,0.020178532297188766,0.14259764688967286,1.0,True,
25,28,6.688406442287195,171.26720999836604,0.6516274978006786,0.11571138405667894,6,3.5101673009694134,0.012932261164889271,0.1340627397278959,1.0,True,
26,27,0.6349061963265976,31.136488307848563,0.8667504714016342,0.10966038141955464,6,2.9297274048756186,0.0016799531047772863,0.021489450960699312,1.0,True,
26,28,5.008419104260455,121.94615270813352,0.7044824981113069,0.11528623479803272,6,2.991781333569699,0.011526585390891731,0.12425176309998268,1.0,True,
26,29,2.224643201350574,145.73622267800252,0.713654161930024,0.11136018082941974,6,3.2605126809731075,0.0026952303885011083,0.026655596724504224,1.0,True,
27,28,5.622863551235285,90.80966440028486,0.7058971457311706,0.1123767383226778,6,3.2376046779603893,0.004853942846193662,0.04151426276015074,1.0,True,
27,29,2.458639091699311,114.59973437015381,0.7564328960645812,0.11469589052522192,6,3.205131133212321,0.012664149059349924,0.06847473063899887,1.0,True,
27,30,2.614522132166758,143.98503586800658,0.7694542698332492,0.10812761282109745,6,3.5636250205999853,0.029100131201629794,0.2714584305620497,1.0,True,
28,29,5.5254251571777075,23.790069969868927,0.6751737207833228,0.11779777341629802,6,4.576892329120707,0.02178556321929983,0.16690946122682282,1.0,True,
28,30,6.682895390289165,53.17537146772172,0.6491205871188156,0.12153627244194264,6,5.217063769204219,0.03128065038149053,0.11076032475862632,1.0,True,
28,31,11.27338119162288,23.882243944837096,0.5547279383916173,0.13098667045941628,6,8.538477868201968,0.007811024872033181,0.25693805699014277,1.0,True,
29,30,1.1998189814142899,29.3853014978528,0.8093424727088093,0.11457686827315132,6,2.757583581977887,0.011632920497220726,0.07792616982135933,1.0,True,
29,31,5.755712819539279,0.09217397496817598,0.7190982776089159,0.1179079898277715,6,4.190353867263325,0.010102013331328315,0.05295397679545269,1.0,True,
29,32,7.3497160995478215,44.7412737155501,0.683451384417257,0.12293657670032715,6,4.583568719289398,0.015683401555203327,0.1727804303986473,1.0,True,
30,31,4.592128513798009,29.29312752288462,0.7552004058853374,0.1130974670000902,6,3.6871413543680527,0.010357085925134528,0.12088315402655661,1.0,True,
30,32,6.2188831730504885,74.12657521340287,0.7014059073906874,0.11707558829895812,6,4.009905097582674,0.044382968752358344,0.22757601248033596,1.0,True,
30,33,7.344850966128434,112.7430048900433,0.6023929471032745,0.12334051659083738,6,4.260065691019417,0.002643716461244746,0.05342399356841621,1.0,True,
31,32,1.7043840283934533,44.83344769051828,0.785355810063055,0.11197405173054666,6,3.256332960817364,0.017947904056538493,0.11867936940390052,1.0,True,
31,33,3.3472002644811774,83.44987736715868,0.6260366926363408,0.11401170513833872,6,3.204107721135536,0.005088227871807909,0.05996016929359153,1.0,True,
31,34,3.311630046755356,133.49479301359594,0.6536974685122833,0.11166700866683012,6,3.289691648920709,0.01957685602042411,0.06586346108113965,1.0,True,
32,33,1.9394369188755196,38.61642967664041,0.7442187300370512,0.11487243540634488,6,2.5670787340169654,0.00371510987119075,0.04386474659625542,1.0,True,
32,34,2.1435446082722334,88.6613453230776,0.7408722109533469,0.1145103812359268,6,2.7396880211128143,0.0033854042879271646,0.04345206885157784,1.0,True,
32,35,3.1027737257249126,119.84526039487966,0.8249047681597268,0.10651397196801952,6,2.6908216879663684,0.014229552741777998,0.06789311177543367,1.0,True,
33,34,0.5704890065278277,50.0449156464372,0.8265015479876161,0.1079360614731508,6,3.0056080815747785,0.005517776656180037,0.04447304678975396,1.0,True,
33,35,2.3843314966611664,81.22883071823928,0.7029487179487179,0.11079043369762126,6,2.804837502264682,0.0045321280438173584,0.02066446888667937,1.0,True,
33,36,3.5605240220038255,106.66041349586102,0.612932138284251,0.11677728789370431,6,3.2326527799764184,0.011704878383874686,0.04254924292122366,1.0,True,
34,35,2.9403442697824866,31.183915071802076,0.7198829665436968,0.11381984857774002,6,3.296185466097946,0.015242618456135898,0.1219677981121258,1.0,True,
34,36,4.102710388907318,56.61549784942384,0.6450260449752255,0.11677131628998773,6,3.6854553885932066,0.0029445631740664846,0.0910859237401823,1.0,True,
34,37,3.6865711881345757,30.12086856551724,0.6870731404445548,0.11846537329500156,6,4.5399964456315365,0.013941395463696922,0.12307688004234886,1.0,True,
35,36,1.2045561534352058,25.431582777621774,0.811216429699842,0.11156358795429076,6,2.5821119008039335,0.003966448406861189,0.11486278330291146,1.0,True,
35,37,6.084062615492111,1.063046506284832,0.6916945230136282,0.12226449151266647,6,3.9062079497745845,0.012490325532322776,0.1588294259454204,1.0,True,
36,37,7.2781244258509386,26.494629283906598,0.6406009244992296,0.123972843683949,6,4.59789964279208,0.011995188628592031,0.19550165133048591,1.0,True,
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 0.503306788400079 13.198324485965863 0.7947725072604066 0.09714510386272111 6 3.1645559924308744 0.00040681040655899406 0.015836974306118006 1.0 True
3 0 2 1.1601020961002007 26.306295080591493 0.8196783588704571 0.10111548255452249 6 3.1496351272437915 0.0024786662018318395 0.04305117802148083 1.0 True
4 0 3 1.1328421148283978 41.74134818989305 0.8170202208162759 0.10132889132333661 6 2.9636847958606816 0.001763337668740155 0.0152261810177797 1.0 True
5 1 2 0.6927979865343085 13.107970594625625 0.7847728726807421 0.08513837010948266 6 2.6465075635845983 0.003621881376895638 0.011153493139183525 1.0 True
6 1 3 0.7002295454253883 28.543023703927183 0.7885699962401304 0.09713251502799032 6 2.6341764735488145 0.0014094469663425105 0.02902143941632062 1.0 True
7 1 4 0.8045641659338967 57.731023816949346 0.7363658899355479 0.09863727794945644 6 2.7377680197189993 0.011592408190980286 0.17084480097436408 1.0 True
8 2 3 0.13949776780243606 15.435053109301553 0.918286915396742 0.07288259780013887 6 2.6383381348446657 0.002273707715582919 0.0026923349652342365 1.0 True
9 2 4 0.6701726006967371 44.62305322232371 0.8370341514089079 0.09441127521663696 6 3.0939727970407334 0.0041401597740440875 0.03075174550917053 1.0 True
10 2 5 0.8004226998626774 62.96656300910673 0.8235371293623721 0.10626795357026747 6 2.8027866429960917 0.009148796674106823 0.05256412309062332 1.0 True
11 3 4 0.5366157827594368 29.188000113022152 0.8850603941513032 0.07613142655207121 6 2.6417590251999084 0.0013904645484531576 0.0259404694028417 1.0 True
12 3 5 0.6760093701980526 47.53150989980517 0.8740046236835346 0.09072202522560696 6 2.686157540984516 0.006509933107990933 0.02545212192512678 1.0 True
13 3 6 1.4361364806393455 80.09091141471853 0.6795928884308168 0.10271649349323747 6 3.008166890660092 0.00828154435242913 0.026486510290724834 1.0 True
14 4 5 0.17861948949299924 18.343509786783002 0.8684444444444445 0.0784387700526441 6 2.6861954442048104 0.0025072579888539386 0.021042298559759365 1.0 True
15 4 6 1.5807073315069207 50.90291130169636 0.6781301745000636 0.10313081772493418 6 2.8455217243212387 0.003271195715147848 0.14716032493381534 1.0 True
16 4 7 1.7804201387535592 75.18775779751417 0.7873548387096774 0.09891997778736471 6 3.1802938248442474 0.004633577062239209 0.04472721629193465 1.0 True
17 5 6 1.5316987521992935 32.55940151491337 0.6911991765311374 0.10152400788085783 6 3.2393513551418907 0.005288907067525738 0.05494235971756111 1.0 True
18 5 7 1.6091514152462776 56.844248010731185 0.7747360187719984 0.09121609616459708 6 3.123473300580222 0.00421464356720393 0.015634168997181876 1.0 True
19 5 8 1.1872485760158462 85.67585439000777 0.7829477514946712 0.10577559680144696 6 3.109219016133088 0.0033105282814613057 0.030813019102438145 1.0 True
20 6 7 1.5692385974903325 24.284846495817817 0.7347979599843075 0.10196810239533251 6 3.458846242963224 0.004020707752206965 0.039850323489805044 1.0 True
21 6 8 0.5035712140385419 53.11645287509441 0.7155149934810952 0.10460245111398395 6 3.0180670962260874 0.0072368624874882504 0.0055907688631446776 1.0 True
22 6 9 0.8508108569116883 66.44324365209327 0.6825438366919655 0.10495957402394829 6 3.140616320789838 0.00430894236478819 0.13911475434755866 1.0 True
23 7 8 1.1230406357307108 28.831606379276582 0.8127890077949531 0.09942756972076687 6 2.9436564519387325 0.008316114154115147 0.01814737917470093 1.0 True
24 7 9 0.7186795671679719 42.158397156275456 0.8193873491579367 0.09507291602212191 6 3.5012345051117295 0.006751593996528964 0.029293578235221863 1.0 True
25 7 10 0.39293571356254015 58.25702665650087 0.7940216681895313 0.10356080767641777 6 2.817840996766873 0.006883567504360684 0.016492683422577963 1.0 True
26 8 9 0.4407680716864947 13.326790776998866 0.8581438392384981 0.09484304022144129 6 3.219825075793889 0.007253035671159373 0.024252719250072975 1.0 True
27 8 10 0.968166048306331 29.425420277224287 0.8015356585111921 0.10152298131640612 6 3.7446585062478155 0.0017523919908150464 0.05042176209078739 1.0 True
28 8 11 3.0540124804140354 66.34511043540417 0.688687555052221 0.10536230082368817 6 4.696625415382456 0.0036281146181207165 0.013078005975049522 1.0 True
29 9 10 0.5276649044820116 16.098629500225417 0.8560606060606061 0.09594368034796862 6 3.2778548903058375 0.010491037599418197 0.0599937188173442 1.0 True
30 9 11 2.680593454060616 53.0183196584053 0.6966788735951509 0.10384409271666459 6 4.3419055531595605 0.009543265092514783 0.09977883713501384 1.0 True
31 9 12 3.2944321799753977 73.22024906015783 0.6579243162233046 0.10621203405076814 6 4.293885241325807 0.0028782078295197843 0.0743495992598884 1.0 True
32 10 11 2.249454986440387 36.91969015817989 0.729195173529046 0.10869447817964137 6 4.322382098282597 0.0028206125960216254 0.014140069566934874 1.0 True
33 10 12 2.8783779741216167 57.12161955993242 0.6945982527377876 0.10596349826421764 6 4.493186221276381 0.005660464094292755 0.08952914345108036 1.0 True
34 10 13 3.84803303865234 78.07081297783375 0.6530587074494326 0.1098871098886565 6 4.997105968288151 0.009441275754405344 0.06902225135435515 1.0 True
35 11 12 0.636223282239137 20.20192940175253 0.865792610250298 0.09248705530398661 6 3.4380496057859116 0.007654923324833218 0.03083951917063289 1.0 True
36 11 13 2.0145868546459504 41.151122819653864 0.8217656194003106 0.10443913508460159 6 3.957969004992005 0.0019958122994113434 0.04243931133970266 1.0 True
37 11 14 1.2405786051647103 116.67752660647822 0.7462918660287081 0.10754571546972236 6 4.619857754383166 0.0030226348073827927 0.05528144266002643 1.0 True
38 12 13 1.5928240921286525 20.949193417901323 0.8347322378531742 0.10791137431619166 6 3.358528082155117 0.0033753816186126483 0.015427430722607398 1.0 True
39 12 14 0.6774809171975742 96.47559720472566 0.7626657196969697 0.10926443071446633 6 3.847953795189004 0.0011083901763643633 0.03408686226954418 1.0 True
40 12 15 1.8892292086221258 131.14857460490867 0.7404945183111733 0.10470183850479874 6 3.1806996321008576 0.008442575945215317 0.02844707164454242 1.0 True
41 13 14 0.9721300146850552 75.52640378682433 0.8138569225293629 0.1125369920515294 6 3.2147734820704015 0.005457899756974233 0.04250371025579654 1.0 True
42 13 15 2.426469315960194 110.19938118700728 0.7853886616014026 0.10710393317615087 6 2.4365756135744383 0.0023363953219779758 0.003679886698275418 1.0 True
43 13 16 4.157137927296689 135.66277163100625 0.7461059190031153 0.10791684095774041 6 2.2141337125272007 0.0023169831632091926 0.02473862097872449 1.0 True
44 14 15 2.176233486689304 34.672977400182965 0.7456694756554307 0.11049010248131722 6 2.3376174680383377 0.0027632919724097076 0.05272762900968177 1.0 True
45 14 16 3.79947855245853 60.13636784418198 0.7114577084583084 0.11170286188791147 6 2.479974772421199 0.0043726035924820505 0.11525585711885118 1.0 True
46 14 17 6.190474035537447 15.261944565117341 0.6170986278878855 0.11803645680912848 6 5.206426513766648 0.02802927019183766 0.10048860643286558 1.0 True
47 15 16 1.7328875589135755 25.463390443999018 0.7687034629476421 0.09834033850996364 6 2.3729567416081196 0.004926598691892943 0.10049788043616295 1.0 True
48 15 17 8.352264787019024 19.411032835065622 0.5596902808274586 0.12817180913542037 6 8.442537153126064 0.04660873899639204 0.08128930035257874 1.0 True
49 15 18 6.346037230040679 25.592965647994788 0.6134687462217386 0.11861991782546771 6 5.933642175309751 0.006137337753783083 0.040498570689394164 1.0 True
50 16 17 9.849975560032544 44.87442327906463 0.589649455234486 0.12715782204597983 6 10.240964391202342 0.016491489842564398 0.29283865924681673 1.0 True
51 16 18 7.9099649541476005 0.12957520399577063 0.6441329694864798 0.11977657776801591 6 7.973620675877663 0.01581702082704062 0.07681086634765077 1.0 True
52 16 19 6.609737623005951 34.172763646089344 0.642055375405338 0.11922626532224312 6 5.690723701436521 0.01936736899083179 0.22155509936605944 1.0 True
53 17 18 2.081596655954183 45.003998483060414 0.761206687666586 0.10248796635270672 6 4.778521884225018 0.003602819302929225 0.04280787772842571 1.0 True
54 17 19 4.34928579963815 79.047186925154 0.6654080389768575 0.10560001932239894 6 4.647516519431804 0.015683211248127868 0.18051709633786264 1.0 True
55 17 20 4.4206846692505035 169.37257900760153 0.6377810007251632 0.11215519048187066 6 5.178731668470772 0.016926609942259613 0.20634229894075337 1.0 True
56 18 19 3.459222336215112 34.04318844209358 0.7556208482370976 0.10994458141969204 6 3.594858191146124 0.004654350735545165 0.12873243616635754 1.0 True
57 18 20 4.94806857498194 124.36858052454107 0.6686517992904207 0.11525187440612464 6 4.510107356424666 0.022993775653731053 0.1013964892640344 1.0 True
58 18 21 6.5847443121227816 175.25342056617163 0.5905541093343251 0.1262853354637165 6 5.942345924349615 0.021857815102479028 0.4259066161744867 1.0 True
59 19 20 3.031758915138065 90.32539208244746 0.7420998980632009 0.12052023632629244 6 3.3463968507926847 0.012566250876576632 0.08500209892702067 1.0 True
60 19 21 3.732423384308353 141.21023212407198 0.6515019319456562 0.12055764747498063 6 4.076270140910382 0.007120603737667027 0.05561876226347328 1.0 True
61 19 22 6.37255124464243 175.13200822775684 0.5905501782985226 0.12548545004843537 6 5.705777346141328 0.005772061596466365 0.10356450735473072 1.0 True
62 20 21 2.057726146362386 50.884840041624386 0.7791517249907258 0.1109933103332085 6 3.525554312141476 0.004882992437392809 0.09954673132586826 1.0 True
63 20 22 4.388457127616061 94.54259968980386 0.6575290550783224 0.11893104898070972 6 4.203674621017558 0.005511015274661758 0.13108161960065734 1.0 True
64 20 23 8.256548639868363 126.4903843444735 0.5799237611181702 0.12732395079162134 6 6.120182481367245 0.02421237470645105 0.2728497258921342 1.0 True
65 21 22 2.665930009787955 43.65775964817948 0.7379804721295267 0.11301282071283571 6 4.252070885311591 0.005342970038949662 0.023692959917636515 1.0 True
66 21 23 6.670349114267683 75.60554430284907 0.6154133001864512 0.11796945645750438 6 5.503558762374886 0.021862964848253088 0.18671115674675795 1.0 True
67 21 24 4.0761181240750135 118.87493116884215 0.6688601936925751 0.11271893154362743 6 4.6072424136923145 0.017882487871653564 0.11231417140662198 1.0 True
68 22 23 4.005228418650323 31.947784654669576 0.7269494538989077 0.11696827793053062 6 3.9354343956207307 0.036708381465019306 0.17149160359500737 1.0 True
69 22 24 1.4231800329066895 75.21717152066267 0.7625269567423569 0.11122908154278312 6 2.9923801902407035 0.033708002403797385 0.18898419347187523 1.0 True
70 22 25 0.9824487562406952 165.63918634111403 0.7063042657606644 0.1109686247290255 6 3.260862218157852 0.0237546710240931 0.20388046327310663 1.0 True
71 23 24 2.6253440212817054 43.26938686599312 0.785377057547531 0.11259637754562075 6 3.1689777161216344 0.008388924730327863 0.09824473511740778 1.0 True
72 23 25 4.30404511575867 133.69140168644446 0.682445260093659 0.11585305930039552 6 4.459805342354154 0.03262070035564156 0.26820774135203534 1.0 True
73 23 26 6.580252552934289 159.52196102005493 0.6190717727618564 0.1225437625254746 6 4.748664745468758 0.020450511219618477 0.11876511292532045 1.0 True
74 24 25 2.0155105379126432 90.4220148204513 0.7662452591656131 0.10751986617832841 6 3.2073569479179214 0.020801978066425954 0.11499836231449187 1.0 True
75 24 26 4.344602404326578 157.20865211395216 0.7051298290056998 0.11713046861462412 6 4.0423396253765445 0.02866879831073192 0.14020373652670878 1.0 True
76 24 27 4.194437499675352 171.65485957819877 0.7231216797369087 0.11332956637109663 6 3.5737137574022637 0.0391123663878616 0.31745415833557195 1.0 True
77 25 26 2.340922525153354 66.78663729350096 0.8146752104535746 0.1067005622933313 6 2.8555177924942416 0.015155094735859666 0.09937091691588736 1.0 True
78 25 27 2.187150933555911 97.92312560134954 0.8480552070263488 0.10282262567757873 6 2.8008487935140383 0.020178532297188766 0.14259764688967286 1.0 True
79 25 28 6.688406442287195 171.26720999836604 0.6516274978006786 0.11571138405667894 6 3.5101673009694134 0.012932261164889271 0.1340627397278959 1.0 True
80 26 27 0.6349061963265976 31.136488307848563 0.8667504714016342 0.10966038141955464 6 2.9297274048756186 0.0016799531047772863 0.021489450960699312 1.0 True
81 26 28 5.008419104260455 121.94615270813352 0.7044824981113069 0.11528623479803272 6 2.991781333569699 0.011526585390891731 0.12425176309998268 1.0 True
82 26 29 2.224643201350574 145.73622267800252 0.713654161930024 0.11136018082941974 6 3.2605126809731075 0.0026952303885011083 0.026655596724504224 1.0 True
83 27 28 5.622863551235285 90.80966440028486 0.7058971457311706 0.1123767383226778 6 3.2376046779603893 0.004853942846193662 0.04151426276015074 1.0 True
84 27 29 2.458639091699311 114.59973437015381 0.7564328960645812 0.11469589052522192 6 3.205131133212321 0.012664149059349924 0.06847473063899887 1.0 True
85 27 30 2.614522132166758 143.98503586800658 0.7694542698332492 0.10812761282109745 6 3.5636250205999853 0.029100131201629794 0.2714584305620497 1.0 True
86 28 29 5.5254251571777075 23.790069969868927 0.6751737207833228 0.11779777341629802 6 4.576892329120707 0.02178556321929983 0.16690946122682282 1.0 True
87 28 30 6.682895390289165 53.17537146772172 0.6491205871188156 0.12153627244194264 6 5.217063769204219 0.03128065038149053 0.11076032475862632 1.0 True
88 28 31 11.27338119162288 23.882243944837096 0.5547279383916173 0.13098667045941628 6 8.538477868201968 0.007811024872033181 0.25693805699014277 1.0 True
89 29 30 1.1998189814142899 29.3853014978528 0.8093424727088093 0.11457686827315132 6 2.757583581977887 0.011632920497220726 0.07792616982135933 1.0 True
90 29 31 5.755712819539279 0.09217397496817598 0.7190982776089159 0.1179079898277715 6 4.190353867263325 0.010102013331328315 0.05295397679545269 1.0 True
91 29 32 7.3497160995478215 44.7412737155501 0.683451384417257 0.12293657670032715 6 4.583568719289398 0.015683401555203327 0.1727804303986473 1.0 True
92 30 31 4.592128513798009 29.29312752288462 0.7552004058853374 0.1130974670000902 6 3.6871413543680527 0.010357085925134528 0.12088315402655661 1.0 True
93 30 32 6.2188831730504885 74.12657521340287 0.7014059073906874 0.11707558829895812 6 4.009905097582674 0.044382968752358344 0.22757601248033596 1.0 True
94 30 33 7.344850966128434 112.7430048900433 0.6023929471032745 0.12334051659083738 6 4.260065691019417 0.002643716461244746 0.05342399356841621 1.0 True
95 31 32 1.7043840283934533 44.83344769051828 0.785355810063055 0.11197405173054666 6 3.256332960817364 0.017947904056538493 0.11867936940390052 1.0 True
96 31 33 3.3472002644811774 83.44987736715868 0.6260366926363408 0.11401170513833872 6 3.204107721135536 0.005088227871807909 0.05996016929359153 1.0 True
97 31 34 3.311630046755356 133.49479301359594 0.6536974685122833 0.11166700866683012 6 3.289691648920709 0.01957685602042411 0.06586346108113965 1.0 True
98 32 33 1.9394369188755196 38.61642967664041 0.7442187300370512 0.11487243540634488 6 2.5670787340169654 0.00371510987119075 0.04386474659625542 1.0 True
99 32 34 2.1435446082722334 88.6613453230776 0.7408722109533469 0.1145103812359268 6 2.7396880211128143 0.0033854042879271646 0.04345206885157784 1.0 True
100 32 35 3.1027737257249126 119.84526039487966 0.8249047681597268 0.10651397196801952 6 2.6908216879663684 0.014229552741777998 0.06789311177543367 1.0 True
101 33 34 0.5704890065278277 50.0449156464372 0.8265015479876161 0.1079360614731508 6 3.0056080815747785 0.005517776656180037 0.04447304678975396 1.0 True
102 33 35 2.3843314966611664 81.22883071823928 0.7029487179487179 0.11079043369762126 6 2.804837502264682 0.0045321280438173584 0.02066446888667937 1.0 True
103 33 36 3.5605240220038255 106.66041349586102 0.612932138284251 0.11677728789370431 6 3.2326527799764184 0.011704878383874686 0.04254924292122366 1.0 True
104 34 35 2.9403442697824866 31.183915071802076 0.7198829665436968 0.11381984857774002 6 3.296185466097946 0.015242618456135898 0.1219677981121258 1.0 True
105 34 36 4.102710388907318 56.61549784942384 0.6450260449752255 0.11677131628998773 6 3.6854553885932066 0.0029445631740664846 0.0910859237401823 1.0 True
106 34 37 3.6865711881345757 30.12086856551724 0.6870731404445548 0.11846537329500156 6 4.5399964456315365 0.013941395463696922 0.12307688004234886 1.0 True
107 35 36 1.2045561534352058 25.431582777621774 0.811216429699842 0.11156358795429076 6 2.5821119008039335 0.003966448406861189 0.11486278330291146 1.0 True
108 35 37 6.084062615492111 1.063046506284832 0.6916945230136282 0.12226449151266647 6 3.9062079497745845 0.012490325532322776 0.1588294259454204 1.0 True
109 36 37 7.2781244258509386 26.494629283906598 0.6406009244992296 0.123972843683949 6 4.59789964279208 0.011995188628592031 0.19550165133048591 1.0 True
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,312 +0,0 @@
{
"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": 41,
"translation_m": {
"rms": 0.06627076507951374,
"median": 0.047988641017293804,
"p90": 0.09181504914902948,
"p95": 0.11277678323253028,
"max": 0.15600463105844264
},
"rotation_deg": {
"rms": 1.0783402768758907,
"median": 0.7259689138952466,
"p90": 1.6809461304799602,
"p95": 1.7792880941356781,
"max": 1.856511169904947
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.023735072067512103,
"rotation_deg": 0.35856568622307705,
"i": 0,
"j": 1
},
{
"pair_index": 1,
"translation_m": 0.05526576799076716,
"rotation_deg": 0.688292682153714,
"i": 0,
"j": 3
},
{
"pair_index": 2,
"translation_m": 0.04806529792477384,
"rotation_deg": 1.7792880941356781,
"i": 1,
"j": 2
},
{
"pair_index": 3,
"translation_m": 0.02732889363320134,
"rotation_deg": 1.856511169904947,
"i": 2,
"j": 3
},
{
"pair_index": 4,
"translation_m": 0.03927257848059381,
"rotation_deg": 1.6809461304799602,
"i": 2,
"j": 5
},
{
"pair_index": 5,
"translation_m": 0.09000097958526627,
"rotation_deg": 0.6847419474141874,
"i": 3,
"j": 4
},
{
"pair_index": 6,
"translation_m": 0.03101397287067455,
"rotation_deg": 0.16914815750366516,
"i": 3,
"j": 5
},
{
"pair_index": 7,
"translation_m": 0.07754221345029244,
"rotation_deg": 0.7259689138952466,
"i": 4,
"j": 5
},
{
"pair_index": 8,
"translation_m": 0.03330333298983308,
"rotation_deg": 0.2953381460156314,
"i": 5,
"j": 6
},
{
"pair_index": 9,
"translation_m": 0.013926178859499422,
"rotation_deg": 1.0956547835384745,
"i": 6,
"j": 7
},
{
"pair_index": 10,
"translation_m": 0.040796788287758956,
"rotation_deg": 0.5732579539729787,
"i": 6,
"j": 9
},
{
"pair_index": 11,
"translation_m": 0.05468973725915344,
"rotation_deg": 1.0002199501064295,
"i": 11,
"j": 12
},
{
"pair_index": 12,
"translation_m": 0.06427358796963496,
"rotation_deg": 1.4794289625543822,
"i": 16,
"j": 17
},
{
"pair_index": 13,
"translation_m": 0.15600463105844264,
"rotation_deg": 1.480613890179137,
"i": 16,
"j": 18
},
{
"pair_index": 14,
"translation_m": 0.10022423249183152,
"rotation_deg": 0.4939634910387222,
"i": 17,
"j": 18
},
{
"pair_index": 15,
"translation_m": 0.11277678323253028,
"rotation_deg": 1.4534337020592556,
"i": 18,
"j": 19
},
{
"pair_index": 16,
"translation_m": 0.09181504914902948,
"rotation_deg": 0.5121047642461125,
"i": 18,
"j": 20
},
{
"pair_index": 17,
"translation_m": 0.07621294129483619,
"rotation_deg": 1.2114882514394736,
"i": 18,
"j": 21
},
{
"pair_index": 18,
"translation_m": 0.05057962673548217,
"rotation_deg": 1.7070235499578508,
"i": 19,
"j": 20
},
{
"pair_index": 19,
"translation_m": 0.028485843207444878,
"rotation_deg": 1.282910024621228,
"i": 20,
"j": 21
},
{
"pair_index": 20,
"translation_m": 0.047988641017293804,
"rotation_deg": 0.3479009355224502,
"i": 20,
"j": 22
},
{
"pair_index": 21,
"translation_m": 0.036673661370321194,
"rotation_deg": 0.7294078635231547,
"i": 20,
"j": 23
},
{
"pair_index": 22,
"translation_m": 0.053305241810354,
"rotation_deg": 1.5203537906970106,
"i": 21,
"j": 22
},
{
"pair_index": 23,
"translation_m": 0.06724337658756505,
"rotation_deg": 0.6388309960595039,
"i": 21,
"j": 24
},
{
"pair_index": 24,
"translation_m": 0.04395944502343888,
"rotation_deg": 0.532486384255132,
"i": 22,
"j": 23
},
{
"pair_index": 25,
"translation_m": 0.02014164497275169,
"rotation_deg": 1.454337113913715,
"i": 22,
"j": 24
},
{
"pair_index": 26,
"translation_m": 0.015070014725991494,
"rotation_deg": 1.3619366988381034,
"i": 23,
"j": 24
},
{
"pair_index": 27,
"translation_m": 0.04337448537472198,
"rotation_deg": 0.5946988587087709,
"i": 24,
"j": 25
},
{
"pair_index": 28,
"translation_m": 0.04609106556910267,
"rotation_deg": 0.8042445263370658,
"i": 24,
"j": 26
},
{
"pair_index": 29,
"translation_m": 0.08550650491731009,
"rotation_deg": 0.4123121681282486,
"i": 25,
"j": 26
},
{
"pair_index": 30,
"translation_m": 0.03526150890834157,
"rotation_deg": 1.4877458273245419,
"i": 27,
"j": 28
},
{
"pair_index": 31,
"translation_m": 0.04728048748001428,
"rotation_deg": 1.6462112767436325,
"i": 27,
"j": 29
},
{
"pair_index": 32,
"translation_m": 0.038221731232831464,
"rotation_deg": 0.32809158958487783,
"i": 28,
"j": 29
},
{
"pair_index": 33,
"translation_m": 0.08450868583143198,
"rotation_deg": 0.4200755376297717,
"i": 30,
"j": 31
},
{
"pair_index": 34,
"translation_m": 0.08626234893146881,
"rotation_deg": 0.4145763973148079,
"i": 30,
"j": 33
},
{
"pair_index": 35,
"translation_m": 0.031883992409525753,
"rotation_deg": 0.47209162292986384,
"i": 31,
"j": 33
},
{
"pair_index": 36,
"translation_m": 0.07512585318274038,
"rotation_deg": 0.4948719177387593,
"i": 33,
"j": 34
},
{
"pair_index": 37,
"translation_m": 0.1468426442855739,
"rotation_deg": 0.5255877510410011,
"i": 33,
"j": 35
},
{
"pair_index": 38,
"translation_m": 0.0854721649952596,
"rotation_deg": 0.7101299092541083,
"i": 34,
"j": 35
},
{
"pair_index": 39,
"translation_m": 0.03486824711848649,
"rotation_deg": 1.7800497000791062,
"i": 34,
"j": 37
},
{
"pair_index": 40,
"translation_m": 0.028519367999920175,
"rotation_deg": 1.540726633727796,
"i": 35,
"j": 36
}
]
}
}
@@ -1,744 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "Both `ftol` and `xtol` termination conditions are satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2962115049352554,
-0.0001653420733896053,
0.7164468137861116
],
"rotation_rpy_deg_xyz": [
-0.7022421146530834,
1.3831306856730625,
-0.8286069697615047
],
"quaternion_xyzw": [
-0.006040299739348631,
0.012113565983787752,
-0.007156270443853885,
0.9998827751749451
],
"matrix_4x4": [
[
0.9996040986249817,
0.014164523963697197,
0.024310743983262467,
1.2962115049352554
],
[
-0.01445720224151504,
0.9998246051447864,
0.011905807424097893,
-0.0001653420733896053
],
[
-0.02413783990927558,
-0.012252559240975732,
0.9996335525964305,
0.7164468137861116
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 108,
"residuals": {
"pairs": 108,
"translation_m": {
"rms": 0.19743856479972394,
"median": 0.06046352611504703,
"p90": 0.21107717888307384,
"p95": 0.4320413132492668,
"max": 0.9185086085818974
},
"rotation_deg": {
"rms": 1.594164834809931,
"median": 0.9846062073478139,
"p90": 2.2895871608918337,
"p95": 2.7021815285034116,
"max": 5.449412955100641
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.07883616778657004,
"rotation_deg": 0.5080220774435835
},
{
"pair_index": 1,
"translation_m": 0.13193158825620543,
"rotation_deg": 0.4741606069012087
},
{
"pair_index": 2,
"translation_m": 0.11129387971109267,
"rotation_deg": 0.5206505897892112
},
{
"pair_index": 3,
"translation_m": 0.06037317704760375,
"rotation_deg": 0.4636666105342909
},
{
"pair_index": 4,
"translation_m": 0.0532377491787842,
"rotation_deg": 0.6385789459945687
},
{
"pair_index": 5,
"translation_m": 0.036086228084217256,
"rotation_deg": 0.7053466734460281
},
{
"pair_index": 6,
"translation_m": 0.024212071864605337,
"rotation_deg": 0.35966262441445085
},
{
"pair_index": 7,
"translation_m": 0.07843107284074759,
"rotation_deg": 0.9672771351659644
},
{
"pair_index": 8,
"translation_m": 0.1331135483643765,
"rotation_deg": 0.9356542123031394
},
{
"pair_index": 9,
"translation_m": 0.06287483417453568,
"rotation_deg": 0.8539179575478302
},
{
"pair_index": 10,
"translation_m": 0.09307074193602183,
"rotation_deg": 1.1452312070788857
},
{
"pair_index": 11,
"translation_m": 0.10534310615277773,
"rotation_deg": 1.2697416838407303
},
{
"pair_index": 12,
"translation_m": 0.034156566922473784,
"rotation_deg": 0.4470789762879368
},
{
"pair_index": 13,
"translation_m": 0.05706608980344394,
"rotation_deg": 1.4538259192907348
},
{
"pair_index": 14,
"translation_m": 0.21156185043155915,
"rotation_deg": 0.32326983959580347
},
{
"pair_index": 15,
"translation_m": 0.04366721285272495,
"rotation_deg": 1.1486889953780957
},
{
"pair_index": 16,
"translation_m": 0.19784063737858906,
"rotation_deg": 0.4945905742106831
},
{
"pair_index": 17,
"translation_m": 0.13271207797084064,
"rotation_deg": 0.8074538026104654
},
{
"pair_index": 18,
"translation_m": 0.13649995064331025,
"rotation_deg": 1.035099347913503
},
{
"pair_index": 19,
"translation_m": 0.058892470655748055,
"rotation_deg": 0.6808326191608242
},
{
"pair_index": 20,
"translation_m": 0.12809115411885974,
"rotation_deg": 0.8895134738281241
},
{
"pair_index": 21,
"translation_m": 0.07473485983007296,
"rotation_deg": 0.7244832869216128
},
{
"pair_index": 22,
"translation_m": 0.003615738521241208,
"rotation_deg": 0.6536825959057917
},
{
"pair_index": 23,
"translation_m": 0.06957198571596916,
"rotation_deg": 0.7883364856790823
},
{
"pair_index": 24,
"translation_m": 0.06578636179058665,
"rotation_deg": 0.09595187830987498
},
{
"pair_index": 25,
"translation_m": 0.11708949328304538,
"rotation_deg": 0.9037314334019761
},
{
"pair_index": 26,
"translation_m": 0.2785740172886443,
"rotation_deg": 1.2395284599701288
},
{
"pair_index": 27,
"translation_m": 0.054803484360171,
"rotation_deg": 0.9197207214648975
},
{
"pair_index": 28,
"translation_m": 0.2066140285757045,
"rotation_deg": 1.4700310072490443
},
{
"pair_index": 29,
"translation_m": 0.21086946250515157,
"rotation_deg": 1.0216432855984101
},
{
"pair_index": 30,
"translation_m": 0.16273991885860312,
"rotation_deg": 1.6658320411463268
},
{
"pair_index": 31,
"translation_m": 0.17536744938199297,
"rotation_deg": 1.603914654640798
},
{
"pair_index": 32,
"translation_m": 0.12486444755757231,
"rotation_deg": 1.72640237007742
},
{
"pair_index": 33,
"translation_m": 0.03629298593419621,
"rotation_deg": 0.7021350382463348
},
{
"pair_index": 34,
"translation_m": 0.04096591124737788,
"rotation_deg": 1.182229412077533
},
{
"pair_index": 35,
"translation_m": 0.023876028562682318,
"rotation_deg": 2.3067680414707423
},
{
"pair_index": 36,
"translation_m": 0.0232665744848516,
"rotation_deg": 0.45561721689220397
},
{
"pair_index": 37,
"translation_m": 0.0202215693688227,
"rotation_deg": 1.7396398605001189
},
{
"pair_index": 38,
"translation_m": 0.2386974208323925,
"rotation_deg": 0.3084186872525065
},
{
"pair_index": 39,
"translation_m": 0.0320417923623188,
"rotation_deg": 1.537812332531765
},
{
"pair_index": 40,
"translation_m": 0.22893456979179405,
"rotation_deg": 0.6120657430945021
},
{
"pair_index": 41,
"translation_m": 0.3264153842951392,
"rotation_deg": 0.5281733672424023
},
{
"pair_index": 42,
"translation_m": 0.1540882733017021,
"rotation_deg": 1.9432086107260433
},
{
"pair_index": 43,
"translation_m": 0.21054079914538157,
"rotation_deg": 1.2442015725741578
},
{
"pair_index": 44,
"translation_m": 0.48891681345533766,
"rotation_deg": 2.8273101876072357
},
{
"pair_index": 45,
"translation_m": 0.10733355603351397,
"rotation_deg": 0.8721227552809412
},
{
"pair_index": 46,
"translation_m": 0.9185086085818974,
"rotation_deg": 4.489220955656682
},
{
"pair_index": 47,
"translation_m": 0.7319199589340636,
"rotation_deg": 5.449412955100641
},
{
"pair_index": 48,
"translation_m": 0.8659475201606082,
"rotation_deg": 3.8214376146729045
},
{
"pair_index": 49,
"translation_m": 0.7210574374098978,
"rotation_deg": 4.561541716053782
},
{
"pair_index": 50,
"translation_m": 0.5570099786748203,
"rotation_deg": 5.373002500144395
},
{
"pair_index": 51,
"translation_m": 0.04582605589663051,
"rotation_deg": 0.6822468845946373
},
{
"pair_index": 52,
"translation_m": 0.036857756558338325,
"rotation_deg": 1.7515216368522777
},
{
"pair_index": 53,
"translation_m": 0.043496707068384696,
"rotation_deg": 1.7461098288880414
},
{
"pair_index": 54,
"translation_m": 0.045832318963813956,
"rotation_deg": 1.041278909174025
},
{
"pair_index": 55,
"translation_m": 0.060553875182490315,
"rotation_deg": 0.8052115259091664
},
{
"pair_index": 56,
"translation_m": 0.06652308069145153,
"rotation_deg": 0.9632642598400051
},
{
"pair_index": 57,
"translation_m": 0.035908234140899456,
"rotation_deg": 1.2689384623057567
},
{
"pair_index": 58,
"translation_m": 0.060880526853900836,
"rotation_deg": 0.5935557534854639
},
{
"pair_index": 59,
"translation_m": 0.11419626074713392,
"rotation_deg": 0.7130165148085522
},
{
"pair_index": 60,
"translation_m": 0.04265037619565028,
"rotation_deg": 0.699587177579278
},
{
"pair_index": 61,
"translation_m": 0.04378802459846447,
"rotation_deg": 0.675205047149443
},
{
"pair_index": 62,
"translation_m": 0.08344520239044273,
"rotation_deg": 1.3214027680911706
},
{
"pair_index": 63,
"translation_m": 0.017638868448433938,
"rotation_deg": 0.17533894669557326
},
{
"pair_index": 64,
"translation_m": 0.03489149886931174,
"rotation_deg": 1.664944154610128
},
{
"pair_index": 65,
"translation_m": 0.10079671035324393,
"rotation_deg": 0.6171025033257196
},
{
"pair_index": 66,
"translation_m": 0.014396578516872966,
"rotation_deg": 1.650080935912764
},
{
"pair_index": 67,
"translation_m": 0.06023554532048859,
"rotation_deg": 0.42594747696355045
},
{
"pair_index": 68,
"translation_m": 0.03699195896487648,
"rotation_deg": 1.2778861613746475
},
{
"pair_index": 69,
"translation_m": 0.046905032676790276,
"rotation_deg": 1.132463118089895
},
{
"pair_index": 70,
"translation_m": 0.070685940640895,
"rotation_deg": 0.6925680609090175
},
{
"pair_index": 71,
"translation_m": 0.05072278859454283,
"rotation_deg": 0.40553765157890925
},
{
"pair_index": 72,
"translation_m": 0.061114192405838416,
"rotation_deg": 0.8033058778952246
},
{
"pair_index": 73,
"translation_m": 0.12007843139860787,
"rotation_deg": 0.9239227811720148
},
{
"pair_index": 74,
"translation_m": 0.12118933148474953,
"rotation_deg": 1.305746559495919
},
{
"pair_index": 75,
"translation_m": 0.05055191131491414,
"rotation_deg": 0.20965439069314443
},
{
"pair_index": 76,
"translation_m": 0.08360132660274813,
"rotation_deg": 0.876573476333775
},
{
"pair_index": 77,
"translation_m": 0.02835721910581123,
"rotation_deg": 1.5894295378250647
},
{
"pair_index": 78,
"translation_m": 0.03908539475543364,
"rotation_deg": 0.8083289126351658
},
{
"pair_index": 79,
"translation_m": 0.054143804150054306,
"rotation_deg": 1.6541418156239664
},
{
"pair_index": 80,
"translation_m": 0.026283210691822913,
"rotation_deg": 1.6667348211605557
},
{
"pair_index": 81,
"translation_m": 0.089350850518513,
"rotation_deg": 2.2825286794384145
},
{
"pair_index": 82,
"translation_m": 0.03347579217967635,
"rotation_deg": 1.9977395380091536
},
{
"pair_index": 83,
"translation_m": 0.019000630740619542,
"rotation_deg": 1.5515794014919868
},
{
"pair_index": 84,
"translation_m": 0.04109198168971092,
"rotation_deg": 0.6855676498071515
},
{
"pair_index": 85,
"translation_m": 0.04412164134783469,
"rotation_deg": 0.6915721855798296
},
{
"pair_index": 86,
"translation_m": 0.11294515765470313,
"rotation_deg": 2.2385943138303417
},
{
"pair_index": 87,
"translation_m": 0.01925918248868863,
"rotation_deg": 1.0019352795296634
},
{
"pair_index": 88,
"translation_m": 0.07700662983793743,
"rotation_deg": 2.187099011126195
},
{
"pair_index": 89,
"translation_m": 0.081983290439235,
"rotation_deg": 1.2833572216410762
},
{
"pair_index": 90,
"translation_m": 0.07413447803071471,
"rotation_deg": 1.509039762712118
},
{
"pair_index": 91,
"translation_m": 0.05026833056909235,
"rotation_deg": 0.6540616669180302
},
{
"pair_index": 92,
"translation_m": 0.07040328963228819,
"rotation_deg": 1.1208457441248971
},
{
"pair_index": 93,
"translation_m": 0.035342214388759695,
"rotation_deg": 0.932859896131992
},
{
"pair_index": 94,
"translation_m": 0.09059341699612283,
"rotation_deg": 2.23170809346331
},
{
"pair_index": 95,
"translation_m": 0.0903976819000103,
"rotation_deg": 2.3060569509498126
},
{
"pair_index": 96,
"translation_m": 0.029370567781526302,
"rotation_deg": 1.2512304574145157
},
{
"pair_index": 97,
"translation_m": 0.031018252539194446,
"rotation_deg": 1.2538724028818724
},
{
"pair_index": 98,
"translation_m": 0.05078748646827035,
"rotation_deg": 0.3396814347935095
},
{
"pair_index": 99,
"translation_m": 0.024770901259540175,
"rotation_deg": 0.09062392685294303
},
{
"pair_index": 100,
"translation_m": 0.03340161795186317,
"rotation_deg": 1.0544497064860483
},
{
"pair_index": 101,
"translation_m": 0.032353919411514664,
"rotation_deg": 2.4697997330248893
},
{
"pair_index": 102,
"translation_m": 0.0369893920228258,
"rotation_deg": 0.9428098575535183
},
{
"pair_index": 103,
"translation_m": 0.03967084241987133,
"rotation_deg": 2.4057498894359104
},
{
"pair_index": 104,
"translation_m": 0.032499330822438305,
"rotation_deg": 0.5201344456818268
},
{
"pair_index": 105,
"translation_m": 0.020738575117572048,
"rotation_deg": 1.147380363634985
},
{
"pair_index": 106,
"translation_m": 0.02864934739022941,
"rotation_deg": 0.9393233353789158
},
{
"pair_index": 107,
"translation_m": 0.04427763743614998,
"rotation_deg": 2.333163177357132
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.004408386781524471,
0.004767641769352496,
0.005598290825790153
],
"rotation_deg": [
0.048493732410523904,
0.046658283462926005,
0.07519664546145975
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 7.050612320852161,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 643.4104764663608,
"success": true,
"translation_m": 3.912474170044392e-10,
"rotation_deg": 6.735629049437961e-10
},
{
"cost": 643.4104764663626,
"success": true,
"translation_m": 5.541272376488872e-09,
"rotation_deg": 8.145564755773614e-08
},
{
"cost": 643.4104764663621,
"success": true,
"translation_m": 5.7457948050995e-09,
"rotation_deg": 9.303346267795607e-08
},
{
"cost": 643.4104764663617,
"success": true,
"translation_m": 2.194969543097371e-09,
"rotation_deg": 6.831261261103626e-08
},
{
"cost": 643.4104764663606,
"success": true,
"translation_m": 0.0,
"rotation_deg": 0.0
},
{
"cost": 643.4104764663606,
"success": true,
"translation_m": 2.0328177429825194e-10,
"rotation_deg": 5.30535295392565e-10
},
{
"cost": 643.4104764663606,
"success": true,
"translation_m": 2.942069407882596e-10,
"rotation_deg": 1.1060405674229135e-09
},
{
"cost": 643.4104764663616,
"success": true,
"translation_m": 2.0219843122070147e-09,
"rotation_deg": 6.76470161118562e-08
},
{
"cost": 643.4104764663626,
"success": true,
"translation_m": 4.562054371593163e-09,
"rotation_deg": 1.0596545697409183e-07
},
{
"cost": 643.4104764663607,
"success": true,
"translation_m": 1.928078172154913e-10,
"rotation_deg": 2.1724633303911955e-09
},
{
"cost": 643.4104764663614,
"success": true,
"translation_m": 4.546336113588724e-09,
"rotation_deg": 6.943102831728965e-08
},
{
"cost": 643.4104764663606,
"success": true,
"translation_m": 2.3977413195330228e-09,
"rotation_deg": 3.302215565653965e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.0019183316339420184,
0.0018458296498062193,
0.0015077091479455522,
0.06309617953577086,
0.06679628584461805,
0.059116801250773655
],
"p025": [
1.2931455727368442,
-0.0034690771097207083,
0.7130935831011376,
-0.8251808751744363,
1.2576102536763605,
-0.9269499764475692
],
"p975": [
1.3004042751519689,
0.0031684595904240874,
0.7192601795844623,
-0.5861986801138164,
1.5316240168054431,
-0.7099716198219946
]
}
}
@@ -1,534 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "Both `ftol` and `xtol` termination conditions are satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2978831677200011,
-0.0030997734098957433,
0.7217892226151688
],
"rotation_rpy_deg_xyz": [
-0.7572070226288585,
1.1460424368859559,
-0.8797812288284186
],
"quaternion_xyzw": [
-0.006530524361500762,
0.01005115598038874,
-0.007610830022211968,
0.9998991958099549
],
"matrix_4x4": [
[
0.9996820990596618,
0.015088846999329667,
0.020199690985244836,
1.2978831677200011
],
[
-0.01535140427529437,
0.9997988550358736,
0.012906736835176902,
-0.0030997734098957433
],
[
-0.020000880141759644,
-0.013212727393950824,
0.9997126530300434,
0.7217892226151688
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 66,
"residuals": {
"pairs": 66,
"translation_m": {
"rms": 0.10017183831403174,
"median": 0.055359414994267414,
"p90": 0.15842638830193137,
"p95": 0.2228212283177476,
"max": 0.3308905173432371
},
"rotation_deg": {
"rms": 1.011529772202344,
"median": 0.80406471347537,
"p90": 1.4897684651925762,
"p95": 1.743501596940947,
"max": 2.0866296585079986
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.08037293687095128,
"rotation_deg": 0.5606213555410943
},
{
"pair_index": 1,
"translation_m": 0.13688783822315873,
"rotation_deg": 0.5385985764755513
},
{
"pair_index": 2,
"translation_m": 0.1161820533771873,
"rotation_deg": 0.6051501049087227
},
{
"pair_index": 3,
"translation_m": 0.06274731030725329,
"rotation_deg": 0.43240094308199595
},
{
"pair_index": 4,
"translation_m": 0.05401417992581746,
"rotation_deg": 0.5598851592535787
},
{
"pair_index": 5,
"translation_m": 0.031474943657373466,
"rotation_deg": 0.4777215600802768
},
{
"pair_index": 6,
"translation_m": 0.02358754528130127,
"rotation_deg": 0.31065781541529597
},
{
"pair_index": 7,
"translation_m": 0.07821720458579819,
"rotation_deg": 0.8327360477136897
},
{
"pair_index": 8,
"translation_m": 0.13242931760456017,
"rotation_deg": 0.7104180024890483
},
{
"pair_index": 9,
"translation_m": 0.06337205097891703,
"rotation_deg": 0.7783419276431949
},
{
"pair_index": 10,
"translation_m": 0.09374967709473093,
"rotation_deg": 1.0032646553341338
},
{
"pair_index": 11,
"translation_m": 0.03473040865260945,
"rotation_deg": 0.38999250019936094
},
{
"pair_index": 12,
"translation_m": 0.21059850723479812,
"rotation_deg": 0.3446682830121482
},
{
"pair_index": 13,
"translation_m": 0.19573146558983065,
"rotation_deg": 0.48095280922563605
},
{
"pair_index": 14,
"translation_m": 0.1323566970626505,
"rotation_deg": 0.7201707943590688
},
{
"pair_index": 15,
"translation_m": 0.12966351135913337,
"rotation_deg": 1.112776940821149
},
{
"pair_index": 16,
"translation_m": 0.05614712317985888,
"rotation_deg": 0.875368334260281
},
{
"pair_index": 17,
"translation_m": 0.07051356442391056,
"rotation_deg": 0.6787378054467239
},
{
"pair_index": 18,
"translation_m": 0.00234867626016906,
"rotation_deg": 0.6239120141422153
},
{
"pair_index": 19,
"translation_m": 0.06798198251653766,
"rotation_deg": 1.002748878489142
},
{
"pair_index": 20,
"translation_m": 0.06408705260318404,
"rotation_deg": 0.03962823745578253
},
{
"pair_index": 21,
"translation_m": 0.112944365872764,
"rotation_deg": 1.0217086690617905
},
{
"pair_index": 22,
"translation_m": 0.052992189070368054,
"rotation_deg": 0.9852776192856918
},
{
"pair_index": 23,
"translation_m": 0.15367415365164572,
"rotation_deg": 1.6994783049152902
},
{
"pair_index": 24,
"translation_m": 0.034245918976706625,
"rotation_deg": 0.6364964475716594
},
{
"pair_index": 25,
"translation_m": 0.032447856067877326,
"rotation_deg": 1.0563370884814496
},
{
"pair_index": 26,
"translation_m": 0.013423581617645036,
"rotation_deg": 2.0866296585079986
},
{
"pair_index": 27,
"translation_m": 0.020771076323520654,
"rotation_deg": 0.38738877042810915
},
{
"pair_index": 28,
"translation_m": 0.025006531842362605,
"rotation_deg": 1.52954100014841
},
{
"pair_index": 29,
"translation_m": 0.24776379251997158,
"rotation_deg": 0.5631330497861866
},
{
"pair_index": 30,
"translation_m": 0.03125984364955898,
"rotation_deg": 1.3670046215070957
},
{
"pair_index": 31,
"translation_m": 0.23303779095818136,
"rotation_deg": 0.6816682778063402
},
{
"pair_index": 32,
"translation_m": 0.3308905173432371,
"rotation_deg": 0.35773823775063585
},
{
"pair_index": 33,
"translation_m": 0.16317862295221702,
"rotation_deg": 1.883393614450365
},
{
"pair_index": 34,
"translation_m": 0.22689546867873073,
"rotation_deg": 1.1173958780054432
},
{
"pair_index": 35,
"translation_m": 0.11481327905632552,
"rotation_deg": 0.9531859192751095
},
{
"pair_index": 36,
"translation_m": 0.03799144229981835,
"rotation_deg": 0.7744523894118182
},
{
"pair_index": 37,
"translation_m": 0.05628293924136787,
"rotation_deg": 1.14782377649109
},
{
"pair_index": 38,
"translation_m": 0.044190715841938503,
"rotation_deg": 0.6522697817009423
},
{
"pair_index": 39,
"translation_m": 0.01566159386457093,
"rotation_deg": 0.21165082671261798
},
{
"pair_index": 40,
"translation_m": 0.025885925200718387,
"rotation_deg": 1.758176027616166
},
{
"pair_index": 41,
"translation_m": 0.05672466093666094,
"rotation_deg": 0.656889656854011
},
{
"pair_index": 42,
"translation_m": 0.04499649801025904,
"rotation_deg": 1.202397214867585
},
{
"pair_index": 43,
"translation_m": 0.05457170680867596,
"rotation_deg": 1.0831506943354967
},
{
"pair_index": 44,
"translation_m": 0.061259367696104086,
"rotation_deg": 0.4788495792916977
},
{
"pair_index": 45,
"translation_m": 0.11550019477035034,
"rotation_deg": 0.4484966984286178
},
{
"pair_index": 46,
"translation_m": 0.11728514823414202,
"rotation_deg": 0.829787499307545
},
{
"pair_index": 47,
"translation_m": 0.05724708891657523,
"rotation_deg": 0.13864261724965515
},
{
"pair_index": 48,
"translation_m": 0.08594624077085096,
"rotation_deg": 0.5654259879584598
},
{
"pair_index": 49,
"translation_m": 0.03620565055727226,
"rotation_deg": 0.7322933697368991
},
{
"pair_index": 50,
"translation_m": 0.04214151304995954,
"rotation_deg": 1.4499959302367427
},
{
"pair_index": 51,
"translation_m": 0.028423032063821733,
"rotation_deg": 1.4083884036448566
},
{
"pair_index": 52,
"translation_m": 0.07837351471415148,
"rotation_deg": 2.059047791320455
},
{
"pair_index": 53,
"translation_m": 0.028769288969574303,
"rotation_deg": 1.678230006332038
},
{
"pair_index": 54,
"translation_m": 0.017809796347028943,
"rotation_deg": 1.156650317229778
},
{
"pair_index": 55,
"translation_m": 0.016503937937620585,
"rotation_deg": 1.0883396698886323
},
{
"pair_index": 56,
"translation_m": 0.06654456279831698,
"rotation_deg": 1.4361320254246386
},
{
"pair_index": 57,
"translation_m": 0.047435323978454284,
"rotation_deg": 0.5969029690601318
},
{
"pair_index": 58,
"translation_m": 0.03126348405840702,
"rotation_deg": 1.1168540542357488
},
{
"pair_index": 59,
"translation_m": 0.02474086331243135,
"rotation_deg": 1.3807442010221649
},
{
"pair_index": 60,
"translation_m": 0.030093157854206205,
"rotation_deg": 1.4167630603035772
},
{
"pair_index": 61,
"translation_m": 0.0541740507536005,
"rotation_deg": 0.698365025436339
},
{
"pair_index": 62,
"translation_m": 0.022134680709029235,
"rotation_deg": 0.2658404010324305
},
{
"pair_index": 63,
"translation_m": 0.029045352917775814,
"rotation_deg": 1.1570185249880154
},
{
"pair_index": 64,
"translation_m": 0.027405495714480508,
"rotation_deg": 1.03451592246849
},
{
"pair_index": 65,
"translation_m": 0.026462755506179093,
"rotation_deg": 1.2477273813337815
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.004882663700530851,
0.005223180397875539,
0.004609821026450364
],
"rotation_deg": [
0.05337730845362286,
0.05101978444118743,
0.13461471349060455
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.280132943609949,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 257.9158465208353,
"success": true,
"translation_m": 1.5339146489710882e-09,
"rotation_deg": 8.769019455279312e-08
},
{
"cost": 257.915846520835,
"success": true,
"translation_m": 1.6096332607990603e-10,
"rotation_deg": 3.2573047951731743e-09
},
{
"cost": 257.915846520835,
"success": true,
"translation_m": 1.7670480374755598e-10,
"rotation_deg": 6.1834270102153095e-09
},
{
"cost": 257.915846520835,
"success": true,
"translation_m": 4.1405468581662865e-10,
"rotation_deg": 3.068020689667501e-08
},
{
"cost": 257.9158465208356,
"success": true,
"translation_m": 2.8335867565734006e-09,
"rotation_deg": 1.5660913277854904e-07
},
{
"cost": 257.915846520835,
"success": true,
"translation_m": 1.0113279249597898e-10,
"rotation_deg": 1.1726291770865867e-09
},
{
"cost": 257.91584652083503,
"success": true,
"translation_m": 8.073503715426879e-10,
"rotation_deg": 4.276975901573228e-08
},
{
"cost": 257.91584652083486,
"success": true,
"translation_m": 3.469446951953614e-18,
"rotation_deg": 0.0
},
{
"cost": 257.91584652083515,
"success": true,
"translation_m": 1.698393313088208e-09,
"rotation_deg": 8.683351386297902e-08
},
{
"cost": 257.91584652083503,
"success": true,
"translation_m": 1.831365187011624e-10,
"rotation_deg": 1.6896050804471163e-09
},
{
"cost": 257.91584652083503,
"success": true,
"translation_m": 1.2207922904627949e-09,
"rotation_deg": 2.6207051319974274e-08
},
{
"cost": 257.9158465208349,
"success": true,
"translation_m": 2.9844783853630704e-10,
"rotation_deg": 1.1466486750928911e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.0020832827985508263,
0.002063603632322515,
0.001427746471392659,
0.07576290622767821,
0.06304875844333606,
0.07843172452171372
],
"p025": [
1.2941517658812944,
-0.0068139260683400035,
0.7194879609149559,
-0.932759562453139,
1.0361273609600192,
-1.0172648960899553
],
"p975": [
1.303011833178259,
0.0009615093863316334,
0.7242819230641808,
-0.6514715860744424,
1.2471483979735007,
-0.7328998428204786
]
}
}
@@ -1,109 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,4.069460063439237,24.612641616688823,0.7376764924448849,0.11846276711125131,6,14.186383674198092,0.007238562624113292,0.02790414903884654,1.0,True,
0,2,8.883155687691525,14.186041609026283,0.617186536801874,0.12801123590557925,6,36.79061260583155,0.006865219918284302,0.20055597955733165,1.0,True,
0,3,5.800196618465403,50.885974946353855,0.7186066691459031,0.11701588647718943,6,18.363958192984455,0.008227849157773135,0.05354665376691754,1.0,True,
1,2,4.892046307546544,10.426600007662538,0.7423043095866315,0.11327867264180574,6,26.05793878332379,0.01880830643908174,0.13698190350335646,1.0,True,
1,3,1.7315947839093804,26.273333329665036,0.8389134554643083,0.10681097771213023,6,14.956194090958816,0.0035146019341874887,0.1349785173147079,1.0,True,
1,4,1.6946255625760025,60.40345832959281,0.88,0.10289486740770283,6,11.829281279209892,0.006064649004018339,0.061683233541617866,1.0,True,
2,3,3.2805755806518446,36.69993333732758,0.795020120724346,0.10968948046836192,6,23.96630628312886,0.006456546110122383,0.030970536985363332,1.0,True,
2,4,4.866335020594746,70.83005833725535,0.7190493965409979,0.11680954298455397,6,23.730154915082874,0.005632827193528356,0.03284052493715785,1.0,True,
2,5,1.8274406190287722,30.448549979291712,0.7598566308243727,0.11774293624986373,6,16.599379025063065,0.028141707120452414,0.19962462817569399,1.0,True,
3,4,1.75881263274858,34.13012499992777,0.83898411109721,0.10512726552504312,6,15.664666117555983,0.006186049607122224,0.016880074405568043,1.0,True,
3,5,2.1020200425132134,67.14848331661929,0.7968186901951038,0.11623997504357782,6,18.1548400244513,0.021983524103315014,0.3960603757299183,1.0,True,
3,6,5.791805311102367,61.163322289150074,0.6568381430363864,0.12435814704811046,6,25.0151910725651,0.008738020425158864,0.1291569973379011,1.0,True,
4,5,3.30592832159088,101.27860831654709,0.7543039842597147,0.11308907219490882,6,19.690455732375476,0.002243469564109645,0.06843841908142442,1.0,True,
4,6,6.453995240105232,95.29344728907782,0.6218497827436374,0.12814112793605542,6,41.84651093530334,0.01600824572236542,0.4490447249637784,1.0,True,
4,7,9.537609568572432,26.32130681988008,0.6169457128361238,0.13205154815512993,6,36.92786505190044,0.019160428104594212,0.2888349968548246,1.0,True,
5,6,3.7769167422851373,5.985161027469212,0.7372055740535208,0.1175976253407229,6,19.32269960027907,0.013833903611932107,0.01952771029395653,1.0,True,
5,7,6.565348405821576,74.95730149666699,0.6841773746535651,0.11964187966504931,6,27.33180748081407,0.003240486196092054,0.04738439683023512,1.0,True,
5,8,6.3343271669452825,107.99940292217995,0.6521066412758867,0.12472719695199193,6,19.156993592870748,0.0278691016568626,0.41056933218195657,1.0,True,
6,7,3.1558607172566147,68.97214046919777,0.7538481109273629,0.11470554120698542,6,17.160170663404163,0.03433121044907878,0.14981218442224864,1.0,True,
6,8,3.3979014114419868,102.01424189471071,0.683003003003003,0.11564979549315224,6,20.447019845630425,0.008147035817338538,0.038229943243018406,1.0,True,
6,9,0.28270347875173524,124.11602215258995,0.7360264227642277,0.11829700338913093,6,18.21588471622476,0.003942462178993821,0.004948404195791413,1.0,True,
7,8,4.78580085090425,33.04210142551296,0.6644591611479028,0.12091344193997677,6,22.65051252921267,0.010087854632047892,0.1144705976875931,1.0,True,
7,9,2.876695741106431,166.91183737821345,0.6157641864692897,0.12124276796057824,6,31.889839980753695,2.858085971145254,5.202834749913653,1.0,False,forward_reverse_translation;forward_reverse_rotation
7,10,3.5227760858025783,151.5297683494061,0.8421725239616613,0.10512064341715703,6,18.208137447441548,0.00590396821278501,0.011716048666689089,1.0,True,
8,9,3.469611483011297,133.86973595269956,0.5997550520514391,0.12251997518546373,6,26.58434328826198,0.1455308769088698,0.6888512968600221,1.0,False,forward_reverse_translation;forward_reverse_rotation
8,10,8.226583602288494,175.42813022508852,0.5915068162625166,0.1229044134151169,6,28.111420003057543,0.008997663249148741,0.15439288797351725,1.0,True,
8,11,1.865267488778983,173.7180803410843,0.6836137963957513,0.11276660610764273,6,37.61742547586071,0.1113060196402131,0.53316971567076,1.0,False,forward_reverse_translation;forward_reverse_rotation
9,10,5.488028285806731,41.558394272381754,0.5969882593159775,0.11948988234049264,6,38.89573848099908,0.0030407162313759195,0.04107484998318919,1.0,True,
9,11,4.718056434111957,39.84834438838189,0.593742114559677,0.12239484647700946,6,46.81089854115947,0.035258275490363276,0.11274694382482037,1.0,True,
9,12,4.0664516687652705,11.300244475855449,0.6153363453815262,0.12504774785186165,6,23.277303065116303,0.0752860327247449,0.25939502405614967,1.0,True,
10,11,8.48963239412477,1.7100498839998592,0.5888198757763975,0.12435475144629402,6,51.68982317778118,0.008996147539897087,0.2187503499467401,1.0,True,
10,12,7.8510898708654135,30.258149796526293,0.5523974295600593,0.12600876663407296,6,24.040230371790127,0.0067913142930030295,0.19210976651930364,1.0,True,
10,13,7.303425556850936,93.89697482620899,0.48622589531680444,0.12387372192061825,6,40.15734453396082,0.010457065237222635,0.051939983599844905,1.0,True,
11,12,0.684356309096518,28.54809991252644,0.8081153752138841,0.09827968392237502,6,14.074429682972724,0.003170825002365958,0.052994059649638055,1.0,True,
11,13,4.983180422136547,92.18692494220912,0.4904655770183259,0.13065086109778945,6,59.94917005604024,0.03026165336674197,0.022229096602302635,1.0,True,
11,14,7.513058208926106,116.17598776756182,0.5502994743918836,0.13363854913882675,6,76.59552817138297,0.012728663920096705,0.13777836936248603,1.0,True,
12,13,4.470221622128888,63.638825029682685,0.5394185760039418,0.1291861812905223,6,40.18929295270992,0.016569656651710556,0.06971243680146068,1.0,True,
12,14,7.042432348069883,87.62788785503537,0.5838501763346711,0.13149007038687927,6,46.68047224389145,0.016475747103725697,0.027479170527625274,1.0,True,
12,15,9.425648786798952,64.11974003309916,0.512344920771404,0.13771827771927672,6,83.08102250810028,0.1594220156320846,0.7727589642419826,1.0,False,forward_reverse_translation;forward_reverse_rotation
13,14,2.6059162757855927,23.989062825352686,0.6685967722064802,0.11944947118678222,6,17.494241627788213,0.00889966253307221,0.1868503363813343,1.0,True,
13,15,4.985522367267706,0.4809150034164723,0.6380833851897947,0.12132550246856395,6,19.285114979899365,0.011310526444604854,0.11618951108877962,1.0,True,
13,16,5.330126890587504,0.570225046299944,0.5094008523439458,0.12969283093489314,6,23.287780580490335,0.01929138406979036,0.6381307294537529,1.0,False,forward_reverse_rotation
14,15,2.3845573265941185,23.508147821936216,0.7915233415233415,0.11297936021484274,6,14.802453343324077,0.04714013527415902,0.5990777245962995,1.0,False,forward_reverse_rotation
14,16,7.871327660405588,24.55928787165262,0.515650129902264,0.1258655742770286,6,27.98905523695805,0.019790578845351906,0.2492103704468241,1.0,True,
14,17,6.334147330965719,0.13339551798522414,0.6016802569804793,0.12195151942370595,6,25.851285634799194,0.01939980613812204,0.1992615163030762,1.0,True,
15,16,10.188241681839806,1.051140049716416,0.4590676165479315,0.13331101566670972,6,37.36189113980903,0.03193705319987942,0.25820325147713563,1.0,True,
15,17,8.639041695194567,23.641543339921444,0.5389415876185721,0.1297159188720241,6,23.825996467364362,0.007152603768137945,0.01099978555369691,1.0,True,
15,18,9.620687246763701,76.25281000098852,0.5202642612120442,0.13378678930694327,6,39.71428865706424,0.023698091864950893,0.7026335973530661,1.0,False,forward_reverse_rotation
16,17,1.5531467972267479,24.69268338963786,0.7229415461973602,0.10903876418375444,6,27.565368871601265,0.004743603748938733,0.03110066538977425,1.0,True,
16,18,0.5677742310084086,77.30395005070493,0.75774251343742,0.10672872147965808,6,23.961833593584473,0.00729627345064471,0.5370128665073076,1.0,False,forward_reverse_rotation
16,19,2.9811390265794215,109.91770005034847,0.624375,0.11606003815798548,6,43.92870457834769,0.00942822069733503,0.10349184268425643,1.0,True,
17,18,0.98603936348044,52.61126666106708,0.8035782747603833,0.11258525838778834,6,10.5263751279628,0.04456291633933312,0.40754887525204303,1.0,True,
17,19,3.326868398717413,85.22501666071064,0.667207589564349,0.1151980232980854,6,37.82913063903142,0.002550382605456025,0.05599236133477508,1.0,True,
17,20,1.702964560097507,146.95247656520317,0.6696552595024624,0.11181113630432839,6,22.83917826847431,0.009851652453759501,0.030403861001117326,1.0,True,
18,19,3.0423123591285863,32.61374999964355,0.7803049555273189,0.10890373850857962,6,14.866928278077225,0.0027074586252039488,0.03345524421318835,1.0,True,
18,20,1.0853574230860805,94.34120990413592,0.7890203137053227,0.110891959946164,6,9.73093989119612,0.07641393239305394,0.480643469622101,1.0,True,
18,21,0.7190584934612743,134.43032499953063,0.7686106562539362,0.1151576675189467,6,11.132461972272983,0.012325022302827005,0.06184414805686676,1.0,True,
19,20,1.9962827272376449,61.72745990449234,0.7206177800100452,0.11075109929370276,6,18.593207910714877,0.06755956873701982,0.6275145294718035,1.0,False,forward_reverse_rotation
19,21,3.133843614009462,101.81657499988698,0.6599384615384616,0.1100348641166372,6,24.889550971173787,0.032753113036640115,0.1570816751009414,1.0,True,
19,22,3.558853688535236,131.87013333415302,0.6354319180087847,0.11655958277402616,6,35.20679617831266,0.011678083327496752,0.14115606360994692,1.0,True,
20,21,1.4312693216245356,40.08911509539463,0.8091622059006598,0.10860060068735904,6,9.844983425406634,0.004342811149796408,0.43079835067471983,1.0,True,
20,22,2.8745434122269677,70.1426734296607,0.7075518262586377,0.11619246575360609,6,10.41692741032582,0.03233653011234762,0.3501326921447133,1.0,True,
20,23,2.368927629183393,88.7954400941961,0.7127672722778395,0.11187552234677736,6,10.890181651202985,0.0036477332397017036,0.03588537530780425,1.0,True,
21,22,1.9888588003695142,30.053558334266054,0.7451905626134301,0.11103160300292489,6,9.138865693353942,0.007025231148999399,0.031656114821116355,1.0,True,
21,23,1.9477165743251885,48.70632499880147,0.7537566650508968,0.1091762180475198,6,10.033043192754391,0.0026262958914527778,0.05939834892732321,1.0,True,
21,24,3.76075382790461,86.89547500633407,0.7108181370133071,0.1147630411233105,6,12.077810466162274,0.002611195084459223,0.042823121286843194,1.0,True,
22,23,0.8778876913955667,18.652766664535406,0.8809323561215908,0.09065520084082093,6,9.426617095196006,0.00074030291113835,0.005760006892562891,1.0,True,
22,24,2.2510479983846268,56.84191667206801,0.7459386832783681,0.1116686389188481,6,10.471980698049531,0.010212372381123916,0.01461127103474581,1.0,True,
22,25,3.452614527841686,105.36038662410485,0.6250595521676989,0.10935727133461083,6,47.514851436189325,0.013489723519689117,0.0723917800582207,1.0,True,
23,24,1.8212773036309853,38.18915000753262,0.7936138977244923,0.11107653584131949,6,10.660643490600723,0.008437497431588122,0.2765568737620497,1.0,True,
23,25,2.999856552735995,86.70761995956946,0.6337826553739712,0.11196536842375276,6,43.84810300726168,0.02359951283541323,0.10308564406068685,1.0,True,
23,26,1.7088514993141615,157.34900000166795,0.6073053892215569,0.11004156310392302,6,52.70992994760862,0.013062761031411258,0.0548185753269731,1.0,True,
24,25,1.2059352225587747,48.51846995203683,0.7898629804777495,0.11080878069613129,6,17.323052863790767,0.024355899665769485,0.10833606018329535,1.0,True,
24,26,1.1958827550030364,119.15984999413537,0.7515217920623326,0.10216449744519186,6,27.478293204817643,0.010967953426658109,0.044641472084512177,1.0,True,
24,27,3.786115539231191,149.59794999698258,0.6259589210591437,0.11074683701330018,6,26.105827828207687,0.04374270593226806,0.34168251600562055,1.0,True,
25,26,1.8270495459501794,70.64138004209858,0.8273774189718628,0.10613402567174812,6,17.478877580241615,0.018863132797671257,0.12251687299132978,1.0,True,
25,27,4.741885618180033,101.07948004494568,0.6236883367506936,0.11275084173352168,6,26.65509822252546,0.005757137825848521,0.2558617834036415,1.0,True,
25,28,3.8640843382258447,141.59343004213218,0.5871679316888045,0.11732003715351383,6,52.15762909847497,1.0486443236448235,4.536374847153588,1.0,False,forward_reverse_translation;forward_reverse_rotation
26,27,2.939444415707082,30.43810000284707,0.6585129571324776,0.10848902314415616,6,30.227639491425478,0.002959097196576797,0.043581628031778105,1.0,True,
26,28,2.285770454773634,70.95205000003368,0.6648410525062507,0.11120026543063653,6,45.565898082132684,0.012512803173543077,0.11122589391716618,1.0,True,
26,29,3.6568094249627374,131.92299999999997,0.5895513507080804,0.11693751976202812,6,62.1400238672027,2.7672344834891307,9.168367379205225,0.0,False,forward_reverse_translation;forward_reverse_rotation;multistart_instability
27,28,2.3764785758716087,40.513949997186636,0.7954517962985364,0.10154002419986238,6,26.01517111533084,0.019135551099374308,0.08227568287606397,1.0,True,
27,29,4.061689152213973,101.48489999715295,0.7446499818643453,0.1104935519181424,6,32.698094109014136,0.015390416284740782,0.08645102756020058,1.0,True,
27,30,5.033742765789926,178.61309998505533,0.583363515634432,0.11446907648011068,6,105.65813856703667,0.017491035693048888,0.22327775856236398,0.0,False,multistart_instability
28,29,1.7860052935263149,60.970949999966315,0.8317879220161674,0.10401467258245657,6,16.856539687156317,0.007126704551442278,0.059447117802805614,1.0,True,
28,30,7.378510482049102,138.09914998778677,0.540360873694207,0.1217315596532435,6,243.03186464572013,0.02476143939627759,0.2783665026489561,1.0,True,
28,31,8.396001985859645,161.15751666826222,0.5051186318198242,0.12667907013046822,6,145.12677311467613,0.01381623315543165,0.08866229443960012,1.0,True,
29,30,8.925911734961222,77.12819998782052,0.5223065970574277,0.12780035193537048,6,94.88866430179526,0.06232017355575957,1.955625956099923,1.0,False,forward_reverse_rotation
29,31,9.936139535050964,100.18656666829587,0.49440231130371975,0.12866710903574613,6,130.4988571288183,0.047123741889749056,0.2295904679982487,1.0,True,
29,32,9.719184595429152,159.1482027457047,0.49802134548507015,0.12675987702934546,6,49.64602672737782,0.0323736334045635,0.06974950067660468,0.0,False,multistart_instability
30,31,1.0176267260390144,23.058366680475352,0.8480586608967424,0.09667505139943416,6,22.5712438700004,0.01573204986385798,0.04061482397026774,1.0,True,
30,32,0.8427696971904044,82.02000275788396,0.867680517303317,0.0986734040048058,6,23.367311395821964,0.002023273028745447,0.014811950864385802,1.0,True,
30,33,1.1320092061720382,147.1799498371321,0.7995722941665676,0.10006346131537393,6,41.688755802373954,0.00887908049317058,0.048438711468841336,1.0,True,
31,32,0.2771314063233405,58.9616360774086,0.8486026731470231,0.09714101002609693,6,27.412782801978597,0.012921368358244189,0.05809273577687571,1.0,True,
31,33,0.5409306841643147,124.12158315665668,0.07871263259402121,0.14967084978243636,6,33.0912130689722,2.900706563387122,12.11541439568944,1.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
31,34,0.9901318542574941,155.5976733552555,0.7813404050144648,0.09211161518215291,6,17.31754498769328,3.351107529092291,8.098567652508597,0.0,False,forward_reverse_translation;forward_reverse_rotation;multistart_instability
32,33,0.38765596924480794,65.15994707924807,0.8592699327569645,0.08972486966187442,6,22.68434781952533,0.0035725430520846596,0.009168450597030125,1.0,True,
32,34,1.0327853226589305,96.63603727784675,0.8328530259365994,0.09815070141607997,6,23.927327238925002,0.04150636593087017,1.4498937658029205,1.0,False,forward_reverse_rotation
32,35,1.1947451269258382,131.6892972449946,0.8031309297912713,0.09391797152520207,6,30.896133075774756,0.007719527793580684,0.006042163579184511,0.0,False,multistart_instability
33,34,0.7453275493729801,31.47609019859864,0.8676435549201811,0.0964383255266311,6,26.835745049910184,0.02602048161602559,1.951142742234491,1.0,False,forward_reverse_rotation
33,35,1.0924186931915323,66.52935016574651,0.8329018592610026,0.09179860947142506,6,17.934600324801995,0.0072384331805243046,0.028209706778456432,1.0,True,
33,36,3.335020341384374,123.21987515531416,0.760797342192691,0.09861359027653524,6,26.32312350297475,0.0022735557932631,0.12221117701824208,1.0,True,
34,35,0.6186130964444055,35.05325996714787,0.8649093904448105,0.0788491357224537,6,23.02575456989985,0.0032110784907267375,0.015379666997505564,1.0,True,
34,36,3.114273556969299,91.74378495671547,0.7729789590254706,0.09845381444357724,6,36.91664640012635,0.011794412591703963,0.006135949966801849,1.0,True,
34,37,2.8155528331227235,126.08390993626574,0.722881252293017,0.09759501600127507,6,42.82845764024001,0.024742240312777743,0.08718512569927171,1.0,True,
35,36,2.4989423629184655,56.69052498956759,0.7695298262665533,0.09495386680108024,6,27.978829086780696,0.006644101856716534,0.038610475450088305,1.0,True,
35,37,2.2182956249874577,91.03064996911786,0.7217727327617437,0.10621413586570766,6,32.52725359303394,0.04503438705750094,1.5781812743250268,1.0,False,forward_reverse_rotation
36,37,0.5129211474320938,34.34012497955026,0.8785082174462705,0.08834636280188386,6,23.324824248042262,0.003787237363253161,0.027331592166342466,1.0,True,
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 4.069460063439237 24.612641616688823 0.7376764924448849 0.11846276711125131 6 14.186383674198092 0.007238562624113292 0.02790414903884654 1.0 True
3 0 2 8.883155687691525 14.186041609026283 0.617186536801874 0.12801123590557925 6 36.79061260583155 0.006865219918284302 0.20055597955733165 1.0 True
4 0 3 5.800196618465403 50.885974946353855 0.7186066691459031 0.11701588647718943 6 18.363958192984455 0.008227849157773135 0.05354665376691754 1.0 True
5 1 2 4.892046307546544 10.426600007662538 0.7423043095866315 0.11327867264180574 6 26.05793878332379 0.01880830643908174 0.13698190350335646 1.0 True
6 1 3 1.7315947839093804 26.273333329665036 0.8389134554643083 0.10681097771213023 6 14.956194090958816 0.0035146019341874887 0.1349785173147079 1.0 True
7 1 4 1.6946255625760025 60.40345832959281 0.88 0.10289486740770283 6 11.829281279209892 0.006064649004018339 0.061683233541617866 1.0 True
8 2 3 3.2805755806518446 36.69993333732758 0.795020120724346 0.10968948046836192 6 23.96630628312886 0.006456546110122383 0.030970536985363332 1.0 True
9 2 4 4.866335020594746 70.83005833725535 0.7190493965409979 0.11680954298455397 6 23.730154915082874 0.005632827193528356 0.03284052493715785 1.0 True
10 2 5 1.8274406190287722 30.448549979291712 0.7598566308243727 0.11774293624986373 6 16.599379025063065 0.028141707120452414 0.19962462817569399 1.0 True
11 3 4 1.75881263274858 34.13012499992777 0.83898411109721 0.10512726552504312 6 15.664666117555983 0.006186049607122224 0.016880074405568043 1.0 True
12 3 5 2.1020200425132134 67.14848331661929 0.7968186901951038 0.11623997504357782 6 18.1548400244513 0.021983524103315014 0.3960603757299183 1.0 True
13 3 6 5.791805311102367 61.163322289150074 0.6568381430363864 0.12435814704811046 6 25.0151910725651 0.008738020425158864 0.1291569973379011 1.0 True
14 4 5 3.30592832159088 101.27860831654709 0.7543039842597147 0.11308907219490882 6 19.690455732375476 0.002243469564109645 0.06843841908142442 1.0 True
15 4 6 6.453995240105232 95.29344728907782 0.6218497827436374 0.12814112793605542 6 41.84651093530334 0.01600824572236542 0.4490447249637784 1.0 True
16 4 7 9.537609568572432 26.32130681988008 0.6169457128361238 0.13205154815512993 6 36.92786505190044 0.019160428104594212 0.2888349968548246 1.0 True
17 5 6 3.7769167422851373 5.985161027469212 0.7372055740535208 0.1175976253407229 6 19.32269960027907 0.013833903611932107 0.01952771029395653 1.0 True
18 5 7 6.565348405821576 74.95730149666699 0.6841773746535651 0.11964187966504931 6 27.33180748081407 0.003240486196092054 0.04738439683023512 1.0 True
19 5 8 6.3343271669452825 107.99940292217995 0.6521066412758867 0.12472719695199193 6 19.156993592870748 0.0278691016568626 0.41056933218195657 1.0 True
20 6 7 3.1558607172566147 68.97214046919777 0.7538481109273629 0.11470554120698542 6 17.160170663404163 0.03433121044907878 0.14981218442224864 1.0 True
21 6 8 3.3979014114419868 102.01424189471071 0.683003003003003 0.11564979549315224 6 20.447019845630425 0.008147035817338538 0.038229943243018406 1.0 True
22 6 9 0.28270347875173524 124.11602215258995 0.7360264227642277 0.11829700338913093 6 18.21588471622476 0.003942462178993821 0.004948404195791413 1.0 True
23 7 8 4.78580085090425 33.04210142551296 0.6644591611479028 0.12091344193997677 6 22.65051252921267 0.010087854632047892 0.1144705976875931 1.0 True
24 7 9 2.876695741106431 166.91183737821345 0.6157641864692897 0.12124276796057824 6 31.889839980753695 2.858085971145254 5.202834749913653 1.0 False forward_reverse_translation;forward_reverse_rotation
25 7 10 3.5227760858025783 151.5297683494061 0.8421725239616613 0.10512064341715703 6 18.208137447441548 0.00590396821278501 0.011716048666689089 1.0 True
26 8 9 3.469611483011297 133.86973595269956 0.5997550520514391 0.12251997518546373 6 26.58434328826198 0.1455308769088698 0.6888512968600221 1.0 False forward_reverse_translation;forward_reverse_rotation
27 8 10 8.226583602288494 175.42813022508852 0.5915068162625166 0.1229044134151169 6 28.111420003057543 0.008997663249148741 0.15439288797351725 1.0 True
28 8 11 1.865267488778983 173.7180803410843 0.6836137963957513 0.11276660610764273 6 37.61742547586071 0.1113060196402131 0.53316971567076 1.0 False forward_reverse_translation;forward_reverse_rotation
29 9 10 5.488028285806731 41.558394272381754 0.5969882593159775 0.11948988234049264 6 38.89573848099908 0.0030407162313759195 0.04107484998318919 1.0 True
30 9 11 4.718056434111957 39.84834438838189 0.593742114559677 0.12239484647700946 6 46.81089854115947 0.035258275490363276 0.11274694382482037 1.0 True
31 9 12 4.0664516687652705 11.300244475855449 0.6153363453815262 0.12504774785186165 6 23.277303065116303 0.0752860327247449 0.25939502405614967 1.0 True
32 10 11 8.48963239412477 1.7100498839998592 0.5888198757763975 0.12435475144629402 6 51.68982317778118 0.008996147539897087 0.2187503499467401 1.0 True
33 10 12 7.8510898708654135 30.258149796526293 0.5523974295600593 0.12600876663407296 6 24.040230371790127 0.0067913142930030295 0.19210976651930364 1.0 True
34 10 13 7.303425556850936 93.89697482620899 0.48622589531680444 0.12387372192061825 6 40.15734453396082 0.010457065237222635 0.051939983599844905 1.0 True
35 11 12 0.684356309096518 28.54809991252644 0.8081153752138841 0.09827968392237502 6 14.074429682972724 0.003170825002365958 0.052994059649638055 1.0 True
36 11 13 4.983180422136547 92.18692494220912 0.4904655770183259 0.13065086109778945 6 59.94917005604024 0.03026165336674197 0.022229096602302635 1.0 True
37 11 14 7.513058208926106 116.17598776756182 0.5502994743918836 0.13363854913882675 6 76.59552817138297 0.012728663920096705 0.13777836936248603 1.0 True
38 12 13 4.470221622128888 63.638825029682685 0.5394185760039418 0.1291861812905223 6 40.18929295270992 0.016569656651710556 0.06971243680146068 1.0 True
39 12 14 7.042432348069883 87.62788785503537 0.5838501763346711 0.13149007038687927 6 46.68047224389145 0.016475747103725697 0.027479170527625274 1.0 True
40 12 15 9.425648786798952 64.11974003309916 0.512344920771404 0.13771827771927672 6 83.08102250810028 0.1594220156320846 0.7727589642419826 1.0 False forward_reverse_translation;forward_reverse_rotation
41 13 14 2.6059162757855927 23.989062825352686 0.6685967722064802 0.11944947118678222 6 17.494241627788213 0.00889966253307221 0.1868503363813343 1.0 True
42 13 15 4.985522367267706 0.4809150034164723 0.6380833851897947 0.12132550246856395 6 19.285114979899365 0.011310526444604854 0.11618951108877962 1.0 True
43 13 16 5.330126890587504 0.570225046299944 0.5094008523439458 0.12969283093489314 6 23.287780580490335 0.01929138406979036 0.6381307294537529 1.0 False forward_reverse_rotation
44 14 15 2.3845573265941185 23.508147821936216 0.7915233415233415 0.11297936021484274 6 14.802453343324077 0.04714013527415902 0.5990777245962995 1.0 False forward_reverse_rotation
45 14 16 7.871327660405588 24.55928787165262 0.515650129902264 0.1258655742770286 6 27.98905523695805 0.019790578845351906 0.2492103704468241 1.0 True
46 14 17 6.334147330965719 0.13339551798522414 0.6016802569804793 0.12195151942370595 6 25.851285634799194 0.01939980613812204 0.1992615163030762 1.0 True
47 15 16 10.188241681839806 1.051140049716416 0.4590676165479315 0.13331101566670972 6 37.36189113980903 0.03193705319987942 0.25820325147713563 1.0 True
48 15 17 8.639041695194567 23.641543339921444 0.5389415876185721 0.1297159188720241 6 23.825996467364362 0.007152603768137945 0.01099978555369691 1.0 True
49 15 18 9.620687246763701 76.25281000098852 0.5202642612120442 0.13378678930694327 6 39.71428865706424 0.023698091864950893 0.7026335973530661 1.0 False forward_reverse_rotation
50 16 17 1.5531467972267479 24.69268338963786 0.7229415461973602 0.10903876418375444 6 27.565368871601265 0.004743603748938733 0.03110066538977425 1.0 True
51 16 18 0.5677742310084086 77.30395005070493 0.75774251343742 0.10672872147965808 6 23.961833593584473 0.00729627345064471 0.5370128665073076 1.0 False forward_reverse_rotation
52 16 19 2.9811390265794215 109.91770005034847 0.624375 0.11606003815798548 6 43.92870457834769 0.00942822069733503 0.10349184268425643 1.0 True
53 17 18 0.98603936348044 52.61126666106708 0.8035782747603833 0.11258525838778834 6 10.5263751279628 0.04456291633933312 0.40754887525204303 1.0 True
54 17 19 3.326868398717413 85.22501666071064 0.667207589564349 0.1151980232980854 6 37.82913063903142 0.002550382605456025 0.05599236133477508 1.0 True
55 17 20 1.702964560097507 146.95247656520317 0.6696552595024624 0.11181113630432839 6 22.83917826847431 0.009851652453759501 0.030403861001117326 1.0 True
56 18 19 3.0423123591285863 32.61374999964355 0.7803049555273189 0.10890373850857962 6 14.866928278077225 0.0027074586252039488 0.03345524421318835 1.0 True
57 18 20 1.0853574230860805 94.34120990413592 0.7890203137053227 0.110891959946164 6 9.73093989119612 0.07641393239305394 0.480643469622101 1.0 True
58 18 21 0.7190584934612743 134.43032499953063 0.7686106562539362 0.1151576675189467 6 11.132461972272983 0.012325022302827005 0.06184414805686676 1.0 True
59 19 20 1.9962827272376449 61.72745990449234 0.7206177800100452 0.11075109929370276 6 18.593207910714877 0.06755956873701982 0.6275145294718035 1.0 False forward_reverse_rotation
60 19 21 3.133843614009462 101.81657499988698 0.6599384615384616 0.1100348641166372 6 24.889550971173787 0.032753113036640115 0.1570816751009414 1.0 True
61 19 22 3.558853688535236 131.87013333415302 0.6354319180087847 0.11655958277402616 6 35.20679617831266 0.011678083327496752 0.14115606360994692 1.0 True
62 20 21 1.4312693216245356 40.08911509539463 0.8091622059006598 0.10860060068735904 6 9.844983425406634 0.004342811149796408 0.43079835067471983 1.0 True
63 20 22 2.8745434122269677 70.1426734296607 0.7075518262586377 0.11619246575360609 6 10.41692741032582 0.03233653011234762 0.3501326921447133 1.0 True
64 20 23 2.368927629183393 88.7954400941961 0.7127672722778395 0.11187552234677736 6 10.890181651202985 0.0036477332397017036 0.03588537530780425 1.0 True
65 21 22 1.9888588003695142 30.053558334266054 0.7451905626134301 0.11103160300292489 6 9.138865693353942 0.007025231148999399 0.031656114821116355 1.0 True
66 21 23 1.9477165743251885 48.70632499880147 0.7537566650508968 0.1091762180475198 6 10.033043192754391 0.0026262958914527778 0.05939834892732321 1.0 True
67 21 24 3.76075382790461 86.89547500633407 0.7108181370133071 0.1147630411233105 6 12.077810466162274 0.002611195084459223 0.042823121286843194 1.0 True
68 22 23 0.8778876913955667 18.652766664535406 0.8809323561215908 0.09065520084082093 6 9.426617095196006 0.00074030291113835 0.005760006892562891 1.0 True
69 22 24 2.2510479983846268 56.84191667206801 0.7459386832783681 0.1116686389188481 6 10.471980698049531 0.010212372381123916 0.01461127103474581 1.0 True
70 22 25 3.452614527841686 105.36038662410485 0.6250595521676989 0.10935727133461083 6 47.514851436189325 0.013489723519689117 0.0723917800582207 1.0 True
71 23 24 1.8212773036309853 38.18915000753262 0.7936138977244923 0.11107653584131949 6 10.660643490600723 0.008437497431588122 0.2765568737620497 1.0 True
72 23 25 2.999856552735995 86.70761995956946 0.6337826553739712 0.11196536842375276 6 43.84810300726168 0.02359951283541323 0.10308564406068685 1.0 True
73 23 26 1.7088514993141615 157.34900000166795 0.6073053892215569 0.11004156310392302 6 52.70992994760862 0.013062761031411258 0.0548185753269731 1.0 True
74 24 25 1.2059352225587747 48.51846995203683 0.7898629804777495 0.11080878069613129 6 17.323052863790767 0.024355899665769485 0.10833606018329535 1.0 True
75 24 26 1.1958827550030364 119.15984999413537 0.7515217920623326 0.10216449744519186 6 27.478293204817643 0.010967953426658109 0.044641472084512177 1.0 True
76 24 27 3.786115539231191 149.59794999698258 0.6259589210591437 0.11074683701330018 6 26.105827828207687 0.04374270593226806 0.34168251600562055 1.0 True
77 25 26 1.8270495459501794 70.64138004209858 0.8273774189718628 0.10613402567174812 6 17.478877580241615 0.018863132797671257 0.12251687299132978 1.0 True
78 25 27 4.741885618180033 101.07948004494568 0.6236883367506936 0.11275084173352168 6 26.65509822252546 0.005757137825848521 0.2558617834036415 1.0 True
79 25 28 3.8640843382258447 141.59343004213218 0.5871679316888045 0.11732003715351383 6 52.15762909847497 1.0486443236448235 4.536374847153588 1.0 False forward_reverse_translation;forward_reverse_rotation
80 26 27 2.939444415707082 30.43810000284707 0.6585129571324776 0.10848902314415616 6 30.227639491425478 0.002959097196576797 0.043581628031778105 1.0 True
81 26 28 2.285770454773634 70.95205000003368 0.6648410525062507 0.11120026543063653 6 45.565898082132684 0.012512803173543077 0.11122589391716618 1.0 True
82 26 29 3.6568094249627374 131.92299999999997 0.5895513507080804 0.11693751976202812 6 62.1400238672027 2.7672344834891307 9.168367379205225 0.0 False forward_reverse_translation;forward_reverse_rotation;multistart_instability
83 27 28 2.3764785758716087 40.513949997186636 0.7954517962985364 0.10154002419986238 6 26.01517111533084 0.019135551099374308 0.08227568287606397 1.0 True
84 27 29 4.061689152213973 101.48489999715295 0.7446499818643453 0.1104935519181424 6 32.698094109014136 0.015390416284740782 0.08645102756020058 1.0 True
85 27 30 5.033742765789926 178.61309998505533 0.583363515634432 0.11446907648011068 6 105.65813856703667 0.017491035693048888 0.22327775856236398 0.0 False multistart_instability
86 28 29 1.7860052935263149 60.970949999966315 0.8317879220161674 0.10401467258245657 6 16.856539687156317 0.007126704551442278 0.059447117802805614 1.0 True
87 28 30 7.378510482049102 138.09914998778677 0.540360873694207 0.1217315596532435 6 243.03186464572013 0.02476143939627759 0.2783665026489561 1.0 True
88 28 31 8.396001985859645 161.15751666826222 0.5051186318198242 0.12667907013046822 6 145.12677311467613 0.01381623315543165 0.08866229443960012 1.0 True
89 29 30 8.925911734961222 77.12819998782052 0.5223065970574277 0.12780035193537048 6 94.88866430179526 0.06232017355575957 1.955625956099923 1.0 False forward_reverse_rotation
90 29 31 9.936139535050964 100.18656666829587 0.49440231130371975 0.12866710903574613 6 130.4988571288183 0.047123741889749056 0.2295904679982487 1.0 True
91 29 32 9.719184595429152 159.1482027457047 0.49802134548507015 0.12675987702934546 6 49.64602672737782 0.0323736334045635 0.06974950067660468 0.0 False multistart_instability
92 30 31 1.0176267260390144 23.058366680475352 0.8480586608967424 0.09667505139943416 6 22.5712438700004 0.01573204986385798 0.04061482397026774 1.0 True
93 30 32 0.8427696971904044 82.02000275788396 0.867680517303317 0.0986734040048058 6 23.367311395821964 0.002023273028745447 0.014811950864385802 1.0 True
94 30 33 1.1320092061720382 147.1799498371321 0.7995722941665676 0.10006346131537393 6 41.688755802373954 0.00887908049317058 0.048438711468841336 1.0 True
95 31 32 0.2771314063233405 58.9616360774086 0.8486026731470231 0.09714101002609693 6 27.412782801978597 0.012921368358244189 0.05809273577687571 1.0 True
96 31 33 0.5409306841643147 124.12158315665668 0.07871263259402121 0.14967084978243636 6 33.0912130689722 2.900706563387122 12.11541439568944 1.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
97 31 34 0.9901318542574941 155.5976733552555 0.7813404050144648 0.09211161518215291 6 17.31754498769328 3.351107529092291 8.098567652508597 0.0 False forward_reverse_translation;forward_reverse_rotation;multistart_instability
98 32 33 0.38765596924480794 65.15994707924807 0.8592699327569645 0.08972486966187442 6 22.68434781952533 0.0035725430520846596 0.009168450597030125 1.0 True
99 32 34 1.0327853226589305 96.63603727784675 0.8328530259365994 0.09815070141607997 6 23.927327238925002 0.04150636593087017 1.4498937658029205 1.0 False forward_reverse_rotation
100 32 35 1.1947451269258382 131.6892972449946 0.8031309297912713 0.09391797152520207 6 30.896133075774756 0.007719527793580684 0.006042163579184511 0.0 False multistart_instability
101 33 34 0.7453275493729801 31.47609019859864 0.8676435549201811 0.0964383255266311 6 26.835745049910184 0.02602048161602559 1.951142742234491 1.0 False forward_reverse_rotation
102 33 35 1.0924186931915323 66.52935016574651 0.8329018592610026 0.09179860947142506 6 17.934600324801995 0.0072384331805243046 0.028209706778456432 1.0 True
103 33 36 3.335020341384374 123.21987515531416 0.760797342192691 0.09861359027653524 6 26.32312350297475 0.0022735557932631 0.12221117701824208 1.0 True
104 34 35 0.6186130964444055 35.05325996714787 0.8649093904448105 0.0788491357224537 6 23.02575456989985 0.0032110784907267375 0.015379666997505564 1.0 True
105 34 36 3.114273556969299 91.74378495671547 0.7729789590254706 0.09845381444357724 6 36.91664640012635 0.011794412591703963 0.006135949966801849 1.0 True
106 34 37 2.8155528331227235 126.08390993626574 0.722881252293017 0.09759501600127507 6 42.82845764024001 0.024742240312777743 0.08718512569927171 1.0 True
107 35 36 2.4989423629184655 56.69052498956759 0.7695298262665533 0.09495386680108024 6 27.978829086780696 0.006644101856716534 0.038610475450088305 1.0 True
108 35 37 2.2182956249874577 91.03064996911786 0.7217727327617437 0.10621413586570766 6 32.52725359303394 0.04503438705750094 1.5781812743250268 1.0 False forward_reverse_rotation
109 36 37 0.5129211474320938 34.34012497955026 0.8785082174462705 0.08834636280188386 6 23.324824248042262 0.003787237363253161 0.027331592166342466 1.0 True
File diff suppressed because it is too large Load Diff
@@ -1,176 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,0.503306788400079,13.198324485965863,0.8131655372700871,0.09008834340898543,6,11.429289586039127,0.0005504552049968047,0.0032916777115618487,1.0,True,
0,2,1.1601020961002007,26.306295080591493,0.8167658604533367,0.09980570916927256,6,11.00789089021616,0.00205395151868756,0.012799633971915293,1.0,True,
0,3,1.1328421148283978,41.74134818989305,0.81441508497705,0.10115686777955255,6,13.837529680361882,0.01247476852224996,0.1726729736128094,1.0,True,
0,4,1.0129799192122786,70.92934830291522,0.7761963190184049,0.10269905695661055,6,12.888313335228592,0.019300920937430674,0.12217052794626229,1.0,True,
0,5,0.9014321094792815,89.27285808969826,0.7735100978813034,0.10986502690369805,6,24.919203290408266,0.0278108340699398,0.2717481445912482,1.0,True,
1,2,0.6927979865343085,13.107970594625625,0.7850287907869482,0.08649388452503427,6,11.757459931907107,0.001960394451155616,0.002128143929965857,1.0,True,
1,3,0.7002295454253883,28.543023703927183,0.7901992730918661,0.09109387779670658,6,12.066030386554463,0.004906057223105903,0.018773640398341965,1.0,True,
1,4,0.8045641659338967,57.731023816949346,0.7439266236985622,0.09680131928922782,6,12.860596463339792,0.020081946886066578,1.2340284819813434,1.0,False,forward_reverse_rotation
1,5,0.7829726518389362,76.07453360373235,0.7313806483915384,0.10148815288043825,6,12.782489568272775,0.016729134900242502,0.06734086907642674,1.0,True,
1,6,0.7843480712672012,108.63393511864574,0.6214689265536724,0.10742176387842234,6,26.39069479810122,0.0027238824581310127,0.04004688680398286,1.0,True,
2,3,0.13949776780243606,15.435053109301553,0.9176300578034682,0.07082931569628453,6,11.740335220665598,0.0016419682635548487,0.0015051284247814798,1.0,True,
2,4,0.6701726006967371,44.62305322232371,0.840540189585768,0.08212714345330237,6,12.917292889611646,0.0015059170263523442,0.004861145455894842,1.0,True,
2,5,0.8004226998626774,62.96656300910673,0.8300970873786407,0.0931389934573794,6,15.74858194202481,0.002555949510569182,0.008486377461290648,1.0,True,
2,6,1.3845111356101025,95.5259645240201,0.6495130297446696,0.10354826871538153,6,15.262952717632835,0.008359384079660144,0.07441619593698878,1.0,True,
2,7,2.161304865409727,119.81081101983789,0.8143257302921169,0.09968516416989152,6,30.540416925007207,0.013121403719342412,0.05039604031914888,1.0,True,
3,4,0.5366157827594368,29.188000113022152,0.8855689764780674,0.07250679559229746,6,11.672391892657863,0.0006574625393083392,0.0008548453445728261,1.0,True,
3,5,0.6760093701980526,47.53150989980517,0.8759311584895967,0.08543306637795112,6,15.073465050917047,0.0011073394938326227,0.004974962253885575,1.0,True,
3,6,1.4361364806393455,80.09091141471853,0.678819891780469,0.10239967326707564,6,23.156860004682848,0.002691305620040523,0.027681404773136364,1.0,True,
3,7,2.1008551524156123,104.37575791053635,0.7961101683853283,0.10180989325686585,6,29.756525470837225,0.023292005056525338,0.174639961337377,1.0,True,
3,8,1.3108481779402037,133.20736428981294,0.11556480999479438,0.1433106939673773,6,147.35707874920627,1.368389528072986,15.0277123732284,1.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
4,5,0.17861948949299924,18.343509786783002,0.8685714285714285,0.07604325543622346,6,12.370184068840063,0.003904582263467037,0.011742002375313174,1.0,True,
4,6,1.5807073315069207,50.90291130169636,0.6822060883963826,0.10567824422734254,6,18.163522769519293,0.011923922180697284,0.08008579261790838,1.0,True,
4,7,1.7804201387535592,75.18775779751417,0.7963870967741935,0.10178391918503964,6,25.315987799570973,0.034377900701078094,0.11532260919614924,1.0,True,
4,8,1.2818497736845669,104.01936417679076,0.7430850379518847,0.10189238984319506,6,25.19640114706588,0.034977663635135596,1.5753470469755222,1.0,False,forward_reverse_rotation
4,9,1.5141865499370524,117.34615495378958,0.0841833440929632,0.15176056899798168,6,84.88516221869183,3.340127368239112,6.177861200193235,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
5,6,1.5316987521992935,32.55940151491337,0.6864384971693258,0.10315026388508003,6,11.505426214947052,0.002552272421554712,0.013899678900349944,1.0,True,
5,7,1.6091514152462776,56.844248010731185,0.8104549602398644,0.09862238510016193,6,16.517299930207333,0.0037398303757535147,0.02129636862756259,1.0,True,
5,8,1.1872485760158462,85.67585439000777,0.7806082661814401,0.10305777405801758,6,17.737819341361416,0.0056799616182010805,0.026182015145595202,1.0,True,
5,9,1.380208837139288,99.00264516700663,0.7946777980693973,0.10313535699942489,6,14.147499646203187,0.06270036555847405,0.33857191756776234,1.0,True,
5,10,1.7506315276318887,115.10127466723206,0.7847418443359877,0.10018431236036145,6,21.425526326745782,0.005291671170548772,0.044796841001461946,1.0,True,
6,7,1.5692385974903325,24.284846495817817,0.7380672159016608,0.1046107504689679,6,13.947054238965462,0.010178220865611676,0.026255002379027764,1.0,True,
6,8,0.5035712140385419,53.11645287509441,0.7026075619295958,0.10337241424878332,6,21.232848227388097,0.017447450845101884,0.1292664848366822,1.0,True,
6,9,0.8508108569116883,66.44324365209327,0.6714210939544621,0.10949604778423808,6,34.21205543097956,0.09491078892598759,0.32255986251320673,1.0,False,forward_reverse_translation
6,10,1.3331914459292633,82.5418731523187,0.6619427982478743,0.10510077922086615,6,31.101566437428897,0.003562383894956786,0.04536548719264196,1.0,True,
6,11,3.16887584646763,119.46156331049859,0.638006230529595,0.1061575017783152,6,31.943306843588733,0.0059304520508679575,0.05963953472442965,1.0,True,
7,8,1.1230406357307108,28.831606379276582,0.8040692297529396,0.09680052952350976,6,22.21980394474879,0.008328073875015064,0.06350723756646647,1.0,True,
7,9,0.7186795671679719,42.158397156275456,0.8274764620076913,0.09296346258223728,6,22.096355228992984,0.0076981468910999155,0.020277033650542,1.0,True,
7,10,0.39293571356254015,58.25702665650087,0.7992429186790236,0.10479299924479576,6,30.246845596558646,0.04240408437264065,1.1111803590641476,1.0,False,forward_reverse_rotation
7,11,2.4544901278439815,95.17671681468076,0.7502523977788995,0.1028589368143411,6,19.931284665592216,0.005620519728387707,0.0303880139721275,1.0,True,
7,12,3.0905023273107046,115.3786462164333,0.7054418372441338,0.10706084863640537,6,10.761985004268995,0.004629206980441498,0.07009059694702204,1.0,True,
8,9,0.4407680716864947,13.326790776998866,0.8539132734003173,0.09158655960119419,6,31.292808872701826,0.0036696927581956673,0.014909075167693285,1.0,True,
8,10,0.968166048306331,29.425420277224287,0.7989328474752733,0.09757506446655329,6,25.45934970841849,0.008689580645481346,0.052297435035790506,1.0,True,
8,11,3.0540124804140354,66.34511043540417,0.6854158802063672,0.10755838259974337,6,42.46956117899474,0.00234148729464824,0.061662020462905004,1.0,True,
8,12,3.652970846697932,86.5470398371567,0.6485376477909147,0.11031208403019,6,30.049664340525695,0.013830104055554564,0.11563630256710061,1.0,True,
8,13,4.357531202056024,107.49623325505803,0.622879241516966,0.1149201207874094,6,27.04257772502661,0.005835943764379069,0.23887217550290574,1.0,True,
9,10,0.5276649044820116,16.098629500225417,0.8486154649947754,0.09691837979566219,6,22.577834737399076,0.007052114296262031,0.2907164943632002,1.0,True,
9,11,2.680593454060616,53.0183196584053,0.6963000378835712,0.10535088240045436,6,39.530571540955094,0.0034527207661208545,0.020238883727394828,1.0,True,
9,12,3.2944321799753977,73.22024906015783,0.6584238791057825,0.10587631557960675,6,33.498316372288826,0.009482405807021465,0.07225186033919398,1.0,True,
9,13,4.1147924441994315,94.16944247805917,0.621557336004006,0.11335203160746431,6,32.6975845279655,0.009011781776631502,0.0416830306778097,1.0,True,
9,14,3.748520283907519,169.69584626488452,0.048890560361037984,0.15557197380465354,6,51.54107837707314,1.0864076801076206,7.184564913859941,0.5,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
10,11,2.249454986440387,36.91969015817989,0.7156362731683045,0.10422606491110974,6,45.45254669271086,0.004301999273657816,0.02361974788713562,1.0,True,
10,12,2.8783779741216167,57.12161955993242,0.692875599852344,0.10691573133186853,6,39.11010182412513,0.004231594662123499,0.01872424915403812,1.0,True,
10,13,3.84803303865234,78.07081297783375,0.6594721262950173,0.10871022234744057,6,43.1464607017966,0.006980776690426113,0.21408921607631748,1.0,True,
10,14,3.3834992499807997,153.59721676465847,0.062245276028158575,0.15570919185507412,6,59.4104405367878,0.09444016841800375,2.8556589503073977,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
10,15,1.4957886147833104,171.72980583515965,0.6232518545542989,0.10969245891269987,6,43.00146365447724,3.0001452916434883,4.8522273147326915,1.0,False,forward_reverse_translation;forward_reverse_rotation
11,12,0.636223282239137,20.20192940175253,0.8688915375446961,0.08660981428891965,6,18.033297623211222,0.005089530929434581,0.03170796903435614,1.0,True,
11,13,2.0145868546459504,41.151122819653864,0.8021741727392188,0.10650327571539893,6,18.339724002801702,0.04485533499047456,0.27313934813876123,1.0,True,
11,14,1.2405786051647103,116.67752660647822,0.7455741626794259,0.11063741423489376,6,20.694961222671232,0.007044503253911164,0.40985193451245056,1.0,True,
11,15,1.4202907399288436,151.3505040066613,0.7466415272213057,0.10329430650455694,6,27.704214205277534,0.13203399207663835,1.4478079414864902,0.5,False,forward_reverse_translation;forward_reverse_rotation
11,16,2.7368971716016928,176.81389445065594,0.78639603721155,0.10318237166131629,6,34.658693494341755,0.008767229441137649,0.032548654712657686,1.0,True,
12,13,1.5928240921286525,20.949193417901323,0.8217283366828231,0.10684146627686454,6,16.400323597466677,0.01763325318199382,0.09467538550034012,1.0,True,
12,14,0.6774809171975742,96.47559720472566,0.7611268939393939,0.10826784336909262,6,10.635638995146312,0.0015931090432955832,0.024585439481643892,1.0,True,
12,15,1.8892292086221258,131.14857460490867,0.7324469325868906,0.11113399174419211,6,19.970471882560926,0.0024416100752998565,0.009279978214820864,1.0,True,
12,16,3.349436875941103,156.6119650489076,0.7500298864315601,0.10525785108693746,6,30.70828038440084,0.0024719134275639418,0.013160987022490347,1.0,True,
12,17,6.51378754358264,111.73754176984298,0.6198434030618207,0.1221546776649581,6,23.54160456185754,0.013538123192296372,0.06236055877935909,1.0,True,
13,14,0.9721300146850552,75.52640378682433,0.8278562107011508,0.10919246415865995,6,12.723402368483741,0.0049872211162087675,0.02566897887278044,1.0,True,
13,15,2.426469315960194,110.19938118700728,0.7886616014026885,0.10800229196760061,6,13.66454080002457,0.0038816141140735755,0.020030260506224723,1.0,True,
13,16,4.157137927296689,135.66277163100625,0.7477833692786964,0.10901310110319071,6,21.034367079780026,0.0024107551433002806,0.01470679715840447,1.0,True,
13,17,6.347445048137873,90.78834835194164,0.6122042632935114,0.12126385638135445,6,27.550293797111443,0.010111269848200304,1.6132660739833655,1.0,False,forward_reverse_rotation
13,18,4.26917989710959,135.79234683500215,0.6756988719960765,0.1140499722068077,6,13.668694297489541,0.010188526275029454,0.05757819838859875,1.0,True,
14,15,2.176233486689304,34.672977400182965,0.7415730337078652,0.11426627617931512,6,13.437209845730706,0.009280638111078932,0.07287904157175247,1.0,True,
14,16,3.79947855245853,60.13636784418198,0.7130173965206958,0.11194096137848975,6,36.60672565292038,0.0004016408999195087,0.020284570842973915,1.0,True,
14,17,6.190474035537447,15.261944565117341,0.6118212736015011,0.11991020962112661,6,17.152314443231333,0.020151321868834806,0.2079666531947748,1.0,True,
14,18,4.170672674565236,60.26594304817776,0.6756292203806016,0.1138218459710723,6,11.041435170572107,0.023698120255922432,0.1321697884270417,1.0,True,
14,19,3.9999134794649294,94.30913149027137,0.6699172941612147,0.112413086617321,6,9.748384934395327,0.018186549996561333,1.2493862686891326,1.0,False,forward_reverse_rotation
15,16,1.7328875589135755,25.463390443999018,0.7714218177520388,0.10015132538295435,6,21.49868629780701,0.007439481433750378,0.036349268136368934,1.0,True,
15,17,8.352264787019024,19.411032835065622,0.5587657459840518,0.12832496127520593,6,38.53228682833441,0.005430301274456062,0.06530638270069017,1.0,True,
15,18,6.346037230040679,25.592965647994788,0.615040502962157,0.11840729454457544,6,21.032065383701333,0.012871328625232324,0.037753566213482644,1.0,True,
15,19,5.607512178689573,59.636154090088375,0.6234350309955026,0.11735435665832353,6,16.270394372537467,0.007833445352022574,0.016491686030251827,1.0,True,
15,20,8.633248754322691,149.96154617253603,0.5562658304185261,0.13192141621005607,6,26.944324835385952,0.023510650105734523,0.673469393155776,1.0,False,forward_reverse_rotation
16,17,9.849975560032544,44.87442327906463,0.5900047370914259,0.1265936504427481,6,90.52736834449948,0.011296955150750666,0.21501790849158783,1.0,True,
16,18,7.9099649541476005,0.12957520399577063,0.6471098982882659,0.12019779875781794,6,38.44752656622707,0.016821400599454826,0.06522344447557246,1.0,True,
16,19,6.609737623005951,34.172763646089344,0.6280868046894488,0.12242728727104996,6,33.04590657073916,0.06745241310870236,1.6183598806956783,1.0,False,forward_reverse_rotation
16,20,9.541288639020653,124.49815572853673,0.5791883197228409,0.127436475456937,6,40.945151692592816,2.599521231663455,5.87323656621683,1.0,False,forward_reverse_translation;forward_reverse_rotation
16,21,9.407850320517097,175.38299577015903,0.49424730531670097,0.13389808634231865,6,45.28912477989511,0.04478742358365585,0.10475809279093058,1.0,True,
17,18,2.081596655954183,45.003998483060414,0.7629028349890962,0.10358638519274684,6,18.62989302843653,0.007136146106563684,0.13887814859043496,1.0,True,
17,19,4.34928579963815,79.047186925154,0.6728380024360536,0.10727518915463004,6,33.81541258417489,0.0017207670327870018,0.035486867252565536,1.0,True,
17,20,4.4206846692505035,169.37257900760153,0.6354846507130771,0.11168219002675635,6,38.40506040461897,0.020290214498459216,0.2831192364677464,1.0,True,
17,21,6.400116212709096,139.7425809507742,0.5695348561959995,0.1231813524465837,6,57.78224861663297,0.009859208985419086,0.31053558178227947,1.0,True,
17,22,8.798226453379533,96.08482130259475,0.5459048079246195,0.1287223998113377,6,62.758312260043155,0.03194615937469955,0.5773515871730924,1.0,False,forward_reverse_rotation
18,19,3.459222336215112,34.04318844209358,0.7562595809913132,0.11139160446923307,6,9.605522638453952,0.013156152321531143,0.09121207325672914,1.0,True,
18,20,4.94806857498194,124.36858052454107,0.6668778509883426,0.1149564835181103,6,18.76442873201715,0.0076759006397633354,0.11713903044228172,1.0,True,
18,21,6.5847443121227816,175.25342056617163,0.5977438948803768,0.12625086545570646,6,26.666713369082085,0.021119392446408227,0.18202979634982344,1.0,True,
18,22,9.20681259274594,141.08881978565523,0.5286220871327254,0.13561310095446666,6,65.22594013516775,0.03713510940704989,0.6483189610135184,1.0,False,forward_reverse_rotation
18,23,13.164275822166362,109.14103513098563,0.47146496815286626,0.14168298172295804,6,112.91469628781756,0.01208598984738065,0.6082838532521024,1.0,False,forward_reverse_rotation
19,20,3.031758915138065,90.32539208244746,0.7409531090723751,0.11651827109675585,6,10.060869835729363,0.0051743650857167135,0.07263138471648796,1.0,True,
19,21,3.732423384308353,141.21023212407198,0.6563629565000623,0.12291187901196955,6,15.339627619255575,0.0075358808329252175,0.06620678153945667,1.0,True,
19,22,6.37255124464243,175.13200822775684,0.5891492613346918,0.12519472268444526,6,28.30213785955742,0.010212573357042046,0.11056129275235052,1.0,True,
19,23,10.37094757900695,143.1842235730793,0.4984627209838586,0.13443006540917718,6,96.22322799212152,0.02229275506707497,0.2903847316754494,1.0,True,
19,24,7.752290899896264,99.91483670708607,0.5732565579014716,0.1300803661721533,6,45.37964984018865,0.07078749161909308,0.6582469262123747,1.0,False,forward_reverse_rotation
20,21,2.057726146362386,50.884840041624386,0.7808828984790405,0.11119787612354914,6,10.584324886965474,0.0031476308503252674,0.022487168529706673,1.0,True,
20,22,4.388457127616061,94.54259968980386,0.6557604850934815,0.11898674179731801,6,16.883756700029306,0.008500396323601164,0.06463449106814506,1.0,True,
20,23,8.256548639868363,126.4903843444735,0.5833545108005083,0.12863144503040289,6,48.7242741462686,0.013890482176493085,0.14514813799569015,1.0,True,
20,24,5.797339988732605,169.75977121046614,0.6348521385962685,0.11831053318180502,6,31.671029215629257,0.00725649124030166,0.27346756317921195,1.0,True,
20,25,3.9584300095978864,99.81821396908215,0.7094296865164296,0.11461231093244224,6,16.207076145397426,0.005999722474434507,0.07369423294061743,1.0,True,
21,22,2.665930009787955,43.65775964817948,0.7387220368310469,0.11520069835112393,6,16.025252253059314,0.0021484382611444506,0.09312757978022868,1.0,True,
21,23,6.670349114267683,75.60554430284907,0.6238657551274084,0.11987801174807478,6,32.271874238810035,0.007927242611182222,0.08795608522524892,1.0,True,
21,24,4.0761181240750135,118.87493116884215,0.6712192699279861,0.11172772070549726,6,21.556821129992922,0.04673963175312233,0.22273623714194987,1.0,True,
21,25,2.626640779558244,150.70305401070652,0.699310174919931,0.11234398811200015,6,15.335715959290205,0.018678960705618183,0.1734016933410122,1.0,True,
21,26,2.086425835169367,83.91641671720558,0.7166481550043194,0.11091971646336789,6,12.109452825928004,0.00977162867106615,0.0631934229127065,1.0,True,
22,23,4.005228418650323,31.947784654669576,0.7252984505969012,0.11644876240570266,6,17.935878140214236,0.013002087545984397,0.11470841251550605,1.0,True,
22,24,1.4231800329066895,75.21717152066267,0.7555499175440822,0.1089594430160029,6,14.427403734239578,0.0044919719825295985,0.008669004448985662,1.0,True,
22,25,0.9824487562406952,165.63918634111403,0.7088209387190134,0.11165869814478939,6,23.409617344710625,0.005265657588642687,0.10195131255569051,1.0,True,
22,26,3.0743977770984916,127.57417636538506,0.6831820474029249,0.11509847268437542,6,18.05320621935197,0.010313466929779696,0.02189018950989812,1.0,True,
22,27,3.054692363582515,96.43768805753649,0.712325317889966,0.11297739003609018,6,14.570486778570737,0.006473104665270118,0.07627008321159866,1.0,True,
23,24,2.6253440212817054,43.26938686599312,0.787546254944494,0.11112536909525574,6,13.667766137918514,0.003984385308883342,0.012875657690538275,1.0,True,
23,25,4.30404511575867,133.69140168644446,0.6839640551828883,0.11561487899989795,6,40.22316701306096,0.009663940236368565,0.2587163051792124,1.0,True,
23,26,6.580252552934289,159.52196102005493,0.6214811057570377,0.12356096223549605,6,59.18789907295204,0.03346639663911815,0.040359288659068966,1.0,True,
23,27,6.261292051742304,128.3854727122061,0.6439154109155375,0.11883308044324468,6,48.252953818047224,0.01363202571969651,0.268813724284828,1.0,True,
23,28,10.83543880539923,37.57580831192121,0.5551750380517504,0.13104613123848732,6,44.00847715074386,0.01592501575703795,0.1925228188054137,1.0,True,
24,25,2.0155105379126432,90.4220148204513,0.7610619469026548,0.10446971824743242,6,22.29894236104597,0.01721789520038266,0.09266069416139829,1.0,True,
24,26,4.344602404326578,157.20865211395216,0.6986700443318556,0.11795525471114342,6,30.354013262701024,0.0239438468814135,0.2700005297192175,1.0,True,
24,27,4.194437499675352,171.65485957819877,0.7233746521629142,0.11505806966234582,6,24.218829066684407,0.0071603040929797065,0.1144565168286882,1.0,True,
24,28,8.235813904401468,80.84519517791432,0.618522741669834,0.1218895746871147,6,34.55835443937473,0.008956300116613691,0.24319664279778394,1.0,True,
24,29,2.7255497122534083,57.0551252080454,0.7635993899339095,0.11147922533242269,6,11.572525725181164,0.02246832420061709,0.4519372330281508,1.0,True,
25,26,2.340922525153354,66.78663729350096,0.8176906646563639,0.1076748622762494,6,10.194320056407282,0.011727583881002021,0.04299213457608308,1.0,True,
25,27,2.187150933555911,97.92312560134954,0.8508155583437892,0.10177690901936605,6,9.447407214356089,0.004921098494284399,0.04722324529000337,1.0,True,
25,28,6.688406442287195,171.26720999836604,0.6552720874701521,0.1158307449607044,6,16.856702471098828,0.010027166778796438,0.069841684352646,1.0,True,
25,29,1.411474020521721,147.47714002849685,0.7434442763489663,0.11227320270489505,6,19.207346965238134,0.005744598995027529,0.30413185830684,1.0,True,
25,30,0.5324917816481396,118.09183853064393,0.7986111111111112,0.1061010900656728,6,14.995080416656407,0.004651476537899485,0.06337779258524685,1.0,True,
26,27,0.6349061963265976,31.136488307848563,0.8835952231301069,0.10164781558403184,6,8.741658683232068,0.0010243697887392141,0.04630474119881922,1.0,True,
26,28,5.008419104260455,121.94615270813352,0.7013346764039284,0.1156303654422143,6,10.39669408260953,0.016692399239017493,0.1408617368634082,1.0,True,
26,29,2.224643201350574,145.73622267800252,0.7255273462170014,0.11343814488049828,6,14.171918272295303,0.0030631045126193056,0.10499072900350268,1.0,True,
26,30,2.6736935848107626,175.1215241758588,0.7273877292852625,0.11178149175643984,6,20.18904245623208,0.002906139936114469,0.06343916895540856,1.0,True,
26,31,6.867005915953627,145.82839665297058,0.6099962135554714,0.12348129729633385,6,43.35600938855713,0.011230201352754812,0.02547666380871279,1.0,True,
27,28,5.622863551235285,90.80966440028486,0.7116811266188859,0.11387091842867321,6,10.816842555490693,0.011430300098438593,0.17858658887118406,1.0,True,
27,29,2.458639091699311,114.59973437015381,0.7588294651866802,0.10898351788466304,6,11.452504275483305,0.002552411031283606,0.096053889700167,1.0,True,
27,30,2.614522132166758,143.98503586800658,0.7699595755432036,0.10809432324457112,6,19.384788093934308,0.006419845852952349,0.09683669503892821,1.0,True,
27,31,6.500901961576647,114.69190834512194,0.6407864885303756,0.12195597170279295,6,45.71099685307573,0.03203829198983217,0.21314212616538905,1.0,True,
27,32,8.204840364723921,69.85846065460369,0.6120722798923491,0.12793570356778294,6,50.652407095458955,0.02476270066797521,0.18953242722457034,1.0,True,
28,29,5.5254251571777075,23.790069969868927,0.6751737207833228,0.11816626627973714,6,15.58130572797597,0.0036062245918322845,0.04228106700822467,1.0,True,
28,30,6.682895390289165,53.17537146772172,0.6476021763887132,0.12162303323930705,6,19.56745364015458,0.036760870155111036,0.061189777619461184,1.0,True,
28,31,11.27338119162288,23.882243944837096,0.558515338972352,0.1324943729180927,6,46.74937334475135,0.011294835537302048,0.22869636591571527,1.0,True,
28,32,12.874594603353637,20.951203745681177,0.5356867779204108,0.13793317141107478,6,47.36276875018484,0.009260784922164039,0.4736145985672847,1.0,True,
28,33,13.796424177198949,59.567633422321585,0.49968659897204465,0.13776776698165452,6,59.65569689133837,0.03480709552965627,0.1328751318540718,1.0,True,
29,30,1.1998189814142899,29.3853014978528,0.8126428027418127,0.11465616151168853,6,9.73882704495904,0.059123063905753705,0.35885997079417975,1.0,True,
29,31,5.755712819539279,0.09217397496817598,0.7178318135764944,0.11831514282300001,6,19.572443598172608,0.03055388488044922,0.16788276176822323,1.0,True,
29,32,7.3497160995478215,44.7412737155501,0.6866709594333548,0.12344589693451308,6,19.69654687402097,0.01847461637742171,0.10764991453418553,1.0,True,
29,33,8.359102419083325,83.35770339219052,0.6151911468812877,0.12607024585552623,6,19.321252328369155,0.005640558537625966,0.060018922799470055,1.0,True,
29,34,8.008340805017072,133.40261903862776,0.6489454636216149,0.1229782406905996,6,19.361211916752247,0.024951598645873194,0.20519725330906424,1.0,True,
30,31,4.592128513798009,29.29312752288462,0.76103500761035,0.11418966560335815,6,16.756236396505788,0.010805499433410783,0.0764328342532002,1.0,True,
30,32,6.2188831730504885,74.12657521340287,0.7051463949438926,0.11749249261595905,6,20.554466965332146,0.009422682577629085,0.037900377279079585,1.0,True,
30,33,7.344850966128434,112.7430048900433,0.6064231738035264,0.12368925274094972,6,20.291143104650924,0.0147669225762263,0.09037435316445036,1.0,True,
30,34,7.0347870411064095,162.78792053648075,0.6427946506686664,0.12352381867411776,6,21.47516866844496,3.1821548176867474,2.4099911828321603,1.0,False,forward_reverse_translation;forward_reverse_rotation
30,35,9.281470813161304,166.02816439171798,0.690784364483562,0.12252550482763978,6,16.634587270964886,0.009824737708452339,0.14818916841264132,1.0,True,
31,32,1.7043840283934533,44.83344769051828,0.7959078625659504,0.10965414855273443,6,12.882067962817517,0.009608345699366565,0.04073745185785107,1.0,True,
31,33,3.3472002644811774,83.44987736715868,0.636089469716009,0.11810494837446742,6,13.701242758091343,0.01055590691460776,0.06271370554561609,1.0,True,
31,34,3.311630046755356,133.49479301359594,0.6599326599326599,0.11513164519765848,6,15.199690471396346,0.002580333972310516,0.03476275200242535,1.0,True,
31,35,4.805055361756335,164.67870808539848,0.7747933884297521,0.1099315236542533,6,13.983106845566315,0.002969158365974405,0.02482993261597952,1.0,True,
31,36,5.921091773191984,169.88970913698103,0.79326799071447,0.11165900641583826,6,12.181844458808802,0.004151989866605975,0.032942374858786365,1.0,True,
32,33,1.9394369188755196,38.61642967664041,0.7479238533282229,0.1140254726045761,6,12.862133545437658,0.005854383016193307,0.042356141718508426,1.0,True,
32,34,2.1435446082722334,88.6613453230776,0.7426470588235294,0.11481351455228676,6,15.077486603426832,0.0025843844761028077,0.009064526838353553,1.0,True,
32,35,3.1027737257249126,119.84526039487966,0.8209641402863523,0.10635864973089924,6,10.914008667831691,0.004447738370013908,0.11616784364821804,1.0,True,
32,36,4.235311686227635,145.27684317250132,0.7613800341073068,0.10898930843612145,6,12.22686011069426,0.008302372052489307,0.047221847858387886,1.0,True,
32,37,3.1931475050378357,118.78221388859481,0.6919923126201153,0.11497666348297753,6,16.91846428853567,0.00567166990415677,0.10190182649448634,1.0,True,
33,34,0.5704890065278277,50.0449156464372,0.8247678018575851,0.10774292174748101,6,13.307399451848953,0.005218203824516851,0.054034410494683056,1.0,True,
33,35,2.3843314966611664,81.22883071823928,0.7097435897435898,0.11216257584808116,6,12.920219167499932,0.0055472051152683725,0.06161504272529624,1.0,True,
33,36,3.5605240220038255,106.66041349586102,0.62202304737516,0.11282494351568334,6,18.491230751066993,0.009207361872581905,0.07430583689659953,1.0,True,
33,37,4.013080941901569,80.16578421195443,0.6328828828828829,0.12540757119118434,6,17.018187124475837,0.0036940550280262596,0.12927083795080543,1.0,True,
34,35,2.9403442697824866,31.183915071802076,0.7146673451214858,0.11428688542425412,6,13.705016766266674,0.013436446539858737,0.05510481554154184,1.0,True,
34,36,4.102710388907318,56.61549784942384,0.6465506288908652,0.11729490897001751,6,19.754334744118587,0.086056763787067,1.0836879727751445,1.0,False,forward_reverse_translation;forward_reverse_rotation
34,37,3.6865711881345757,30.12086856551724,0.6899292189246243,0.11937420197560855,6,16.808577408839643,0.005083360744530967,0.10024940937419655,1.0,True,
35,36,1.2045561534352058,25.431582777621774,0.8242496050552922,0.10907898456971946,6,9.660062538057792,0.0026096461304541156,0.07595057929078583,1.0,True,
35,37,6.084062615492111,1.063046506284832,0.6924659295448702,0.12103303062396852,6,14.36240888115935,0.005914867863779407,0.06573359298031699,1.0,True,
36,37,7.2781244258509386,26.494629283906598,0.6402157164869029,0.12413886977390769,6,20.08544982146282,0.008397869289519334,0.08479281990151419,1.0,True,
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 0.503306788400079 13.198324485965863 0.8131655372700871 0.09008834340898543 6 11.429289586039127 0.0005504552049968047 0.0032916777115618487 1.0 True
3 0 2 1.1601020961002007 26.306295080591493 0.8167658604533367 0.09980570916927256 6 11.00789089021616 0.00205395151868756 0.012799633971915293 1.0 True
4 0 3 1.1328421148283978 41.74134818989305 0.81441508497705 0.10115686777955255 6 13.837529680361882 0.01247476852224996 0.1726729736128094 1.0 True
5 0 4 1.0129799192122786 70.92934830291522 0.7761963190184049 0.10269905695661055 6 12.888313335228592 0.019300920937430674 0.12217052794626229 1.0 True
6 0 5 0.9014321094792815 89.27285808969826 0.7735100978813034 0.10986502690369805 6 24.919203290408266 0.0278108340699398 0.2717481445912482 1.0 True
7 1 2 0.6927979865343085 13.107970594625625 0.7850287907869482 0.08649388452503427 6 11.757459931907107 0.001960394451155616 0.002128143929965857 1.0 True
8 1 3 0.7002295454253883 28.543023703927183 0.7901992730918661 0.09109387779670658 6 12.066030386554463 0.004906057223105903 0.018773640398341965 1.0 True
9 1 4 0.8045641659338967 57.731023816949346 0.7439266236985622 0.09680131928922782 6 12.860596463339792 0.020081946886066578 1.2340284819813434 1.0 False forward_reverse_rotation
10 1 5 0.7829726518389362 76.07453360373235 0.7313806483915384 0.10148815288043825 6 12.782489568272775 0.016729134900242502 0.06734086907642674 1.0 True
11 1 6 0.7843480712672012 108.63393511864574 0.6214689265536724 0.10742176387842234 6 26.39069479810122 0.0027238824581310127 0.04004688680398286 1.0 True
12 2 3 0.13949776780243606 15.435053109301553 0.9176300578034682 0.07082931569628453 6 11.740335220665598 0.0016419682635548487 0.0015051284247814798 1.0 True
13 2 4 0.6701726006967371 44.62305322232371 0.840540189585768 0.08212714345330237 6 12.917292889611646 0.0015059170263523442 0.004861145455894842 1.0 True
14 2 5 0.8004226998626774 62.96656300910673 0.8300970873786407 0.0931389934573794 6 15.74858194202481 0.002555949510569182 0.008486377461290648 1.0 True
15 2 6 1.3845111356101025 95.5259645240201 0.6495130297446696 0.10354826871538153 6 15.262952717632835 0.008359384079660144 0.07441619593698878 1.0 True
16 2 7 2.161304865409727 119.81081101983789 0.8143257302921169 0.09968516416989152 6 30.540416925007207 0.013121403719342412 0.05039604031914888 1.0 True
17 3 4 0.5366157827594368 29.188000113022152 0.8855689764780674 0.07250679559229746 6 11.672391892657863 0.0006574625393083392 0.0008548453445728261 1.0 True
18 3 5 0.6760093701980526 47.53150989980517 0.8759311584895967 0.08543306637795112 6 15.073465050917047 0.0011073394938326227 0.004974962253885575 1.0 True
19 3 6 1.4361364806393455 80.09091141471853 0.678819891780469 0.10239967326707564 6 23.156860004682848 0.002691305620040523 0.027681404773136364 1.0 True
20 3 7 2.1008551524156123 104.37575791053635 0.7961101683853283 0.10180989325686585 6 29.756525470837225 0.023292005056525338 0.174639961337377 1.0 True
21 3 8 1.3108481779402037 133.20736428981294 0.11556480999479438 0.1433106939673773 6 147.35707874920627 1.368389528072986 15.0277123732284 1.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
22 4 5 0.17861948949299924 18.343509786783002 0.8685714285714285 0.07604325543622346 6 12.370184068840063 0.003904582263467037 0.011742002375313174 1.0 True
23 4 6 1.5807073315069207 50.90291130169636 0.6822060883963826 0.10567824422734254 6 18.163522769519293 0.011923922180697284 0.08008579261790838 1.0 True
24 4 7 1.7804201387535592 75.18775779751417 0.7963870967741935 0.10178391918503964 6 25.315987799570973 0.034377900701078094 0.11532260919614924 1.0 True
25 4 8 1.2818497736845669 104.01936417679076 0.7430850379518847 0.10189238984319506 6 25.19640114706588 0.034977663635135596 1.5753470469755222 1.0 False forward_reverse_rotation
26 4 9 1.5141865499370524 117.34615495378958 0.0841833440929632 0.15176056899798168 6 84.88516221869183 3.340127368239112 6.177861200193235 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
27 5 6 1.5316987521992935 32.55940151491337 0.6864384971693258 0.10315026388508003 6 11.505426214947052 0.002552272421554712 0.013899678900349944 1.0 True
28 5 7 1.6091514152462776 56.844248010731185 0.8104549602398644 0.09862238510016193 6 16.517299930207333 0.0037398303757535147 0.02129636862756259 1.0 True
29 5 8 1.1872485760158462 85.67585439000777 0.7806082661814401 0.10305777405801758 6 17.737819341361416 0.0056799616182010805 0.026182015145595202 1.0 True
30 5 9 1.380208837139288 99.00264516700663 0.7946777980693973 0.10313535699942489 6 14.147499646203187 0.06270036555847405 0.33857191756776234 1.0 True
31 5 10 1.7506315276318887 115.10127466723206 0.7847418443359877 0.10018431236036145 6 21.425526326745782 0.005291671170548772 0.044796841001461946 1.0 True
32 6 7 1.5692385974903325 24.284846495817817 0.7380672159016608 0.1046107504689679 6 13.947054238965462 0.010178220865611676 0.026255002379027764 1.0 True
33 6 8 0.5035712140385419 53.11645287509441 0.7026075619295958 0.10337241424878332 6 21.232848227388097 0.017447450845101884 0.1292664848366822 1.0 True
34 6 9 0.8508108569116883 66.44324365209327 0.6714210939544621 0.10949604778423808 6 34.21205543097956 0.09491078892598759 0.32255986251320673 1.0 False forward_reverse_translation
35 6 10 1.3331914459292633 82.5418731523187 0.6619427982478743 0.10510077922086615 6 31.101566437428897 0.003562383894956786 0.04536548719264196 1.0 True
36 6 11 3.16887584646763 119.46156331049859 0.638006230529595 0.1061575017783152 6 31.943306843588733 0.0059304520508679575 0.05963953472442965 1.0 True
37 7 8 1.1230406357307108 28.831606379276582 0.8040692297529396 0.09680052952350976 6 22.21980394474879 0.008328073875015064 0.06350723756646647 1.0 True
38 7 9 0.7186795671679719 42.158397156275456 0.8274764620076913 0.09296346258223728 6 22.096355228992984 0.0076981468910999155 0.020277033650542 1.0 True
39 7 10 0.39293571356254015 58.25702665650087 0.7992429186790236 0.10479299924479576 6 30.246845596558646 0.04240408437264065 1.1111803590641476 1.0 False forward_reverse_rotation
40 7 11 2.4544901278439815 95.17671681468076 0.7502523977788995 0.1028589368143411 6 19.931284665592216 0.005620519728387707 0.0303880139721275 1.0 True
41 7 12 3.0905023273107046 115.3786462164333 0.7054418372441338 0.10706084863640537 6 10.761985004268995 0.004629206980441498 0.07009059694702204 1.0 True
42 8 9 0.4407680716864947 13.326790776998866 0.8539132734003173 0.09158655960119419 6 31.292808872701826 0.0036696927581956673 0.014909075167693285 1.0 True
43 8 10 0.968166048306331 29.425420277224287 0.7989328474752733 0.09757506446655329 6 25.45934970841849 0.008689580645481346 0.052297435035790506 1.0 True
44 8 11 3.0540124804140354 66.34511043540417 0.6854158802063672 0.10755838259974337 6 42.46956117899474 0.00234148729464824 0.061662020462905004 1.0 True
45 8 12 3.652970846697932 86.5470398371567 0.6485376477909147 0.11031208403019 6 30.049664340525695 0.013830104055554564 0.11563630256710061 1.0 True
46 8 13 4.357531202056024 107.49623325505803 0.622879241516966 0.1149201207874094 6 27.04257772502661 0.005835943764379069 0.23887217550290574 1.0 True
47 9 10 0.5276649044820116 16.098629500225417 0.8486154649947754 0.09691837979566219 6 22.577834737399076 0.007052114296262031 0.2907164943632002 1.0 True
48 9 11 2.680593454060616 53.0183196584053 0.6963000378835712 0.10535088240045436 6 39.530571540955094 0.0034527207661208545 0.020238883727394828 1.0 True
49 9 12 3.2944321799753977 73.22024906015783 0.6584238791057825 0.10587631557960675 6 33.498316372288826 0.009482405807021465 0.07225186033919398 1.0 True
50 9 13 4.1147924441994315 94.16944247805917 0.621557336004006 0.11335203160746431 6 32.6975845279655 0.009011781776631502 0.0416830306778097 1.0 True
51 9 14 3.748520283907519 169.69584626488452 0.048890560361037984 0.15557197380465354 6 51.54107837707314 1.0864076801076206 7.184564913859941 0.5 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
52 10 11 2.249454986440387 36.91969015817989 0.7156362731683045 0.10422606491110974 6 45.45254669271086 0.004301999273657816 0.02361974788713562 1.0 True
53 10 12 2.8783779741216167 57.12161955993242 0.692875599852344 0.10691573133186853 6 39.11010182412513 0.004231594662123499 0.01872424915403812 1.0 True
54 10 13 3.84803303865234 78.07081297783375 0.6594721262950173 0.10871022234744057 6 43.1464607017966 0.006980776690426113 0.21408921607631748 1.0 True
55 10 14 3.3834992499807997 153.59721676465847 0.062245276028158575 0.15570919185507412 6 59.4104405367878 0.09444016841800375 2.8556589503073977 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
56 10 15 1.4957886147833104 171.72980583515965 0.6232518545542989 0.10969245891269987 6 43.00146365447724 3.0001452916434883 4.8522273147326915 1.0 False forward_reverse_translation;forward_reverse_rotation
57 11 12 0.636223282239137 20.20192940175253 0.8688915375446961 0.08660981428891965 6 18.033297623211222 0.005089530929434581 0.03170796903435614 1.0 True
58 11 13 2.0145868546459504 41.151122819653864 0.8021741727392188 0.10650327571539893 6 18.339724002801702 0.04485533499047456 0.27313934813876123 1.0 True
59 11 14 1.2405786051647103 116.67752660647822 0.7455741626794259 0.11063741423489376 6 20.694961222671232 0.007044503253911164 0.40985193451245056 1.0 True
60 11 15 1.4202907399288436 151.3505040066613 0.7466415272213057 0.10329430650455694 6 27.704214205277534 0.13203399207663835 1.4478079414864902 0.5 False forward_reverse_translation;forward_reverse_rotation
61 11 16 2.7368971716016928 176.81389445065594 0.78639603721155 0.10318237166131629 6 34.658693494341755 0.008767229441137649 0.032548654712657686 1.0 True
62 12 13 1.5928240921286525 20.949193417901323 0.8217283366828231 0.10684146627686454 6 16.400323597466677 0.01763325318199382 0.09467538550034012 1.0 True
63 12 14 0.6774809171975742 96.47559720472566 0.7611268939393939 0.10826784336909262 6 10.635638995146312 0.0015931090432955832 0.024585439481643892 1.0 True
64 12 15 1.8892292086221258 131.14857460490867 0.7324469325868906 0.11113399174419211 6 19.970471882560926 0.0024416100752998565 0.009279978214820864 1.0 True
65 12 16 3.349436875941103 156.6119650489076 0.7500298864315601 0.10525785108693746 6 30.70828038440084 0.0024719134275639418 0.013160987022490347 1.0 True
66 12 17 6.51378754358264 111.73754176984298 0.6198434030618207 0.1221546776649581 6 23.54160456185754 0.013538123192296372 0.06236055877935909 1.0 True
67 13 14 0.9721300146850552 75.52640378682433 0.8278562107011508 0.10919246415865995 6 12.723402368483741 0.0049872211162087675 0.02566897887278044 1.0 True
68 13 15 2.426469315960194 110.19938118700728 0.7886616014026885 0.10800229196760061 6 13.66454080002457 0.0038816141140735755 0.020030260506224723 1.0 True
69 13 16 4.157137927296689 135.66277163100625 0.7477833692786964 0.10901310110319071 6 21.034367079780026 0.0024107551433002806 0.01470679715840447 1.0 True
70 13 17 6.347445048137873 90.78834835194164 0.6122042632935114 0.12126385638135445 6 27.550293797111443 0.010111269848200304 1.6132660739833655 1.0 False forward_reverse_rotation
71 13 18 4.26917989710959 135.79234683500215 0.6756988719960765 0.1140499722068077 6 13.668694297489541 0.010188526275029454 0.05757819838859875 1.0 True
72 14 15 2.176233486689304 34.672977400182965 0.7415730337078652 0.11426627617931512 6 13.437209845730706 0.009280638111078932 0.07287904157175247 1.0 True
73 14 16 3.79947855245853 60.13636784418198 0.7130173965206958 0.11194096137848975 6 36.60672565292038 0.0004016408999195087 0.020284570842973915 1.0 True
74 14 17 6.190474035537447 15.261944565117341 0.6118212736015011 0.11991020962112661 6 17.152314443231333 0.020151321868834806 0.2079666531947748 1.0 True
75 14 18 4.170672674565236 60.26594304817776 0.6756292203806016 0.1138218459710723 6 11.041435170572107 0.023698120255922432 0.1321697884270417 1.0 True
76 14 19 3.9999134794649294 94.30913149027137 0.6699172941612147 0.112413086617321 6 9.748384934395327 0.018186549996561333 1.2493862686891326 1.0 False forward_reverse_rotation
77 15 16 1.7328875589135755 25.463390443999018 0.7714218177520388 0.10015132538295435 6 21.49868629780701 0.007439481433750378 0.036349268136368934 1.0 True
78 15 17 8.352264787019024 19.411032835065622 0.5587657459840518 0.12832496127520593 6 38.53228682833441 0.005430301274456062 0.06530638270069017 1.0 True
79 15 18 6.346037230040679 25.592965647994788 0.615040502962157 0.11840729454457544 6 21.032065383701333 0.012871328625232324 0.037753566213482644 1.0 True
80 15 19 5.607512178689573 59.636154090088375 0.6234350309955026 0.11735435665832353 6 16.270394372537467 0.007833445352022574 0.016491686030251827 1.0 True
81 15 20 8.633248754322691 149.96154617253603 0.5562658304185261 0.13192141621005607 6 26.944324835385952 0.023510650105734523 0.673469393155776 1.0 False forward_reverse_rotation
82 16 17 9.849975560032544 44.87442327906463 0.5900047370914259 0.1265936504427481 6 90.52736834449948 0.011296955150750666 0.21501790849158783 1.0 True
83 16 18 7.9099649541476005 0.12957520399577063 0.6471098982882659 0.12019779875781794 6 38.44752656622707 0.016821400599454826 0.06522344447557246 1.0 True
84 16 19 6.609737623005951 34.172763646089344 0.6280868046894488 0.12242728727104996 6 33.04590657073916 0.06745241310870236 1.6183598806956783 1.0 False forward_reverse_rotation
85 16 20 9.541288639020653 124.49815572853673 0.5791883197228409 0.127436475456937 6 40.945151692592816 2.599521231663455 5.87323656621683 1.0 False forward_reverse_translation;forward_reverse_rotation
86 16 21 9.407850320517097 175.38299577015903 0.49424730531670097 0.13389808634231865 6 45.28912477989511 0.04478742358365585 0.10475809279093058 1.0 True
87 17 18 2.081596655954183 45.003998483060414 0.7629028349890962 0.10358638519274684 6 18.62989302843653 0.007136146106563684 0.13887814859043496 1.0 True
88 17 19 4.34928579963815 79.047186925154 0.6728380024360536 0.10727518915463004 6 33.81541258417489 0.0017207670327870018 0.035486867252565536 1.0 True
89 17 20 4.4206846692505035 169.37257900760153 0.6354846507130771 0.11168219002675635 6 38.40506040461897 0.020290214498459216 0.2831192364677464 1.0 True
90 17 21 6.400116212709096 139.7425809507742 0.5695348561959995 0.1231813524465837 6 57.78224861663297 0.009859208985419086 0.31053558178227947 1.0 True
91 17 22 8.798226453379533 96.08482130259475 0.5459048079246195 0.1287223998113377 6 62.758312260043155 0.03194615937469955 0.5773515871730924 1.0 False forward_reverse_rotation
92 18 19 3.459222336215112 34.04318844209358 0.7562595809913132 0.11139160446923307 6 9.605522638453952 0.013156152321531143 0.09121207325672914 1.0 True
93 18 20 4.94806857498194 124.36858052454107 0.6668778509883426 0.1149564835181103 6 18.76442873201715 0.0076759006397633354 0.11713903044228172 1.0 True
94 18 21 6.5847443121227816 175.25342056617163 0.5977438948803768 0.12625086545570646 6 26.666713369082085 0.021119392446408227 0.18202979634982344 1.0 True
95 18 22 9.20681259274594 141.08881978565523 0.5286220871327254 0.13561310095446666 6 65.22594013516775 0.03713510940704989 0.6483189610135184 1.0 False forward_reverse_rotation
96 18 23 13.164275822166362 109.14103513098563 0.47146496815286626 0.14168298172295804 6 112.91469628781756 0.01208598984738065 0.6082838532521024 1.0 False forward_reverse_rotation
97 19 20 3.031758915138065 90.32539208244746 0.7409531090723751 0.11651827109675585 6 10.060869835729363 0.0051743650857167135 0.07263138471648796 1.0 True
98 19 21 3.732423384308353 141.21023212407198 0.6563629565000623 0.12291187901196955 6 15.339627619255575 0.0075358808329252175 0.06620678153945667 1.0 True
99 19 22 6.37255124464243 175.13200822775684 0.5891492613346918 0.12519472268444526 6 28.30213785955742 0.010212573357042046 0.11056129275235052 1.0 True
100 19 23 10.37094757900695 143.1842235730793 0.4984627209838586 0.13443006540917718 6 96.22322799212152 0.02229275506707497 0.2903847316754494 1.0 True
101 19 24 7.752290899896264 99.91483670708607 0.5732565579014716 0.1300803661721533 6 45.37964984018865 0.07078749161909308 0.6582469262123747 1.0 False forward_reverse_rotation
102 20 21 2.057726146362386 50.884840041624386 0.7808828984790405 0.11119787612354914 6 10.584324886965474 0.0031476308503252674 0.022487168529706673 1.0 True
103 20 22 4.388457127616061 94.54259968980386 0.6557604850934815 0.11898674179731801 6 16.883756700029306 0.008500396323601164 0.06463449106814506 1.0 True
104 20 23 8.256548639868363 126.4903843444735 0.5833545108005083 0.12863144503040289 6 48.7242741462686 0.013890482176493085 0.14514813799569015 1.0 True
105 20 24 5.797339988732605 169.75977121046614 0.6348521385962685 0.11831053318180502 6 31.671029215629257 0.00725649124030166 0.27346756317921195 1.0 True
106 20 25 3.9584300095978864 99.81821396908215 0.7094296865164296 0.11461231093244224 6 16.207076145397426 0.005999722474434507 0.07369423294061743 1.0 True
107 21 22 2.665930009787955 43.65775964817948 0.7387220368310469 0.11520069835112393 6 16.025252253059314 0.0021484382611444506 0.09312757978022868 1.0 True
108 21 23 6.670349114267683 75.60554430284907 0.6238657551274084 0.11987801174807478 6 32.271874238810035 0.007927242611182222 0.08795608522524892 1.0 True
109 21 24 4.0761181240750135 118.87493116884215 0.6712192699279861 0.11172772070549726 6 21.556821129992922 0.04673963175312233 0.22273623714194987 1.0 True
110 21 25 2.626640779558244 150.70305401070652 0.699310174919931 0.11234398811200015 6 15.335715959290205 0.018678960705618183 0.1734016933410122 1.0 True
111 21 26 2.086425835169367 83.91641671720558 0.7166481550043194 0.11091971646336789 6 12.109452825928004 0.00977162867106615 0.0631934229127065 1.0 True
112 22 23 4.005228418650323 31.947784654669576 0.7252984505969012 0.11644876240570266 6 17.935878140214236 0.013002087545984397 0.11470841251550605 1.0 True
113 22 24 1.4231800329066895 75.21717152066267 0.7555499175440822 0.1089594430160029 6 14.427403734239578 0.0044919719825295985 0.008669004448985662 1.0 True
114 22 25 0.9824487562406952 165.63918634111403 0.7088209387190134 0.11165869814478939 6 23.409617344710625 0.005265657588642687 0.10195131255569051 1.0 True
115 22 26 3.0743977770984916 127.57417636538506 0.6831820474029249 0.11509847268437542 6 18.05320621935197 0.010313466929779696 0.02189018950989812 1.0 True
116 22 27 3.054692363582515 96.43768805753649 0.712325317889966 0.11297739003609018 6 14.570486778570737 0.006473104665270118 0.07627008321159866 1.0 True
117 23 24 2.6253440212817054 43.26938686599312 0.787546254944494 0.11112536909525574 6 13.667766137918514 0.003984385308883342 0.012875657690538275 1.0 True
118 23 25 4.30404511575867 133.69140168644446 0.6839640551828883 0.11561487899989795 6 40.22316701306096 0.009663940236368565 0.2587163051792124 1.0 True
119 23 26 6.580252552934289 159.52196102005493 0.6214811057570377 0.12356096223549605 6 59.18789907295204 0.03346639663911815 0.040359288659068966 1.0 True
120 23 27 6.261292051742304 128.3854727122061 0.6439154109155375 0.11883308044324468 6 48.252953818047224 0.01363202571969651 0.268813724284828 1.0 True
121 23 28 10.83543880539923 37.57580831192121 0.5551750380517504 0.13104613123848732 6 44.00847715074386 0.01592501575703795 0.1925228188054137 1.0 True
122 24 25 2.0155105379126432 90.4220148204513 0.7610619469026548 0.10446971824743242 6 22.29894236104597 0.01721789520038266 0.09266069416139829 1.0 True
123 24 26 4.344602404326578 157.20865211395216 0.6986700443318556 0.11795525471114342 6 30.354013262701024 0.0239438468814135 0.2700005297192175 1.0 True
124 24 27 4.194437499675352 171.65485957819877 0.7233746521629142 0.11505806966234582 6 24.218829066684407 0.0071603040929797065 0.1144565168286882 1.0 True
125 24 28 8.235813904401468 80.84519517791432 0.618522741669834 0.1218895746871147 6 34.55835443937473 0.008956300116613691 0.24319664279778394 1.0 True
126 24 29 2.7255497122534083 57.0551252080454 0.7635993899339095 0.11147922533242269 6 11.572525725181164 0.02246832420061709 0.4519372330281508 1.0 True
127 25 26 2.340922525153354 66.78663729350096 0.8176906646563639 0.1076748622762494 6 10.194320056407282 0.011727583881002021 0.04299213457608308 1.0 True
128 25 27 2.187150933555911 97.92312560134954 0.8508155583437892 0.10177690901936605 6 9.447407214356089 0.004921098494284399 0.04722324529000337 1.0 True
129 25 28 6.688406442287195 171.26720999836604 0.6552720874701521 0.1158307449607044 6 16.856702471098828 0.010027166778796438 0.069841684352646 1.0 True
130 25 29 1.411474020521721 147.47714002849685 0.7434442763489663 0.11227320270489505 6 19.207346965238134 0.005744598995027529 0.30413185830684 1.0 True
131 25 30 0.5324917816481396 118.09183853064393 0.7986111111111112 0.1061010900656728 6 14.995080416656407 0.004651476537899485 0.06337779258524685 1.0 True
132 26 27 0.6349061963265976 31.136488307848563 0.8835952231301069 0.10164781558403184 6 8.741658683232068 0.0010243697887392141 0.04630474119881922 1.0 True
133 26 28 5.008419104260455 121.94615270813352 0.7013346764039284 0.1156303654422143 6 10.39669408260953 0.016692399239017493 0.1408617368634082 1.0 True
134 26 29 2.224643201350574 145.73622267800252 0.7255273462170014 0.11343814488049828 6 14.171918272295303 0.0030631045126193056 0.10499072900350268 1.0 True
135 26 30 2.6736935848107626 175.1215241758588 0.7273877292852625 0.11178149175643984 6 20.18904245623208 0.002906139936114469 0.06343916895540856 1.0 True
136 26 31 6.867005915953627 145.82839665297058 0.6099962135554714 0.12348129729633385 6 43.35600938855713 0.011230201352754812 0.02547666380871279 1.0 True
137 27 28 5.622863551235285 90.80966440028486 0.7116811266188859 0.11387091842867321 6 10.816842555490693 0.011430300098438593 0.17858658887118406 1.0 True
138 27 29 2.458639091699311 114.59973437015381 0.7588294651866802 0.10898351788466304 6 11.452504275483305 0.002552411031283606 0.096053889700167 1.0 True
139 27 30 2.614522132166758 143.98503586800658 0.7699595755432036 0.10809432324457112 6 19.384788093934308 0.006419845852952349 0.09683669503892821 1.0 True
140 27 31 6.500901961576647 114.69190834512194 0.6407864885303756 0.12195597170279295 6 45.71099685307573 0.03203829198983217 0.21314212616538905 1.0 True
141 27 32 8.204840364723921 69.85846065460369 0.6120722798923491 0.12793570356778294 6 50.652407095458955 0.02476270066797521 0.18953242722457034 1.0 True
142 28 29 5.5254251571777075 23.790069969868927 0.6751737207833228 0.11816626627973714 6 15.58130572797597 0.0036062245918322845 0.04228106700822467 1.0 True
143 28 30 6.682895390289165 53.17537146772172 0.6476021763887132 0.12162303323930705 6 19.56745364015458 0.036760870155111036 0.061189777619461184 1.0 True
144 28 31 11.27338119162288 23.882243944837096 0.558515338972352 0.1324943729180927 6 46.74937334475135 0.011294835537302048 0.22869636591571527 1.0 True
145 28 32 12.874594603353637 20.951203745681177 0.5356867779204108 0.13793317141107478 6 47.36276875018484 0.009260784922164039 0.4736145985672847 1.0 True
146 28 33 13.796424177198949 59.567633422321585 0.49968659897204465 0.13776776698165452 6 59.65569689133837 0.03480709552965627 0.1328751318540718 1.0 True
147 29 30 1.1998189814142899 29.3853014978528 0.8126428027418127 0.11465616151168853 6 9.73882704495904 0.059123063905753705 0.35885997079417975 1.0 True
148 29 31 5.755712819539279 0.09217397496817598 0.7178318135764944 0.11831514282300001 6 19.572443598172608 0.03055388488044922 0.16788276176822323 1.0 True
149 29 32 7.3497160995478215 44.7412737155501 0.6866709594333548 0.12344589693451308 6 19.69654687402097 0.01847461637742171 0.10764991453418553 1.0 True
150 29 33 8.359102419083325 83.35770339219052 0.6151911468812877 0.12607024585552623 6 19.321252328369155 0.005640558537625966 0.060018922799470055 1.0 True
151 29 34 8.008340805017072 133.40261903862776 0.6489454636216149 0.1229782406905996 6 19.361211916752247 0.024951598645873194 0.20519725330906424 1.0 True
152 30 31 4.592128513798009 29.29312752288462 0.76103500761035 0.11418966560335815 6 16.756236396505788 0.010805499433410783 0.0764328342532002 1.0 True
153 30 32 6.2188831730504885 74.12657521340287 0.7051463949438926 0.11749249261595905 6 20.554466965332146 0.009422682577629085 0.037900377279079585 1.0 True
154 30 33 7.344850966128434 112.7430048900433 0.6064231738035264 0.12368925274094972 6 20.291143104650924 0.0147669225762263 0.09037435316445036 1.0 True
155 30 34 7.0347870411064095 162.78792053648075 0.6427946506686664 0.12352381867411776 6 21.47516866844496 3.1821548176867474 2.4099911828321603 1.0 False forward_reverse_translation;forward_reverse_rotation
156 30 35 9.281470813161304 166.02816439171798 0.690784364483562 0.12252550482763978 6 16.634587270964886 0.009824737708452339 0.14818916841264132 1.0 True
157 31 32 1.7043840283934533 44.83344769051828 0.7959078625659504 0.10965414855273443 6 12.882067962817517 0.009608345699366565 0.04073745185785107 1.0 True
158 31 33 3.3472002644811774 83.44987736715868 0.636089469716009 0.11810494837446742 6 13.701242758091343 0.01055590691460776 0.06271370554561609 1.0 True
159 31 34 3.311630046755356 133.49479301359594 0.6599326599326599 0.11513164519765848 6 15.199690471396346 0.002580333972310516 0.03476275200242535 1.0 True
160 31 35 4.805055361756335 164.67870808539848 0.7747933884297521 0.1099315236542533 6 13.983106845566315 0.002969158365974405 0.02482993261597952 1.0 True
161 31 36 5.921091773191984 169.88970913698103 0.79326799071447 0.11165900641583826 6 12.181844458808802 0.004151989866605975 0.032942374858786365 1.0 True
162 32 33 1.9394369188755196 38.61642967664041 0.7479238533282229 0.1140254726045761 6 12.862133545437658 0.005854383016193307 0.042356141718508426 1.0 True
163 32 34 2.1435446082722334 88.6613453230776 0.7426470588235294 0.11481351455228676 6 15.077486603426832 0.0025843844761028077 0.009064526838353553 1.0 True
164 32 35 3.1027737257249126 119.84526039487966 0.8209641402863523 0.10635864973089924 6 10.914008667831691 0.004447738370013908 0.11616784364821804 1.0 True
165 32 36 4.235311686227635 145.27684317250132 0.7613800341073068 0.10898930843612145 6 12.22686011069426 0.008302372052489307 0.047221847858387886 1.0 True
166 32 37 3.1931475050378357 118.78221388859481 0.6919923126201153 0.11497666348297753 6 16.91846428853567 0.00567166990415677 0.10190182649448634 1.0 True
167 33 34 0.5704890065278277 50.0449156464372 0.8247678018575851 0.10774292174748101 6 13.307399451848953 0.005218203824516851 0.054034410494683056 1.0 True
168 33 35 2.3843314966611664 81.22883071823928 0.7097435897435898 0.11216257584808116 6 12.920219167499932 0.0055472051152683725 0.06161504272529624 1.0 True
169 33 36 3.5605240220038255 106.66041349586102 0.62202304737516 0.11282494351568334 6 18.491230751066993 0.009207361872581905 0.07430583689659953 1.0 True
170 33 37 4.013080941901569 80.16578421195443 0.6328828828828829 0.12540757119118434 6 17.018187124475837 0.0036940550280262596 0.12927083795080543 1.0 True
171 34 35 2.9403442697824866 31.183915071802076 0.7146673451214858 0.11428688542425412 6 13.705016766266674 0.013436446539858737 0.05510481554154184 1.0 True
172 34 36 4.102710388907318 56.61549784942384 0.6465506288908652 0.11729490897001751 6 19.754334744118587 0.086056763787067 1.0836879727751445 1.0 False forward_reverse_translation;forward_reverse_rotation
173 34 37 3.6865711881345757 30.12086856551724 0.6899292189246243 0.11937420197560855 6 16.808577408839643 0.005083360744530967 0.10024940937419655 1.0 True
174 35 36 1.2045561534352058 25.431582777621774 0.8242496050552922 0.10907898456971946 6 9.660062538057792 0.0026096461304541156 0.07595057929078583 1.0 True
175 35 37 6.084062615492111 1.063046506284832 0.6924659295448702 0.12103303062396852 6 14.36240888115935 0.005914867863779407 0.06573359298031699 1.0 True
176 36 37 7.2781244258509386 26.494629283906598 0.6402157164869029 0.12413886977390769 6 20.08544982146282 0.008397869289519334 0.08479281990151419 1.0 True
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,277 +0,0 @@
{
"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": 36,
"translation_m": {
"rms": 0.07402020402512643,
"median": 0.05314343925871579,
"p90": 0.1272969635290951,
"p95": 0.14147696290683623,
"max": 0.15743855349684896
},
"rotation_deg": {
"rms": 1.1492603033421918,
"median": 0.8694109171568597,
"p90": 1.8257616608147966,
"p95": 1.9151501783565152,
"max": 2.3872345295181554
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.026175149113866782,
"rotation_deg": 0.6391104344821068,
"i": 0,
"j": 1
},
{
"pair_index": 1,
"translation_m": 0.05399080656776795,
"rotation_deg": 0.7503462279599024,
"i": 0,
"j": 3
},
{
"pair_index": 2,
"translation_m": 0.05685955205113222,
"rotation_deg": 1.7528510918025244,
"i": 1,
"j": 2
},
{
"pair_index": 3,
"translation_m": 0.04386400899992785,
"rotation_deg": 1.8467495197498804,
"i": 2,
"j": 3
},
{
"pair_index": 4,
"translation_m": 0.05626077366726556,
"rotation_deg": 0.8079113372879332,
"i": 2,
"j": 5
},
{
"pair_index": 5,
"translation_m": 0.09087008636486496,
"rotation_deg": 1.026687291127638,
"i": 3,
"j": 4
},
{
"pair_index": 6,
"translation_m": 0.011511013157318718,
"rotation_deg": 0.19484251468537728,
"i": 3,
"j": 5
},
{
"pair_index": 7,
"translation_m": 0.07294571613929493,
"rotation_deg": 0.8223795285339977,
"i": 4,
"j": 5
},
{
"pair_index": 8,
"translation_m": 0.03068183988034665,
"rotation_deg": 0.28683040898343787,
"i": 5,
"j": 6
},
{
"pair_index": 9,
"translation_m": 0.04275223212349703,
"rotation_deg": 0.701351776008062,
"i": 6,
"j": 7
},
{
"pair_index": 10,
"translation_m": 0.04932770426469867,
"rotation_deg": 0.6710714316916605,
"i": 6,
"j": 9
},
{
"pair_index": 11,
"translation_m": 0.04132200915104361,
"rotation_deg": 1.0591594894230583,
"i": 11,
"j": 12
},
{
"pair_index": 12,
"translation_m": 0.05457596514011665,
"rotation_deg": 1.9025587382160285,
"i": 16,
"j": 17
},
{
"pair_index": 13,
"translation_m": 0.1444364884565483,
"rotation_deg": 0.878734531814174,
"i": 17,
"j": 18
},
{
"pair_index": 14,
"translation_m": 0.08666942413173652,
"rotation_deg": 0.8560485527931129,
"i": 18,
"j": 19
},
{
"pair_index": 15,
"translation_m": 0.1401188917021612,
"rotation_deg": 1.596129012793476,
"i": 18,
"j": 21
},
{
"pair_index": 16,
"translation_m": 0.015218472185905801,
"rotation_deg": 1.3639536065690272,
"i": 20,
"j": 21
},
{
"pair_index": 17,
"translation_m": 0.044288628737202185,
"rotation_deg": 0.24234091190374474,
"i": 20,
"j": 22
},
{
"pair_index": 18,
"translation_m": 0.041873719472882466,
"rotation_deg": 0.8630111615428633,
"i": 20,
"j": 23
},
{
"pair_index": 19,
"translation_m": 0.04766076872791419,
"rotation_deg": 1.592170300445217,
"i": 21,
"j": 22
},
{
"pair_index": 20,
"translation_m": 0.06407386924590294,
"rotation_deg": 0.6604716233222132,
"i": 21,
"j": 24
},
{
"pair_index": 21,
"translation_m": 0.04694855582296258,
"rotation_deg": 0.49059371565968823,
"i": 22,
"j": 23
},
{
"pair_index": 22,
"translation_m": 0.01699246526900484,
"rotation_deg": 1.4341910287168735,
"i": 22,
"j": 24
},
{
"pair_index": 23,
"translation_m": 0.05229607194966363,
"rotation_deg": 1.120879367830044,
"i": 23,
"j": 24
},
{
"pair_index": 24,
"translation_m": 0.020810043376301643,
"rotation_deg": 0.5009109191051434,
"i": 24,
"j": 25
},
{
"pair_index": 25,
"translation_m": 0.043831190745566344,
"rotation_deg": 0.47571695708233286,
"i": 24,
"j": 26
},
{
"pair_index": 26,
"translation_m": 0.11447503535602893,
"rotation_deg": 0.9257799651614966,
"i": 25,
"j": 26
},
{
"pair_index": 27,
"translation_m": 0.061431194585866364,
"rotation_deg": 1.8047738018797126,
"i": 27,
"j": 28
},
{
"pair_index": 28,
"translation_m": 0.09966331456020154,
"rotation_deg": 1.9529244987779755,
"i": 27,
"j": 29
},
{
"pair_index": 29,
"translation_m": 0.07785577496744421,
"rotation_deg": 0.5145378388092755,
"i": 28,
"j": 29
},
{
"pair_index": 30,
"translation_m": 0.14049045439026553,
"rotation_deg": 0.83303218231006,
"i": 30,
"j": 31
},
{
"pair_index": 31,
"translation_m": 0.11441845590035929,
"rotation_deg": 0.8758106727708561,
"i": 30,
"j": 33
},
{
"pair_index": 32,
"translation_m": 0.15743855349684896,
"rotation_deg": 0.5956528317274336,
"i": 33,
"j": 35
},
{
"pair_index": 33,
"translation_m": 0.05714959629699741,
"rotation_deg": 0.9388591914539489,
"i": 34,
"j": 35
},
{
"pair_index": 34,
"translation_m": 0.019561513757857227,
"rotation_deg": 2.3872345295181554,
"i": 34,
"j": 37
},
{
"pair_index": 35,
"translation_m": 0.04089150700945596,
"rotation_deg": 1.264595889658635,
"i": 35,
"j": 36
}
]
}
}
@@ -1,974 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2966739731400179,
-0.0011818594987371798,
0.7180500518063239
],
"rotation_rpy_deg_xyz": [
-0.6862002617473892,
1.312299105350799,
-0.8320898359211147
],
"quaternion_xyzw": [
-0.005904487870209512,
0.0114946916809237,
-0.007192110236616905,
0.9998906353379331
],
"matrix_4x4": [
[
0.9996322912270097,
0.014246906812619035,
0.02307180059101153,
1.2966739731400179
],
[
-0.014518387883026281,
0.9998268211466698,
0.011642342076367565,
-0.0011818594987371798
],
[
-0.02290193768039828,
-0.011973026435188067,
0.9996660181723022,
0.7180500518063239
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 154,
"residuals": {
"pairs": 154,
"translation_m": {
"rms": 0.20169832880489094,
"median": 0.07246524583191469,
"p90": 0.2753897404824865,
"p95": 0.4278425490718384,
"max": 0.9413768077277793
},
"rotation_deg": {
"rms": 1.6476271943239644,
"median": 0.9814049617994354,
"p90": 2.2430975893180514,
"p95": 3.6234061615039397,
"max": 5.555959014778186
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.09160335763349035,
"rotation_deg": 0.41678911395678336
},
{
"pair_index": 1,
"translation_m": 0.17342241098897876,
"rotation_deg": 0.6069352741159756
},
{
"pair_index": 2,
"translation_m": 0.15362597338796116,
"rotation_deg": 0.5006592067754067
},
{
"pair_index": 3,
"translation_m": 0.10307796882842468,
"rotation_deg": 0.7631958047896495
},
{
"pair_index": 4,
"translation_m": 0.034854178949377916,
"rotation_deg": 0.7924566962483651
},
{
"pair_index": 5,
"translation_m": 0.08229579737538087,
"rotation_deg": 0.5218956920191586
},
{
"pair_index": 6,
"translation_m": 0.07756178891403459,
"rotation_deg": 0.8901066576751191
},
{
"pair_index": 7,
"translation_m": 0.00515582594404776,
"rotation_deg": 1.1480686598732328
},
{
"pair_index": 8,
"translation_m": 0.11902969080451287,
"rotation_deg": 0.7250267588731203
},
{
"pair_index": 9,
"translation_m": 0.02041753358033973,
"rotation_deg": 0.42666891550326913
},
{
"pair_index": 10,
"translation_m": 0.05329811381948769,
"rotation_deg": 1.3070274389810175
},
{
"pair_index": 11,
"translation_m": 0.07255710332913211,
"rotation_deg": 1.7485586508142046
},
{
"pair_index": 12,
"translation_m": 0.12913362654704053,
"rotation_deg": 1.0437199550859728
},
{
"pair_index": 13,
"translation_m": 0.2784531278023029,
"rotation_deg": 0.8165170023642168
},
{
"pair_index": 14,
"translation_m": 0.0583276394617015,
"rotation_deg": 0.9536825261286082
},
{
"pair_index": 15,
"translation_m": 0.07766573568009734,
"rotation_deg": 1.3734118987942618
},
{
"pair_index": 16,
"translation_m": 0.08519120540755043,
"rotation_deg": 1.5504754382194925
},
{
"pair_index": 17,
"translation_m": 0.2392325556096795,
"rotation_deg": 0.9306633614951502
},
{
"pair_index": 18,
"translation_m": 0.02049661768665185,
"rotation_deg": 0.5434732565644916
},
{
"pair_index": 19,
"translation_m": 0.10141834924376554,
"rotation_deg": 0.6801110152223822
},
{
"pair_index": 20,
"translation_m": 0.1927601584704251,
"rotation_deg": 0.7704160771388004
},
{
"pair_index": 21,
"translation_m": 0.07237338833469728,
"rotation_deg": 1.13355234535889
},
{
"pair_index": 22,
"translation_m": 0.2380321686720521,
"rotation_deg": 0.6543633179461373
},
{
"pair_index": 23,
"translation_m": 0.022956329719636855,
"rotation_deg": 0.34448651373739575
},
{
"pair_index": 24,
"translation_m": 0.17365496513981085,
"rotation_deg": 0.5919072614412411
},
{
"pair_index": 25,
"translation_m": 0.26972044137209944,
"rotation_deg": 0.394408649127183
},
{
"pair_index": 26,
"translation_m": 0.16479297108025018,
"rotation_deg": 0.8933837591188238
},
{
"pair_index": 27,
"translation_m": 0.029173826915557283,
"rotation_deg": 0.9823009311305465
},
{
"pair_index": 28,
"translation_m": 0.16558352679496174,
"rotation_deg": 1.6354580097985452
},
{
"pair_index": 29,
"translation_m": 0.27142725327985545,
"rotation_deg": 1.6832228760069097
},
{
"pair_index": 30,
"translation_m": 0.03804497310320746,
"rotation_deg": 0.6214699590261354
},
{
"pair_index": 31,
"translation_m": 0.00988217602887705,
"rotation_deg": 0.9654320545457507
},
{
"pair_index": 32,
"translation_m": 0.20932389516970148,
"rotation_deg": 1.235263404784913
},
{
"pair_index": 33,
"translation_m": 0.23596844902340763,
"rotation_deg": 0.9742253618504498
},
{
"pair_index": 34,
"translation_m": 0.04810773998382127,
"rotation_deg": 0.40079885061586873
},
{
"pair_index": 35,
"translation_m": 0.1439097271676289,
"rotation_deg": 0.5833810515945358
},
{
"pair_index": 36,
"translation_m": 0.2770879492836139,
"rotation_deg": 1.7217009121491587
},
{
"pair_index": 37,
"translation_m": 0.2635733716233143,
"rotation_deg": 0.959386216598219
},
{
"pair_index": 38,
"translation_m": 0.30076236456889854,
"rotation_deg": 0.5341538159367174
},
{
"pair_index": 39,
"translation_m": 0.08917523492271737,
"rotation_deg": 0.752253926704042
},
{
"pair_index": 40,
"translation_m": 0.2283689383450832,
"rotation_deg": 1.7644222410834363
},
{
"pair_index": 41,
"translation_m": 0.21162807555337518,
"rotation_deg": 0.893481051160724
},
{
"pair_index": 42,
"translation_m": 0.14042093106101866,
"rotation_deg": 1.2907294157599642
},
{
"pair_index": 43,
"translation_m": 0.1691423878395439,
"rotation_deg": 2.377216518666257
},
{
"pair_index": 44,
"translation_m": 0.1169779798191509,
"rotation_deg": 1.3815961809053516
},
{
"pair_index": 45,
"translation_m": 0.1387832440968286,
"rotation_deg": 1.5947217176166877
},
{
"pair_index": 46,
"translation_m": 0.030062828340300884,
"rotation_deg": 1.0704098135809084
},
{
"pair_index": 47,
"translation_m": 0.0680455433006411,
"rotation_deg": 1.973549636369647
},
{
"pair_index": 48,
"translation_m": 0.031870236699333414,
"rotation_deg": 2.4723290530697546
},
{
"pair_index": 49,
"translation_m": 0.38250571101706576,
"rotation_deg": 1.1600905208267944
},
{
"pair_index": 50,
"translation_m": 0.06098547660886484,
"rotation_deg": 1.5193006464833663
},
{
"pair_index": 51,
"translation_m": 0.020049847803449816,
"rotation_deg": 2.0752028054797114
},
{
"pair_index": 52,
"translation_m": 0.14976699977401936,
"rotation_deg": 0.9032263412060769
},
{
"pair_index": 53,
"translation_m": 0.38104623295208556,
"rotation_deg": 0.6420289897992424
},
{
"pair_index": 54,
"translation_m": 0.6145427269990851,
"rotation_deg": 4.320949352504073
},
{
"pair_index": 55,
"translation_m": 0.0644413592299437,
"rotation_deg": 2.803369589869878
},
{
"pair_index": 56,
"translation_m": 0.18425354638764108,
"rotation_deg": 0.6171163774519929
},
{
"pair_index": 57,
"translation_m": 0.3120883490259661,
"rotation_deg": 0.4259486202878496
},
{
"pair_index": 58,
"translation_m": 0.418016177718232,
"rotation_deg": 5.044083647712121
},
{
"pair_index": 59,
"translation_m": 0.07897058451306387,
"rotation_deg": 2.708937676342093
},
{
"pair_index": 60,
"translation_m": 0.20725234914942078,
"rotation_deg": 1.3373510925222083
},
{
"pair_index": 61,
"translation_m": 0.5028731993983374,
"rotation_deg": 2.560781611577359
},
{
"pair_index": 62,
"translation_m": 0.324052710994222,
"rotation_deg": 3.4637911605755742
},
{
"pair_index": 63,
"translation_m": 0.16594327616277665,
"rotation_deg": 1.096300100186063
},
{
"pair_index": 64,
"translation_m": 0.9413768077277793,
"rotation_deg": 4.623227467412829
},
{
"pair_index": 65,
"translation_m": 0.7475763787765258,
"rotation_deg": 5.251990934487642
},
{
"pair_index": 66,
"translation_m": 0.44609152444282213,
"rotation_deg": 5.555959014778186
},
{
"pair_index": 67,
"translation_m": 0.8772363359544111,
"rotation_deg": 3.919834020370911
},
{
"pair_index": 68,
"translation_m": 0.7256840115352385,
"rotation_deg": 4.7791807757364335
},
{
"pair_index": 69,
"translation_m": 0.5540111498360015,
"rotation_deg": 5.404862742811467
},
{
"pair_index": 70,
"translation_m": 0.05427710319100646,
"rotation_deg": 0.47262999225353286
},
{
"pair_index": 71,
"translation_m": 0.03494523113943391,
"rotation_deg": 1.5163417215367592
},
{
"pair_index": 72,
"translation_m": 0.04639564426856145,
"rotation_deg": 1.9306722358716086
},
{
"pair_index": 73,
"translation_m": 0.031597675421818384,
"rotation_deg": 2.0321950625908634
},
{
"pair_index": 74,
"translation_m": 0.06688972458549529,
"rotation_deg": 1.0363014892153515
},
{
"pair_index": 75,
"translation_m": 0.07495539042883581,
"rotation_deg": 0.879604047232473
},
{
"pair_index": 76,
"translation_m": 0.07523266019202682,
"rotation_deg": 0.6051319351741334
},
{
"pair_index": 77,
"translation_m": 0.07099230127095138,
"rotation_deg": 1.202238808395327
},
{
"pair_index": 78,
"translation_m": 0.06557199988165952,
"rotation_deg": 0.6765649678327575
},
{
"pair_index": 79,
"translation_m": 0.12154293847124566,
"rotation_deg": 0.7325970122680316
},
{
"pair_index": 80,
"translation_m": 0.17982574134407248,
"rotation_deg": 1.5473661961917022
},
{
"pair_index": 81,
"translation_m": 0.04462726734001729,
"rotation_deg": 0.6937634461069877
},
{
"pair_index": 82,
"translation_m": 0.0613023995980599,
"rotation_deg": 0.8119788473937047
},
{
"pair_index": 83,
"translation_m": 0.08503096310423741,
"rotation_deg": 1.4444141387028644
},
{
"pair_index": 84,
"translation_m": 0.07464123857051043,
"rotation_deg": 0.7030897752540571
},
{
"pair_index": 85,
"translation_m": 0.029868184350228942,
"rotation_deg": 0.9135621919993453
},
{
"pair_index": 86,
"translation_m": 0.05823954193987833,
"rotation_deg": 0.5917544307877486
},
{
"pair_index": 87,
"translation_m": 0.0551313637068964,
"rotation_deg": 1.4516548104557863
},
{
"pair_index": 88,
"translation_m": 0.09827472129882013,
"rotation_deg": 0.42188472344008116
},
{
"pair_index": 89,
"translation_m": 0.044245224544806644,
"rotation_deg": 1.0004748409346111
},
{
"pair_index": 90,
"translation_m": 0.018832180352354084,
"rotation_deg": 1.51099458595063
},
{
"pair_index": 91,
"translation_m": 0.020467010735194163,
"rotation_deg": 1.7676261200773673
},
{
"pair_index": 92,
"translation_m": 0.0262975474700301,
"rotation_deg": 0.8325617740533534
},
{
"pair_index": 93,
"translation_m": 0.04446844149309418,
"rotation_deg": 1.5739586103283063
},
{
"pair_index": 94,
"translation_m": 0.01467330858160615,
"rotation_deg": 1.2850817812632396
},
{
"pair_index": 95,
"translation_m": 0.06870746700120084,
"rotation_deg": 1.7240767243237687
},
{
"pair_index": 96,
"translation_m": 0.05666264876403947,
"rotation_deg": 1.0206213519210603
},
{
"pair_index": 97,
"translation_m": 0.07342527442704463,
"rotation_deg": 0.7244552191419976
},
{
"pair_index": 98,
"translation_m": 0.054266286757252646,
"rotation_deg": 0.4989636190115999
},
{
"pair_index": 99,
"translation_m": 0.047207658172525445,
"rotation_deg": 0.23696494205729182
},
{
"pair_index": 100,
"translation_m": 0.11572080515326105,
"rotation_deg": 1.7515941247741897
},
{
"pair_index": 101,
"translation_m": 0.06407086244008413,
"rotation_deg": 0.46899277183017407
},
{
"pair_index": 102,
"translation_m": 0.15305365572855853,
"rotation_deg": 0.9523959443915215
},
{
"pair_index": 103,
"translation_m": 0.05122753080254304,
"rotation_deg": 1.3098743656013143
},
{
"pair_index": 104,
"translation_m": 0.0946533848328183,
"rotation_deg": 0.7612204831612559
},
{
"pair_index": 105,
"translation_m": 0.07481645106107998,
"rotation_deg": 0.7174903795296853
},
{
"pair_index": 106,
"translation_m": 0.07931651617250869,
"rotation_deg": 0.3160868091969118
},
{
"pair_index": 107,
"translation_m": 0.0656383441135373,
"rotation_deg": 0.7904846161787125
},
{
"pair_index": 108,
"translation_m": 0.03241931291657944,
"rotation_deg": 1.535299757082846
},
{
"pair_index": 109,
"translation_m": 0.06234488990038783,
"rotation_deg": 1.5874303211040584
},
{
"pair_index": 110,
"translation_m": 0.03506692454461985,
"rotation_deg": 0.25002484619548354
},
{
"pair_index": 111,
"translation_m": 0.04125822298839504,
"rotation_deg": 0.8720293199565927
},
{
"pair_index": 112,
"translation_m": 0.051725253480973364,
"rotation_deg": 1.5059976851542656
},
{
"pair_index": 113,
"translation_m": 0.025726583767115428,
"rotation_deg": 1.5673808264017624
},
{
"pair_index": 114,
"translation_m": 0.027511376068390752,
"rotation_deg": 0.719385406633602
},
{
"pair_index": 115,
"translation_m": 0.04557229476188737,
"rotation_deg": 0.8566964152790454
},
{
"pair_index": 116,
"translation_m": 0.1301226621807897,
"rotation_deg": 1.9490463203564985
},
{
"pair_index": 117,
"translation_m": 0.08472149919727921,
"rotation_deg": 1.4400759566709866
},
{
"pair_index": 118,
"translation_m": 0.03305331754412625,
"rotation_deg": 1.5282125278120453
},
{
"pair_index": 119,
"translation_m": 0.06943760420453976,
"rotation_deg": 0.14382473264645845
},
{
"pair_index": 120,
"translation_m": 0.1387812176775449,
"rotation_deg": 0.9702105493011807
},
{
"pair_index": 121,
"translation_m": 0.050472774524194526,
"rotation_deg": 0.7112996871542888
},
{
"pair_index": 122,
"translation_m": 0.040960987456295526,
"rotation_deg": 0.8626492437182947
},
{
"pair_index": 123,
"translation_m": 0.1183520030349349,
"rotation_deg": 1.9037016305375127
},
{
"pair_index": 124,
"translation_m": 0.13482286998475895,
"rotation_deg": 1.1180532382465007
},
{
"pair_index": 125,
"translation_m": 0.08919768111421818,
"rotation_deg": 0.7424305858785966
},
{
"pair_index": 126,
"translation_m": 0.03295290503021982,
"rotation_deg": 0.8748115525182623
},
{
"pair_index": 127,
"translation_m": 0.07050270871439886,
"rotation_deg": 2.315052496677334
},
{
"pair_index": 128,
"translation_m": 0.08399613707521804,
"rotation_deg": 1.3430883907512923
},
{
"pair_index": 129,
"translation_m": 0.07635426719286566,
"rotation_deg": 0.28938877097974597
},
{
"pair_index": 130,
"translation_m": 0.08599980484168654,
"rotation_deg": 0.3232792746340014
},
{
"pair_index": 131,
"translation_m": 0.08546417597482137,
"rotation_deg": 1.3709646380399854
},
{
"pair_index": 132,
"translation_m": 0.0586834782862356,
"rotation_deg": 0.6222764869215247
},
{
"pair_index": 133,
"translation_m": 0.06297920233905209,
"rotation_deg": 1.0415437811293622
},
{
"pair_index": 134,
"translation_m": 0.0421890137454461,
"rotation_deg": 0.6732808756041617
},
{
"pair_index": 135,
"translation_m": 0.03384375753290982,
"rotation_deg": 0.5098352623359285
},
{
"pair_index": 136,
"translation_m": 0.06075109086084829,
"rotation_deg": 1.672042116085701
},
{
"pair_index": 137,
"translation_m": 0.1123184567166834,
"rotation_deg": 1.9991157673182287
},
{
"pair_index": 138,
"translation_m": 0.06975029753182684,
"rotation_deg": 1.0328391327124684
},
{
"pair_index": 139,
"translation_m": 0.04075826846987665,
"rotation_deg": 0.4510416388715733
},
{
"pair_index": 140,
"translation_m": 0.028766437036440082,
"rotation_deg": 1.1094878762620817
},
{
"pair_index": 141,
"translation_m": 0.038764927354221934,
"rotation_deg": 1.0013714467514025
},
{
"pair_index": 142,
"translation_m": 0.04136840051779099,
"rotation_deg": 0.3534868458036239
},
{
"pair_index": 143,
"translation_m": 0.07880312075185329,
"rotation_deg": 1.224811122150423
},
{
"pair_index": 144,
"translation_m": 0.022505079629904813,
"rotation_deg": 1.0872300390191383
},
{
"pair_index": 145,
"translation_m": 0.013450514823594537,
"rotation_deg": 0.271332255193449
},
{
"pair_index": 146,
"translation_m": 0.05540964657988301,
"rotation_deg": 0.9805089924683242
},
{
"pair_index": 147,
"translation_m": 0.048893074003320006,
"rotation_deg": 2.060862589786143
},
{
"pair_index": 148,
"translation_m": 0.021147862897351464,
"rotation_deg": 0.5068012746071331
},
{
"pair_index": 149,
"translation_m": 0.04215476698638024,
"rotation_deg": 1.1176937562359575
},
{
"pair_index": 150,
"translation_m": 0.01586414732810156,
"rotation_deg": 0.5375200318464232
},
{
"pair_index": 151,
"translation_m": 0.012304155965152195,
"rotation_deg": 0.6912196843126612
},
{
"pair_index": 152,
"translation_m": 0.03401108751100478,
"rotation_deg": 0.5348561807666571
},
{
"pair_index": 153,
"translation_m": 0.0382087841988423,
"rotation_deg": 2.5751575774124302
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.003426069786439831,
0.003661463644230861,
0.005894947490840618
],
"rotation_deg": [
0.039743045073798305,
0.03697641596170036,
0.059566156250294475
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 9.240412309046407,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 986.8831673974076,
"success": true,
"translation_m": 1.781114124910946e-10,
"rotation_deg": 1.5745193455937713e-09
},
{
"cost": 986.883167397408,
"success": true,
"translation_m": 5.536606008158485e-10,
"rotation_deg": 2.217262412976666e-08
},
{
"cost": 986.883167397408,
"success": true,
"translation_m": 5.220783796487502e-10,
"rotation_deg": 8.362101120716713e-09
},
{
"cost": 986.883167397408,
"success": true,
"translation_m": 3.678710827203267e-10,
"rotation_deg": 2.260153530135103e-08
},
{
"cost": 986.8831673974075,
"success": true,
"translation_m": 1.7534776205532575e-10,
"rotation_deg": 3.2670580143957554e-09
},
{
"cost": 986.8831673974074,
"success": true,
"translation_m": 3.469446951953614e-18,
"rotation_deg": 0.0
},
{
"cost": 986.8831673974096,
"success": true,
"translation_m": 1.5270516044070511e-09,
"rotation_deg": 7.02719130732361e-08
},
{
"cost": 986.8831673974074,
"success": true,
"translation_m": 1.2027149370934288e-10,
"rotation_deg": 3.250857426548915e-09
},
{
"cost": 986.8831673974076,
"success": true,
"translation_m": 1.3743999906846494e-10,
"rotation_deg": 3.478167640260992e-09
},
{
"cost": 986.8831673974076,
"success": true,
"translation_m": 7.561012126834818e-11,
"rotation_deg": 3.398361215816758e-09
},
{
"cost": 986.8831673974076,
"success": true,
"translation_m": 1.5936145552789374e-10,
"rotation_deg": 3.5265475806436176e-09
},
{
"cost": 986.8831673974076,
"success": true,
"translation_m": 4.3707227819079805e-10,
"rotation_deg": 7.230578566209689e-09
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.0016135672080709418,
0.001712659789326026,
0.0010626181065453576,
0.04873173241478149,
0.04696015710280561,
0.05195409090162765
],
"p025": [
1.293581085997522,
-0.00451064016109812,
0.7160005593474846,
-0.782142502478161,
1.2412102159858718,
-0.9139767554692944
],
"p975": [
1.2994255903325156,
0.0023253494861594877,
0.7196644226938009,
-0.5899348985799792,
1.40343833941121,
-0.7335620940370134
]
}
}
@@ -1,604 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "Both `ftol` and `xtol` termination conditions are satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2996301155160686,
-0.0035647011612625953,
0.7218861757826791
],
"rotation_rpy_deg_xyz": [
-0.7871563544979889,
1.1414557494228486,
-0.9357571721886107
],
"quaternion_xyzw": [
-0.00678727299452357,
0.010016439179525593,
-0.008096912246155998,
0.9998940163254998
],
"matrix_4x4": [
[
0.9996682219164817,
0.01605613959699911,
0.02014066710864661,
1.2996301155160686
],
[
-0.016328076825577065,
0.9997767458747517,
0.013410902850672373,
-0.0035647011612625953
],
[
-0.019920843293337136,
-0.01373531176689472,
0.9997072077429213,
0.7218861757826791
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 38,
"pairs": 80,
"residuals": {
"pairs": 80,
"translation_m": {
"rms": 0.11870623426762615,
"median": 0.06068763803103021,
"p90": 0.19284315530447813,
"p95": 0.23754716587335756,
"max": 0.38871430386214717
},
"rotation_deg": {
"rms": 1.135091439337232,
"median": 0.9273339494951451,
"p90": 1.649541165022219,
"p95": 1.981621584559613,
"max": 2.6935053979880266
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.09187263959310249,
"rotation_deg": 0.38130732180446597
},
{
"pair_index": 1,
"translation_m": 0.1769336788939164,
"rotation_deg": 0.6450700969822144
},
{
"pair_index": 2,
"translation_m": 0.15700274999733538,
"rotation_deg": 0.5067710073297588
},
{
"pair_index": 3,
"translation_m": 0.10662491066187467,
"rotation_deg": 0.5429917463514751
},
{
"pair_index": 4,
"translation_m": 0.029628667721179554,
"rotation_deg": 0.5509223411600718
},
{
"pair_index": 5,
"translation_m": 0.0843749108812327,
"rotation_deg": 0.4940771462459488
},
{
"pair_index": 6,
"translation_m": 0.07914868235296937,
"rotation_deg": 0.8254472643593804
},
{
"pair_index": 7,
"translation_m": 0.009453498887768107,
"rotation_deg": 0.9043821535551515
},
{
"pair_index": 8,
"translation_m": 0.019511765564918175,
"rotation_deg": 0.3967737125225238
},
{
"pair_index": 9,
"translation_m": 0.05341682547424797,
"rotation_deg": 1.2338229281598583
},
{
"pair_index": 10,
"translation_m": 0.07322963958641442,
"rotation_deg": 1.6425496017479204
},
{
"pair_index": 11,
"translation_m": 0.05907844745776598,
"rotation_deg": 0.9099755792395827
},
{
"pair_index": 12,
"translation_m": 0.07907007871308952,
"rotation_deg": 1.294221003621915
},
{
"pair_index": 13,
"translation_m": 0.02140092032185309,
"rotation_deg": 0.5139343819205795
},
{
"pair_index": 14,
"translation_m": 0.19209639243977228,
"rotation_deg": 0.9890356204602867
},
{
"pair_index": 15,
"translation_m": 0.23611357668308347,
"rotation_deg": 0.7834325452898548
},
{
"pair_index": 16,
"translation_m": 0.023285251634710107,
"rotation_deg": 0.17520547335389194
},
{
"pair_index": 17,
"translation_m": 0.26478536048856705,
"rotation_deg": 0.710271315591521
},
{
"pair_index": 18,
"translation_m": 0.16006553402191026,
"rotation_deg": 0.957610910483182
},
{
"pair_index": 19,
"translation_m": 0.027251092891380724,
"rotation_deg": 0.9157938224757094
},
{
"pair_index": 20,
"translation_m": 0.04027747409562381,
"rotation_deg": 0.5934052344689098
},
{
"pair_index": 21,
"translation_m": 0.009702766313815113,
"rotation_deg": 0.8792062492068344
},
{
"pair_index": 22,
"translation_m": 0.19956402108683025,
"rotation_deg": 1.302707349930284
},
{
"pair_index": 23,
"translation_m": 0.22208667994405493,
"rotation_deg": 0.865060603092117
},
{
"pair_index": 24,
"translation_m": 0.04688877706330616,
"rotation_deg": 0.35495594456572455
},
{
"pair_index": 25,
"translation_m": 0.14151886488940063,
"rotation_deg": 0.6501219960603252
},
{
"pair_index": 26,
"translation_m": 0.0884069047402769,
"rotation_deg": 0.7969404276735993
},
{
"pair_index": 27,
"translation_m": 0.16408056565265292,
"rotation_deg": 2.4437963646244074
},
{
"pair_index": 28,
"translation_m": 0.028664980727987763,
"rotation_deg": 1.008490254813876
},
{
"pair_index": 29,
"translation_m": 0.07072061490599325,
"rotation_deg": 1.909748472867515
},
{
"pair_index": 30,
"translation_m": 0.022948436582833444,
"rotation_deg": 2.3225092779351595
},
{
"pair_index": 31,
"translation_m": 0.38849552688092603,
"rotation_deg": 1.2325430499166412
},
{
"pair_index": 32,
"translation_m": 0.06230564324556168,
"rotation_deg": 1.4474405187186974
},
{
"pair_index": 33,
"translation_m": 0.017320969569104998,
"rotation_deg": 1.9636801270135327
},
{
"pair_index": 34,
"translation_m": 0.15793386431764098,
"rotation_deg": 1.0830036872759303
},
{
"pair_index": 35,
"translation_m": 0.38871430386214717,
"rotation_deg": 0.6522443164627029
},
{
"pair_index": 36,
"translation_m": 0.06172089136639702,
"rotation_deg": 2.6935053979880266
},
{
"pair_index": 37,
"translation_m": 0.1887406405132845,
"rotation_deg": 0.5255100746087121
},
{
"pair_index": 38,
"translation_m": 0.3189860513403679,
"rotation_deg": 0.33497034772867773
},
{
"pair_index": 39,
"translation_m": 0.08451339501338925,
"rotation_deg": 2.6477889534666375
},
{
"pair_index": 40,
"translation_m": 0.21900981683029178,
"rotation_deg": 1.2331847283146662
},
{
"pair_index": 41,
"translation_m": 0.1713522910564131,
"rotation_deg": 1.183067166836572
},
{
"pair_index": 42,
"translation_m": 0.0512348407217562,
"rotation_deg": 0.6012483843007921
},
{
"pair_index": 43,
"translation_m": 0.07445293169404418,
"rotation_deg": 1.1211247122462373
},
{
"pair_index": 44,
"translation_m": 0.04410762061472433,
"rotation_deg": 0.6590595108738039
},
{
"pair_index": 45,
"translation_m": 0.033089648474152494,
"rotation_deg": 1.0312870469391562
},
{
"pair_index": 46,
"translation_m": 0.06760165724961124,
"rotation_deg": 0.4565827539034035
},
{
"pair_index": 47,
"translation_m": 0.025670738208830455,
"rotation_deg": 1.4302485146055521
},
{
"pair_index": 48,
"translation_m": 0.028147203494591596,
"rotation_deg": 1.830717268006061
},
{
"pair_index": 49,
"translation_m": 0.02266261366157945,
"rotation_deg": 0.946299184254386
},
{
"pair_index": 50,
"translation_m": 0.04935636595094902,
"rotation_deg": 1.3964539171127066
},
{
"pair_index": 51,
"translation_m": 0.05889812376302877,
"rotation_deg": 1.4698930638008505
},
{
"pair_index": 52,
"translation_m": 0.05965438469566341,
"rotation_deg": 0.9816847661944946
},
{
"pair_index": 53,
"translation_m": 0.06606854020326042,
"rotation_deg": 0.27458915782550086
},
{
"pair_index": 54,
"translation_m": 0.05158448025659227,
"rotation_deg": 0.9388740765145809
},
{
"pair_index": 55,
"translation_m": 0.07186821989401924,
"rotation_deg": 0.7757369232394653
},
{
"pair_index": 56,
"translation_m": 0.08608318124462912,
"rotation_deg": 0.30616875771444013
},
{
"pair_index": 57,
"translation_m": 0.06688749012833557,
"rotation_deg": 0.5486461025019678
},
{
"pair_index": 58,
"translation_m": 0.05762085648043371,
"rotation_deg": 1.372519412009814
},
{
"pair_index": 59,
"translation_m": 0.031564793498850025,
"rotation_deg": 0.4468008042798917
},
{
"pair_index": 60,
"translation_m": 0.039910793641719705,
"rotation_deg": 0.7939954067942764
},
{
"pair_index": 61,
"translation_m": 0.04407888801173494,
"rotation_deg": 1.3107090439391704
},
{
"pair_index": 62,
"translation_m": 0.024691509543671615,
"rotation_deg": 1.236002055213775
},
{
"pair_index": 63,
"translation_m": 0.02262539867961735,
"rotation_deg": 0.5097286713719923
},
{
"pair_index": 64,
"translation_m": 0.12496365742733645,
"rotation_deg": 1.7124652344909004
},
{
"pair_index": 65,
"translation_m": 0.07938704275394372,
"rotation_deg": 1.136197571772474
},
{
"pair_index": 66,
"translation_m": 0.03041340784879668,
"rotation_deg": 1.1835741189420788
},
{
"pair_index": 67,
"translation_m": 0.08565781637557897,
"rotation_deg": 1.325342137093704
},
{
"pair_index": 68,
"translation_m": 0.06569851623164084,
"rotation_deg": 0.5889885968744448
},
{
"pair_index": 69,
"translation_m": 0.028714655898349907,
"rotation_deg": 0.6559696801898813
},
{
"pair_index": 70,
"translation_m": 0.06483297271989888,
"rotation_deg": 1.3915654660441625
},
{
"pair_index": 71,
"translation_m": 0.03452933204038689,
"rotation_deg": 0.8331166409438662
},
{
"pair_index": 72,
"translation_m": 0.026295103775966104,
"rotation_deg": 1.2325751495683674
},
{
"pair_index": 73,
"translation_m": 0.04043011893578754,
"rotation_deg": 1.2125523869736732
},
{
"pair_index": 74,
"translation_m": 0.04383537712573055,
"rotation_deg": 0.5600272304118834
},
{
"pair_index": 75,
"translation_m": 0.0849604176628602,
"rotation_deg": 1.2304564930488662
},
{
"pair_index": 76,
"translation_m": 0.010862365758746927,
"rotation_deg": 0.38357205151967033
},
{
"pair_index": 77,
"translation_m": 0.053059282511333926,
"rotation_deg": 0.9610287581424943
},
{
"pair_index": 78,
"translation_m": 0.04551226086388418,
"rotation_deg": 1.1597952394623392
},
{
"pair_index": 79,
"translation_m": 0.016850631999927004,
"rotation_deg": 0.7568718165305058
}
]
}
},
"ground": {
"planes": 38,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.004217873072423743,
0.004428061325180952,
0.004921296107038976
],
"rotation_deg": [
0.04989765234702571,
0.04568528000305764,
0.12720936620845405
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.329566115808833,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 354.634716588624,
"success": true,
"translation_m": 3.20226506801652e-10,
"rotation_deg": 2.202963019076451e-08
},
{
"cost": 354.6347165886241,
"success": true,
"translation_m": 7.896781546182907e-10,
"rotation_deg": 1.0169266187599847e-07
},
{
"cost": 354.6347165886238,
"success": true,
"translation_m": 8.217931179403876e-10,
"rotation_deg": 6.93412504585164e-08
},
{
"cost": 354.6347165886237,
"success": true,
"translation_m": 3.469446951953614e-18,
"rotation_deg": 0.0
},
{
"cost": 354.6347165886238,
"success": true,
"translation_m": 1.3034248658026153e-10,
"rotation_deg": 2.7806728416619943e-08
},
{
"cost": 354.6347165886238,
"success": true,
"translation_m": 2.260359361733417e-10,
"rotation_deg": 2.6418689746833837e-08
},
{
"cost": 354.634716588624,
"success": true,
"translation_m": 7.589395457725227e-10,
"rotation_deg": 4.91609016107675e-08
},
{
"cost": 354.6347165886238,
"success": true,
"translation_m": 1.2750789560311927e-10,
"rotation_deg": 7.759775984980414e-10
},
{
"cost": 354.634716588624,
"success": true,
"translation_m": 7.805526908313695e-10,
"rotation_deg": 6.684488070039544e-08
},
{
"cost": 354.634716588624,
"success": true,
"translation_m": 7.763945275712574e-10,
"rotation_deg": 8.931061588988946e-08
},
{
"cost": 354.6347165886244,
"success": true,
"translation_m": 9.383630927674663e-10,
"rotation_deg": 1.3000921411943172e-07
},
{
"cost": 354.634716588624,
"success": true,
"translation_m": 6.944401937454179e-10,
"rotation_deg": 7.954648404736881e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.0017068433472663032,
0.0019214288447692426,
0.0013180801706094514,
0.06849719260762097,
0.05792635838163369,
0.062093058432709465
],
"p025": [
1.2968099294514637,
-0.006751632579940086,
0.7193267956198541,
-0.9300082754299475,
1.0287033540941326,
-1.0774039892205403
],
"p975": [
1.302479553931627,
-0.0001961195897526885,
0.7244258625906532,
-0.6646157463265417,
1.254120304082275,
-0.8275267997610058
]
}
}
-12
View File
@@ -1,12 +0,0 @@
# data4 独立标定结果
data4 含 34 个静止站点,LiDAR 来自逐站 dlogRTK/IMU 来自独立 rscap。求解不使用手量外参初始化。
```text
translation_m = [1.300376020, -0.001706691, 0.704877045]
RPY_deg_xyz = [-0.791891617, 1.393823210, -0.970742631]
AX RMS = 0.11762 m / 1.24257 deg (26 pairs)
condition = 7.44293
```
该结果用于独立对照,不是当前部署值。`final_extrinsic_data4.json``consensus/extrinsic.json` 数值相同;前者是便于下游读取的顶层副本。
@@ -1,35 +0,0 @@
time,nx,ny,nz,d,inliers,rms_m,frame_counter
1784783825.357129,-0.011572516208853837,-0.01546146293660183,0.9998134926237273,0.9428804652027359,2148,0.011933750988078078,382
1784783905.353819,0.0037183584307534687,-0.006818427483323246,0.9999698409738341,0.9412842800288904,1992,0.011942807895967073,1182
1784783971.0503054,-0.021709843154394736,-0.005232422217807239,0.999750621139065,0.9451429710867566,1863,0.012080615710528817,1839
1784784059.7468228,-0.02414670904491499,-0.0009406084776101358,0.9997079832120939,0.9517260475425733,1921,0.013468410314875789,2726
1784784149.2434597,-0.034005828386544125,0.003026503321489513,0.9994170520425345,0.9257219945735469,1673,0.012714432789206961,3621
1784784224.2408776,-0.02761369891036776,0.0016288328836576937,0.9996173420544108,0.9001377900125058,1799,0.012615520511386497,4371
1784784301.6372502,-0.0071762210837946405,-0.011511959356927467,0.9999079840878965,0.9580809447760092,2113,0.012007730376482893,5145
1784784387.733771,-0.010489658730106238,-0.009076163262051764,0.9999037905319524,0.9306898458653136,2187,0.01214615852280608,6006
1784784474.9314597,-0.016114135387570262,-0.0509432368134707,0.9985715403834008,0.9072229543504865,1894,0.012012086783846727,6878
1784784549.4274275,-0.025174259196536854,-0.013435577824823405,0.9995927880504234,0.9410339772836553,1603,0.01154746446935748,7623
1784784614.7244046,-0.03173300872144653,-0.01870285516152855,0.9993213794202,0.932566466561638,1970,0.01233410897082844,8276
1784784682.921899,-0.022665842512528424,-0.02998919824936144,0.9992932040054899,0.9145231002636922,1663,0.012948552270457988,8958
1784784758.8187964,-0.023688193326187944,-0.030852054660206355,0.9992432237549499,0.9349709939783197,1756,0.013443733500218538,9717
1784784836.0155501,-0.018461711654128285,-0.02498001140817507,0.9995174656967467,0.94720244509644,2057,0.013445893726732725,10489
1784784921.1126208,-0.01993595874096254,-0.02538449671402936,0.9994789566947642,0.9120981909462803,1822,0.012774262320504949,11340
1784784992.709947,-0.017778693539407146,-0.026803117327322167,0.9994826216386005,0.9369057170493221,2114,0.012253841210002203,12056
1784785067.6067727,-0.03766905893322114,-0.00624993226014667,0.9992707242513558,0.9491859078478477,1753,0.01368084681318558,12805
1784785215.9006598,-0.023255779098430147,-0.030526061005580876,0.9992633928739754,0.9173759052467025,2145,0.012710466955150847,14288
1784785296.4990919,-0.014034225033964978,-0.025014032112439084,0.9995885847313253,0.9275558675790446,2445,0.012495377814995792,15094
1784785363.1952267,-0.03352240146955635,-0.008711847039715113,0.9993999961581301,0.9543448006240765,1968,0.01391585588879859,15761
1784785434.592462,-0.016701702947054253,0.016663838961403298,0.9997216460544089,0.9289121671743757,1857,0.011181698281215124,16475
1784785506.389296,-0.03393096202185679,-0.007325597743377637,0.9993973311120926,0.9387396500642948,1844,0.01340053385502904,17193
1784785587.5863533,-0.03382019410288933,-0.0007820019558384217,0.9994276276668481,0.9255866795455666,1691,0.012723688174337812,18005
1784785681.9825997,-0.03422781555599595,-0.019255467037831406,0.999228544243718,0.9454924962027047,1959,0.01264678059788212,18949
1784785815.4779446,-0.0011902245774294716,-0.023262098479360813,0.9997286922659526,0.9523139768255908,2026,0.012446728838862407,20284
1784785891.9768085,-0.02758114176328463,0.0022252358991911286,0.9996170911625244,0.9417694614877323,1551,0.012616490996777729,21049
1784785967.8726046,-0.031038730802887403,-0.010699305087773895,0.9994609157244643,0.9511405539250901,1512,0.013166899954854165,21808
1784786031.5701303,-0.023257481598180085,-0.0214545061132305,0.9994992714940555,0.9380611442094842,1555,0.013339981386836522,22445
1784786087.9670725,-0.02720411594210121,-0.012536181034248165,0.9995512894498637,0.942804167293392,1531,0.013246549575843425,23009
1784786160.8647907,-0.030839502708575457,0.06473269778477829,0.9974259886879789,1.0783938869067702,1436,0.010501132985089602,23738
1784786252.6621523,-0.040972893104105006,-0.02082299858725662,0.9989432540242288,0.9524735117369321,1736,0.012945834939507173,24656
1784786319.6581354,-0.029761355495275914,-0.026565272466750618,0.9992039571668294,0.9594371422885729,1571,0.013108184070957877,25326
1784786396.7558627,-0.030769194030483185,-0.022645428394942407,0.9992699541522921,0.9756606317668476,1326,0.013202989492489907,26097
1784786557.4492514,-0.019983269314458783,-0.016965365794746882,0.9996563636124948,0.9409853928234136,1228,0.013269243263785414,27704
1 time nx ny nz d inliers rms_m frame_counter
2 1784783825.357129 -0.011572516208853837 -0.01546146293660183 0.9998134926237273 0.9428804652027359 2148 0.011933750988078078 382
3 1784783905.353819 0.0037183584307534687 -0.006818427483323246 0.9999698409738341 0.9412842800288904 1992 0.011942807895967073 1182
4 1784783971.0503054 -0.021709843154394736 -0.005232422217807239 0.999750621139065 0.9451429710867566 1863 0.012080615710528817 1839
5 1784784059.7468228 -0.02414670904491499 -0.0009406084776101358 0.9997079832120939 0.9517260475425733 1921 0.013468410314875789 2726
6 1784784149.2434597 -0.034005828386544125 0.003026503321489513 0.9994170520425345 0.9257219945735469 1673 0.012714432789206961 3621
7 1784784224.2408776 -0.02761369891036776 0.0016288328836576937 0.9996173420544108 0.9001377900125058 1799 0.012615520511386497 4371
8 1784784301.6372502 -0.0071762210837946405 -0.011511959356927467 0.9999079840878965 0.9580809447760092 2113 0.012007730376482893 5145
9 1784784387.733771 -0.010489658730106238 -0.009076163262051764 0.9999037905319524 0.9306898458653136 2187 0.01214615852280608 6006
10 1784784474.9314597 -0.016114135387570262 -0.0509432368134707 0.9985715403834008 0.9072229543504865 1894 0.012012086783846727 6878
11 1784784549.4274275 -0.025174259196536854 -0.013435577824823405 0.9995927880504234 0.9410339772836553 1603 0.01154746446935748 7623
12 1784784614.7244046 -0.03173300872144653 -0.01870285516152855 0.9993213794202 0.932566466561638 1970 0.01233410897082844 8276
13 1784784682.921899 -0.022665842512528424 -0.02998919824936144 0.9992932040054899 0.9145231002636922 1663 0.012948552270457988 8958
14 1784784758.8187964 -0.023688193326187944 -0.030852054660206355 0.9992432237549499 0.9349709939783197 1756 0.013443733500218538 9717
15 1784784836.0155501 -0.018461711654128285 -0.02498001140817507 0.9995174656967467 0.94720244509644 2057 0.013445893726732725 10489
16 1784784921.1126208 -0.01993595874096254 -0.02538449671402936 0.9994789566947642 0.9120981909462803 1822 0.012774262320504949 11340
17 1784784992.709947 -0.017778693539407146 -0.026803117327322167 0.9994826216386005 0.9369057170493221 2114 0.012253841210002203 12056
18 1784785067.6067727 -0.03766905893322114 -0.00624993226014667 0.9992707242513558 0.9491859078478477 1753 0.01368084681318558 12805
19 1784785215.9006598 -0.023255779098430147 -0.030526061005580876 0.9992633928739754 0.9173759052467025 2145 0.012710466955150847 14288
20 1784785296.4990919 -0.014034225033964978 -0.025014032112439084 0.9995885847313253 0.9275558675790446 2445 0.012495377814995792 15094
21 1784785363.1952267 -0.03352240146955635 -0.008711847039715113 0.9993999961581301 0.9543448006240765 1968 0.01391585588879859 15761
22 1784785434.592462 -0.016701702947054253 0.016663838961403298 0.9997216460544089 0.9289121671743757 1857 0.011181698281215124 16475
23 1784785506.389296 -0.03393096202185679 -0.007325597743377637 0.9993973311120926 0.9387396500642948 1844 0.01340053385502904 17193
24 1784785587.5863533 -0.03382019410288933 -0.0007820019558384217 0.9994276276668481 0.9255866795455666 1691 0.012723688174337812 18005
25 1784785681.9825997 -0.03422781555599595 -0.019255467037831406 0.999228544243718 0.9454924962027047 1959 0.01264678059788212 18949
26 1784785815.4779446 -0.0011902245774294716 -0.023262098479360813 0.9997286922659526 0.9523139768255908 2026 0.012446728838862407 20284
27 1784785891.9768085 -0.02758114176328463 0.0022252358991911286 0.9996170911625244 0.9417694614877323 1551 0.012616490996777729 21049
28 1784785967.8726046 -0.031038730802887403 -0.010699305087773895 0.9994609157244643 0.9511405539250901 1512 0.013166899954854165 21808
29 1784786031.5701303 -0.023257481598180085 -0.0214545061132305 0.9994992714940555 0.9380611442094842 1555 0.013339981386836522 22445
30 1784786087.9670725 -0.02720411594210121 -0.012536181034248165 0.9995512894498637 0.942804167293392 1531 0.013246549575843425 23009
31 1784786160.8647907 -0.030839502708575457 0.06473269778477829 0.9974259886879789 1.0783938869067702 1436 0.010501132985089602 23738
32 1784786252.6621523 -0.040972893104105006 -0.02082299858725662 0.9989432540242288 0.9524735117369321 1736 0.012945834939507173 24656
33 1784786319.6581354 -0.029761355495275914 -0.026565272466750618 0.9992039571668294 0.9594371422885729 1571 0.013108184070957877 25326
34 1784786396.7558627 -0.030769194030483185 -0.022645428394942407 0.9992699541522921 0.9756606317668476 1326 0.013202989492489907 26097
35 1784786557.4492514 -0.019983269314458783 -0.016965365794746882 0.9996563636124948 0.9409853928234136 1228 0.013269243263785414 27704
@@ -1,340 +0,0 @@
{
"selection_is_X_independent": true,
"B_source": "Open3D; small_gicp is used only as an agreement gate",
"max_translation_m": 0.05,
"max_rotation_deg": 0.5,
"input_open3d_pairs": 42,
"accepted_pairs": 26,
"pairs": [
{
"i": 0,
"j": 1,
"open3d_small_translation_m": 0.014276441704401843,
"open3d_small_rotation_deg": 0.61360593819684,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 0,
"j": 2,
"open3d_small_translation_m": 0.019952450418350955,
"open3d_small_rotation_deg": 0.1460927002571647,
"accepted": true,
"reason": ""
},
{
"i": 1,
"j": 2,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 2,
"j": 3,
"open3d_small_translation_m": 0.02240729290024995,
"open3d_small_rotation_deg": 0.16748011698659707,
"accepted": true,
"reason": ""
},
{
"i": 2,
"j": 5,
"open3d_small_translation_m": 0.0061616498009369,
"open3d_small_rotation_deg": 0.13760629005733752,
"accepted": true,
"reason": ""
},
{
"i": 3,
"j": 5,
"open3d_small_translation_m": 0.03979893704050873,
"open3d_small_rotation_deg": 0.21317157512260582,
"accepted": true,
"reason": ""
},
{
"i": 3,
"j": 6,
"open3d_small_translation_m": 0.012411893826144786,
"open3d_small_rotation_deg": 0.6409039547122976,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 5,
"j": 8,
"open3d_small_translation_m": 0.02304199707639382,
"open3d_small_rotation_deg": 0.37075901631515606,
"accepted": true,
"reason": ""
},
{
"i": 6,
"j": 7,
"open3d_small_translation_m": 0.008481323658868146,
"open3d_small_rotation_deg": 0.2110246381252998,
"accepted": true,
"reason": ""
},
{
"i": 6,
"j": 8,
"open3d_small_translation_m": 0.03928926702287607,
"open3d_small_rotation_deg": 0.3638880951335251,
"accepted": true,
"reason": ""
},
{
"i": 7,
"j": 8,
"open3d_small_translation_m": 0.008121615288998074,
"open3d_small_rotation_deg": 0.6269514061788241,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 10,
"j": 11,
"open3d_small_translation_m": 0.021311366483594964,
"open3d_small_rotation_deg": 0.5895827931090624,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 12,
"j": 14,
"open3d_small_translation_m": 0.021593615635265958,
"open3d_small_rotation_deg": 0.28280557179019644,
"accepted": true,
"reason": ""
},
{
"i": 12,
"j": 15,
"open3d_small_translation_m": 0.03680193420722766,
"open3d_small_rotation_deg": 0.560849139510841,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 13,
"j": 15,
"open3d_small_translation_m": 0.02340982602704091,
"open3d_small_rotation_deg": 0.5560478634176494,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 13,
"j": 16,
"open3d_small_translation_m": 0.027602744462628358,
"open3d_small_rotation_deg": 0.2529072067309942,
"accepted": true,
"reason": ""
},
{
"i": 15,
"j": 16,
"open3d_small_translation_m": 0.0209082447077901,
"open3d_small_rotation_deg": 0.03400462126505844,
"accepted": true,
"reason": ""
},
{
"i": 15,
"j": 17,
"open3d_small_translation_m": 0.04186146133502697,
"open3d_small_rotation_deg": 0.13358624916951176,
"accepted": true,
"reason": ""
},
{
"i": 15,
"j": 18,
"open3d_small_translation_m": 0.014610177110996908,
"open3d_small_rotation_deg": 0.25378510251316655,
"accepted": true,
"reason": ""
},
{
"i": 16,
"j": 19,
"open3d_small_translation_m": 0.012703728170382652,
"open3d_small_rotation_deg": 0.36607447371237334,
"accepted": true,
"reason": ""
},
{
"i": 17,
"j": 18,
"open3d_small_translation_m": 0.03054772105829047,
"open3d_small_rotation_deg": 0.6293060553954827,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 21,
"j": 22,
"open3d_small_translation_m": 0.008438580476457845,
"open3d_small_rotation_deg": 0.15351253406054555,
"accepted": true,
"reason": ""
},
{
"i": 21,
"j": 23,
"open3d_small_translation_m": 0.018479690388276085,
"open3d_small_rotation_deg": 0.5781174905909121,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 21,
"j": 24,
"open3d_small_translation_m": 0.031284642427708814,
"open3d_small_rotation_deg": 0.39218826727895556,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 23,
"open3d_small_translation_m": 0.011568269703658672,
"open3d_small_rotation_deg": 0.06135783639322868,
"accepted": true,
"reason": ""
},
{
"i": 22,
"j": 25,
"open3d_small_translation_m": 0.041018828349300214,
"open3d_small_rotation_deg": 0.42033964239927313,
"accepted": true,
"reason": ""
},
{
"i": 23,
"j": 24,
"open3d_small_translation_m": 0.009191025383393128,
"open3d_small_rotation_deg": 0.5691342385312416,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 25,
"j": 26,
"open3d_small_translation_m": 0.020915300595375722,
"open3d_small_rotation_deg": 0.48750667250286367,
"accepted": true,
"reason": ""
},
{
"i": 25,
"j": 27,
"open3d_small_translation_m": 0.09632206662156453,
"open3d_small_rotation_deg": 0.36999381209651033,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 25,
"j": 28,
"open3d_small_translation_m": 0.030138112812714665,
"open3d_small_rotation_deg": 0.46587172800425714,
"accepted": true,
"reason": ""
},
{
"i": 26,
"j": 27,
"open3d_small_translation_m": 0.010107572072066551,
"open3d_small_rotation_deg": 0.4201365669869145,
"accepted": true,
"reason": ""
},
{
"i": 26,
"j": 28,
"open3d_small_translation_m": 0.006243998078354416,
"open3d_small_rotation_deg": 1.3246136424341453,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 26,
"j": 29,
"open3d_small_translation_m": 0.036178252863401886,
"open3d_small_rotation_deg": 0.2782366609124745,
"accepted": true,
"reason": ""
},
{
"i": 27,
"j": 28,
"open3d_small_translation_m": 0.00854064689385523,
"open3d_small_rotation_deg": 0.36768009631129556,
"accepted": true,
"reason": ""
},
{
"i": 27,
"j": 29,
"open3d_small_translation_m": 0.013991202401755857,
"open3d_small_rotation_deg": 0.43729057730087656,
"accepted": true,
"reason": ""
},
{
"i": 28,
"j": 29,
"open3d_small_translation_m": 0.12711262123542336,
"open3d_small_rotation_deg": 0.923125258275691,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 28,
"j": 31,
"accepted": false,
"reason": "not_in_small_gicp_refined"
},
{
"i": 29,
"j": 30,
"open3d_small_translation_m": 0.024384029932636327,
"open3d_small_rotation_deg": 0.4169363425835767,
"accepted": true,
"reason": ""
},
{
"i": 29,
"j": 31,
"open3d_small_translation_m": 0.012379055939823663,
"open3d_small_rotation_deg": 0.2514662901219578,
"accepted": true,
"reason": ""
},
{
"i": 30,
"j": 31,
"open3d_small_translation_m": 0.056474627862095485,
"open3d_small_rotation_deg": 0.6666837905087916,
"accepted": false,
"reason": "backend_disagreement"
},
{
"i": 30,
"j": 32,
"open3d_small_translation_m": 0.015291330212417978,
"open3d_small_rotation_deg": 0.309282499387647,
"accepted": true,
"reason": ""
},
{
"i": 31,
"j": 32,
"accepted": false,
"reason": "not_in_small_gicp_refined"
}
]
}
@@ -1,334 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.3003760202954853,
-0.001706690964618711,
0.7048770452870675
],
"rotation_rpy_deg_xyz": [
-0.7918916173570606,
1.3938232102436765,
-0.9707426305626278
],
"quaternion_xyzw": [
-0.006806709954738454,
0.01222091143708808,
-0.008386347182892065,
0.9998669847555559
],
"matrix_4x4": [
[
0.9995606370091497,
0.016604094942673456,
0.024552738604839263,
1.3003760202954853
],
[
-0.016936831740812692,
0.9997666757610401,
0.01340663150469432,
-0.001706690964618711
],
[
-0.02432440487342451,
-0.013816586729505535,
0.9996086360464778,
0.7048770452870675
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 34,
"pairs": 26,
"residuals": {
"pairs": 26,
"translation_m": {
"rms": 0.11761746401526753,
"median": 0.05973702338495346,
"p90": 0.12346154791373619,
"p95": 0.2642880752048252,
"max": 0.38818289084930874
},
"rotation_deg": {
"rms": 1.2425719632195558,
"median": 0.7690245702483323,
"p90": 1.8136122342812846,
"p95": 1.9548737964733964,
"max": 4.332147922413344
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.04628122614893134,
"rotation_deg": 0.6982246240615032
},
{
"pair_index": 1,
"translation_m": 0.060020104078054665,
"rotation_deg": 0.3948778403656006
},
{
"pair_index": 2,
"translation_m": 0.10360591701372288,
"rotation_deg": 0.30363546700066535
},
{
"pair_index": 3,
"translation_m": 0.06188990107567784,
"rotation_deg": 0.5542261589736583
},
{
"pair_index": 4,
"translation_m": 0.02429424053491548,
"rotation_deg": 0.5086436052507228
},
{
"pair_index": 5,
"translation_m": 0.06697411809016678,
"rotation_deg": 0.7794510927257128
},
{
"pair_index": 6,
"translation_m": 0.012085958852730979,
"rotation_deg": 0.7997166092197476
},
{
"pair_index": 7,
"translation_m": 0.04528858471141819,
"rotation_deg": 0.868879957697597
},
{
"pair_index": 8,
"translation_m": 0.05426127100895971,
"rotation_deg": 1.8644817833901326
},
{
"pair_index": 9,
"translation_m": 0.12845158967421863,
"rotation_deg": 1.9850044675011511
},
{
"pair_index": 10,
"translation_m": 0.06743761428527982,
"rotation_deg": 0.23695300739340452
},
{
"pair_index": 11,
"translation_m": 0.060359774544132216,
"rotation_deg": 0.3380187067759931
},
{
"pair_index": 12,
"translation_m": 0.03420362550416907,
"rotation_deg": 0.49547670606543825
},
{
"pair_index": 13,
"translation_m": 0.059453942691852245,
"rotation_deg": 0.6142581264077737
},
{
"pair_index": 14,
"translation_m": 0.048234437308639966,
"rotation_deg": 1.7627426851724366
},
{
"pair_index": 15,
"translation_m": 0.0572558948305829,
"rotation_deg": 0.8826512445544471
},
{
"pair_index": 16,
"translation_m": 0.11847150615325375,
"rotation_deg": 4.332147922413344
},
{
"pair_index": 17,
"translation_m": 0.05084797298915324,
"rotation_deg": 0.9691629612561474
},
{
"pair_index": 18,
"translation_m": 0.03403536387594384,
"rotation_deg": 0.9311969881819248
},
{
"pair_index": 19,
"translation_m": 0.05397038183164141,
"rotation_deg": 0.5108403673418249
},
{
"pair_index": 20,
"translation_m": 0.10079710084559501,
"rotation_deg": 0.9132399116834199
},
{
"pair_index": 21,
"translation_m": 0.0245653967740859,
"rotation_deg": 0.29258746424545673
},
{
"pair_index": 22,
"translation_m": 0.06599237622687693,
"rotation_deg": 1.130391129168243
},
{
"pair_index": 23,
"translation_m": 0.30956690371502743,
"rotation_deg": 0.7585980477709516
},
{
"pair_index": 24,
"translation_m": 0.38818289084930874,
"rotation_deg": 0.6792102747820554
},
{
"pair_index": 25,
"translation_m": 0.10874622325422871,
"rotation_deg": 0.8215202229484776
}
]
}
},
"ground": {
"planes": 34,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.00880269284499636,
0.00901239388348182,
0.0047231303576790815
],
"rotation_deg": [
0.08002846787949729,
0.07607548557648909,
0.16438009658312316
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 7.44293047593025,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 2.6261422580681395e-09,
"rotation_deg": 5.414246532613018e-08
},
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 1.4824807208067879e-09,
"rotation_deg": 1.72860210982948e-08
},
{
"cost": 125.63045335315223,
"success": true,
"translation_m": 2.630839730785566e-09,
"rotation_deg": 6.406686644059802e-08
},
{
"cost": 125.63045335315202,
"success": true,
"translation_m": 3.4171046507681323e-09,
"rotation_deg": 6.031782751294924e-08
},
{
"cost": 125.63045335315198,
"success": true,
"translation_m": 1.024465800095368e-09,
"rotation_deg": 5.593612335539163e-09
},
{
"cost": 125.63045335315205,
"success": true,
"translation_m": 3.3380353081804456e-09,
"rotation_deg": 5.989779005616406e-08
},
{
"cost": 125.63045335315195,
"success": true,
"translation_m": 1.3390324575379226e-09,
"rotation_deg": 1.669449907197552e-08
},
{
"cost": 125.63045335315194,
"success": true,
"translation_m": 9.664926809065912e-10,
"rotation_deg": 1.725605645088929e-08
},
{
"cost": 125.63045335315195,
"success": true,
"translation_m": 1.1236440604027455e-09,
"rotation_deg": 8.844155186013785e-09
},
{
"cost": 125.63045335315957,
"success": true,
"translation_m": 4.0330699471902714e-08,
"rotation_deg": 2.7706147186959257e-07
},
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 1.1516332665838399e-10,
"rotation_deg": 2.767718681568013e-09
},
{
"cost": 125.63045335315192,
"success": true,
"translation_m": 2.220446049250313e-16,
"rotation_deg": 0.0
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.004332764631777773,
0.0052124106362270465,
0.002294080818689292,
0.09999053340933307,
0.10013087210161215,
0.1488688877903013
],
"p025": [
1.2918362278137754,
-0.009531330977586527,
0.7011199682224338,
-0.9599898042168808,
1.2066688822355272,
-1.2617485460367455
],
"p975": [
1.3082553293462966,
0.009443875945124016,
0.7092373306937458,
-0.5988363907444886,
1.5590218787244785,
-0.7051603064062103
]
}
}
@@ -1,334 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.3003760202954853,
-0.001706690964618711,
0.7048770452870675
],
"rotation_rpy_deg_xyz": [
-0.7918916173570606,
1.3938232102436765,
-0.9707426305626278
],
"quaternion_xyzw": [
-0.006806709954738454,
0.01222091143708808,
-0.008386347182892065,
0.9998669847555559
],
"matrix_4x4": [
[
0.9995606370091497,
0.016604094942673456,
0.024552738604839263,
1.3003760202954853
],
[
-0.016936831740812692,
0.9997666757610401,
0.01340663150469432,
-0.001706690964618711
],
[
-0.02432440487342451,
-0.013816586729505535,
0.9996086360464778,
0.7048770452870675
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 34,
"pairs": 26,
"residuals": {
"pairs": 26,
"translation_m": {
"rms": 0.11761746401526753,
"median": 0.05973702338495346,
"p90": 0.12346154791373619,
"p95": 0.2642880752048252,
"max": 0.38818289084930874
},
"rotation_deg": {
"rms": 1.2425719632195558,
"median": 0.7690245702483323,
"p90": 1.8136122342812846,
"p95": 1.9548737964733964,
"max": 4.332147922413344
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.04628122614893134,
"rotation_deg": 0.6982246240615032
},
{
"pair_index": 1,
"translation_m": 0.060020104078054665,
"rotation_deg": 0.3948778403656006
},
{
"pair_index": 2,
"translation_m": 0.10360591701372288,
"rotation_deg": 0.30363546700066535
},
{
"pair_index": 3,
"translation_m": 0.06188990107567784,
"rotation_deg": 0.5542261589736583
},
{
"pair_index": 4,
"translation_m": 0.02429424053491548,
"rotation_deg": 0.5086436052507228
},
{
"pair_index": 5,
"translation_m": 0.06697411809016678,
"rotation_deg": 0.7794510927257128
},
{
"pair_index": 6,
"translation_m": 0.012085958852730979,
"rotation_deg": 0.7997166092197476
},
{
"pair_index": 7,
"translation_m": 0.04528858471141819,
"rotation_deg": 0.868879957697597
},
{
"pair_index": 8,
"translation_m": 0.05426127100895971,
"rotation_deg": 1.8644817833901326
},
{
"pair_index": 9,
"translation_m": 0.12845158967421863,
"rotation_deg": 1.9850044675011511
},
{
"pair_index": 10,
"translation_m": 0.06743761428527982,
"rotation_deg": 0.23695300739340452
},
{
"pair_index": 11,
"translation_m": 0.060359774544132216,
"rotation_deg": 0.3380187067759931
},
{
"pair_index": 12,
"translation_m": 0.03420362550416907,
"rotation_deg": 0.49547670606543825
},
{
"pair_index": 13,
"translation_m": 0.059453942691852245,
"rotation_deg": 0.6142581264077737
},
{
"pair_index": 14,
"translation_m": 0.048234437308639966,
"rotation_deg": 1.7627426851724366
},
{
"pair_index": 15,
"translation_m": 0.0572558948305829,
"rotation_deg": 0.8826512445544471
},
{
"pair_index": 16,
"translation_m": 0.11847150615325375,
"rotation_deg": 4.332147922413344
},
{
"pair_index": 17,
"translation_m": 0.05084797298915324,
"rotation_deg": 0.9691629612561474
},
{
"pair_index": 18,
"translation_m": 0.03403536387594384,
"rotation_deg": 0.9311969881819248
},
{
"pair_index": 19,
"translation_m": 0.05397038183164141,
"rotation_deg": 0.5108403673418249
},
{
"pair_index": 20,
"translation_m": 0.10079710084559501,
"rotation_deg": 0.9132399116834199
},
{
"pair_index": 21,
"translation_m": 0.0245653967740859,
"rotation_deg": 0.29258746424545673
},
{
"pair_index": 22,
"translation_m": 0.06599237622687693,
"rotation_deg": 1.130391129168243
},
{
"pair_index": 23,
"translation_m": 0.30956690371502743,
"rotation_deg": 0.7585980477709516
},
{
"pair_index": 24,
"translation_m": 0.38818289084930874,
"rotation_deg": 0.6792102747820554
},
{
"pair_index": 25,
"translation_m": 0.10874622325422871,
"rotation_deg": 0.8215202229484776
}
]
}
},
"ground": {
"planes": 34,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.00880269284499636,
0.00901239388348182,
0.0047231303576790815
],
"rotation_deg": [
0.08002846787949729,
0.07607548557648909,
0.16438009658312316
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 7.44293047593025,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 2.6261422580681395e-09,
"rotation_deg": 5.414246532613018e-08
},
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 1.4824807208067879e-09,
"rotation_deg": 1.72860210982948e-08
},
{
"cost": 125.63045335315223,
"success": true,
"translation_m": 2.630839730785566e-09,
"rotation_deg": 6.406686644059802e-08
},
{
"cost": 125.63045335315202,
"success": true,
"translation_m": 3.4171046507681323e-09,
"rotation_deg": 6.031782751294924e-08
},
{
"cost": 125.63045335315198,
"success": true,
"translation_m": 1.024465800095368e-09,
"rotation_deg": 5.593612335539163e-09
},
{
"cost": 125.63045335315205,
"success": true,
"translation_m": 3.3380353081804456e-09,
"rotation_deg": 5.989779005616406e-08
},
{
"cost": 125.63045335315195,
"success": true,
"translation_m": 1.3390324575379226e-09,
"rotation_deg": 1.669449907197552e-08
},
{
"cost": 125.63045335315194,
"success": true,
"translation_m": 9.664926809065912e-10,
"rotation_deg": 1.725605645088929e-08
},
{
"cost": 125.63045335315195,
"success": true,
"translation_m": 1.1236440604027455e-09,
"rotation_deg": 8.844155186013785e-09
},
{
"cost": 125.63045335315957,
"success": true,
"translation_m": 4.0330699471902714e-08,
"rotation_deg": 2.7706147186959257e-07
},
{
"cost": 125.63045335315196,
"success": true,
"translation_m": 1.1516332665838399e-10,
"rotation_deg": 2.767718681568013e-09
},
{
"cost": 125.63045335315192,
"success": true,
"translation_m": 2.220446049250313e-16,
"rotation_deg": 0.0
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.004332764631777773,
0.0052124106362270465,
0.002294080818689292,
0.09999053340933307,
0.10013087210161215,
0.1488688877903013
],
"p025": [
1.2918362278137754,
-0.009531330977586527,
0.7011199682224338,
-0.9599898042168808,
1.2066688822355272,
-1.2617485460367455
],
"p975": [
1.3082553293462966,
0.009443875945124016,
0.7092373306937458,
-0.5988363907444886,
1.5590218787244785,
-0.7051603064062103
]
}
}
@@ -1,97 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,1.8477087194158957,24.171297449440786,0.8061657032755298,0.10961296014103376,6,2.7038608113687213,0.004225163540003135,0.15304490677206398,1.0,True,
0,2,2.633731568575307,80.09074797031298,0.7489394523717702,0.116305716193008,6,3.0720058333957385,0.02073003109723772,0.12418344306820694,1.0,True,
0,3,6.923255970100826,79.91583883299243,0.6310283235519265,0.12470979645173065,6,5.235632990817995,0.02154775870989581,0.2539904497958252,1.0,True,
1,2,1.7155362084417105,55.91945052087219,0.7867383512544803,0.11079021393934936,6,3.282529873989152,0.0076823267394430066,0.05080433004685343,1.0,True,
1,3,5.885389341942907,55.74454138355163,0.6794562317367552,0.1190716913809658,6,4.183386002322129,0.024832426027852336,0.29364033194785566,1.0,True,
1,4,2.3031736807956613,106.08652205569953,0.6786112833230006,0.11255015823152649,6,3.2941312581877575,0.007769137931169012,0.07270245476793177,1.0,True,
2,3,4.339151683168145,0.17490913732054883,0.7586776859504132,0.11541610277862563,6,3.730803369806123,0.007879904085793275,0.11659483159946175,1.0,True,
2,4,0.6150408096900305,50.167071534827386,0.7854572527608884,0.1098649389241601,6,2.641287751481569,0.017042953274278242,0.09383247792992147,1.0,True,
2,5,5.894923525501676,8.735318060700383,0.7074574574574575,0.11912871456224478,6,3.8527093190832473,0.016641241123247028,0.24777402858141082,1.0,True,
3,4,3.9735035126146885,50.34198067214791,0.6974624291697462,0.1172763088894914,6,3.5010457716923225,0.012148721219467648,0.2079308684382429,1.0,True,
3,5,2.3619393178889707,8.910227198020932,0.7962985964476462,0.10646082199215777,6,3.0377458538379902,0.011008298723511818,0.08217077610411756,1.0,True,
3,6,2.2300116834828536,47.63555775102664,0.8376509054325956,0.10956583416752592,6,3.1930663579156233,0.001222821038316072,0.09207521511761255,1.0,True,
4,5,5.370771070097231,41.431753474126985,0.6652516676773802,0.12322094568314959,6,4.985227704290952,0.005399786589867114,0.1389350777589359,1.0,True,
4,6,6.142548765456278,97.97753842317456,0.6529585072428186,0.11878586101480827,6,5.324803753668097,0.011377811219747914,0.20418431358287809,1.0,True,
4,7,5.314106070657687,123.28910472998356,0.6964418087472202,0.11691192595448072,6,4.414726450762486,0.017641796253111963,0.10886712169052283,1.0,True,
5,6,1.9357867378988893,56.54578494904757,0.7526921648718901,0.10924852668609378,6,3.289802074469556,0.012374747586501101,0.14461856068326442,1.0,True,
5,7,0.19501559913675365,81.85735125585654,0.7833561729164071,0.11683079277948674,6,2.8807765869032655,0.0136898748124479,0.2000656277647698,1.0,True,
5,8,1.8038807059856978,172.47951556359365,0.7410703250525275,0.11436945722491815,6,3.9768956884456648,0.020336999081352437,0.07548452187379719,1.0,True,
6,7,2.130456053070114,25.311566306808988,0.8497729566094854,0.10415909908074772,6,3.375936129784756,0.008986805974948919,0.1309947950641294,1.0,True,
6,8,0.24494500622098103,115.93373061454483,0.7678928928928929,0.11166725079781287,6,3.2609205733873607,0.010085391730565987,0.11752836996157842,1.0,True,
6,9,8.025985916230132,103.90638727582186,0.6071384156199477,0.12594282886521954,6,6.882498483502561,0.01655440444551025,0.4345945520890901,1.0,True,
7,8,1.9962664218365056,90.62216430773583,0.8299748110831234,0.10748525688830209,6,3.0071179226782414,0.007106461978852689,0.10698728473689886,1.0,True,
7,9,7.8811064994361235,78.59482096901284,0.6188509200150206,0.1271320507839345,6,6.716979637303383,0.026230622734929154,0.28112746782878123,1.0,True,
7,10,7.620696678413973,134.60031955305035,0.5757088027733069,0.1313446077529101,6,5.755535843660075,0.012710332356906473,0.2297418063823675,1.0,True,
8,9,7.803713858547152,12.027343338722998,0.6326834719980131,0.12084265385763356,6,5.539689880493177,0.02518064403521875,0.3859647522318924,1.0,True,
8,10,8.062504137991457,43.97815524531457,0.6163861933423412,0.12936028463965984,6,4.789005902863088,0.011327540721525892,0.17059480981566058,1.0,True,
8,11,11.084531710563947,22.606708130954026,0.5371195721380364,0.13463285672049757,6,5.833003178860405,0.017887959781482814,0.14919899299178907,1.0,True,
9,10,2.04815062353057,56.00549858403758,0.6543345543345543,0.10729272360686735,6,3.3788563349731584,0.008725655639009402,0.02870462611907292,1.0,True,
9,11,4.738677237611319,34.634051469677026,0.5818780055682106,0.11717687815100752,6,3.555986532172074,0.009813025835682346,0.0603546019895227,1.0,True,
9,12,7.170741483679294,16.35622721712263,0.5379123584441162,0.12645695585785732,6,4.882558096197038,0.008862930161052695,0.11566409877698863,1.0,True,
10,11,3.2047552083250137,21.371447114360556,0.7118898623279099,0.1192865608074921,6,3.2202034715576238,0.0029529340190147615,0.0041769080934441144,1.0,True,
10,12,6.291813977735496,39.64927136691496,0.6120311738918656,0.1252565212812615,6,4.691686416856199,0.005686910809265337,0.10204044727301474,1.0,True,
10,13,10.199392557022867,72.41150002956134,0.516551290119572,0.1354903305714049,6,7.346543684414892,0.01356504272158301,0.3255230434099281,1.0,True,
11,12,3.467398797536633,18.277824252554396,0.650555275113579,0.12104882943540958,6,4.612247786063486,0.003583199374499245,0.03300207707174736,1.0,True,
11,13,7.516502113110916,51.04005291520078,0.5698054068172914,0.12858662743221627,6,7.539783468898054,0.016001435752891854,0.11059625579949509,1.0,True,
11,14,3.767517331528496,20.548768889074672,0.6420881321982974,0.12414062948335584,6,4.9522650472668115,0.012369101516230236,0.018705060406060074,1.0,True,
12,13,4.049286119591895,32.762228662646386,0.6972966112450819,0.11680896213116294,6,4.282247993741361,0.011410238767832601,0.04779713993430858,1.0,True,
12,14,0.97948616772873,2.2709446365202806,0.8749086479902558,0.09521299965540617,6,3.309695139564419,0.006159472215773642,0.014929948455572307,1.0,True,
12,15,4.286747470271891,25.863710300929224,0.7022030893897189,0.11797995277580095,6,4.2772327867721325,0.008495008365045943,0.102782991447036,1.0,True,
13,14,4.006260191078547,30.491284026126113,0.6955810147299509,0.1145595612270532,6,3.350289886810732,0.010228664633443074,0.03515966054944097,1.0,True,
13,15,0.9562774815922267,6.898518361717157,0.868300353819945,0.10454213568084784,6,3.243735713395398,0.0023750253827712867,0.010725047644197173,1.0,True,
13,16,3.565173336606111,18.944899794614482,0.7265456392027422,0.10962529664062398,6,3.522751424445623,0.008958927594995584,0.0304143851242741,1.0,True,
14,15,4.019575892829469,23.592765664408944,0.7120070334086913,0.11868441290330693,6,4.620592469502459,0.002571958018982041,0.05506919751152759,1.0,True,
14,16,7.5676649485439835,49.43618382074059,0.5918615984405458,0.12229328437386527,6,7.149509813179243,0.014273957859022303,0.25325650727956367,1.0,True,
14,17,5.910977627463022,0.8461207481731591,0.6694009445687298,0.12443900216431929,6,5.157741429696001,0.017895201000461415,0.10920228290609475,1.0,True,
15,16,3.7301261399251735,25.84341815633164,0.702887537993921,0.11495230769293868,6,3.540289976352534,0.013545291843393993,0.033466251783377816,1.0,True,
15,17,2.2049738368271745,24.438886412582093,0.7429531936901991,0.11679524427533879,6,3.526664394280145,0.00989411002791081,0.07786907370564648,1.0,True,
15,18,4.7000039832559155,3.452521908779401,0.7209645010046886,0.11716134583909153,6,4.125231895423432,0.011654729311847106,0.13683586564190353,1.0,True,
16,17,3.368526196086246,50.282304568913744,0.618922305764411,0.11254196340939995,6,4.068632188828396,0.03104786021350874,0.10375098145235381,1.0,True,
16,18,3.5240348999326185,22.39089624755224,0.6890156918687589,0.11084024896736888,6,4.42116710884217,0.01556225520371614,0.02495881796886513,1.0,True,
16,19,2.146829294717985,30.035090485266103,0.8685060899826,0.10135543575024519,6,2.92007223300188,0.002952251383831446,0.02753369989560042,1.0,True,
17,18,2.640403049812329,27.891408321361506,0.7697708305735859,0.10648049893472207,6,3.7928223564531667,0.010582276181446382,0.039599051949106026,1.0,True,
17,19,3.933985934417215,80.31739505417984,0.6293759512937596,0.1095449771750205,6,3.6483069293931876,0.012240937390583118,0.060306184678878015,1.0,True,
17,20,4.2254212089887,152.98392843416656,0.6014520938674964,0.12300562605352797,6,4.719447385686107,1.3272837904090529,0.4474442011368189,1.0,False,forward_reverse_translation
18,19,2.4460967931915643,52.425986732818345,0.6827314510833881,0.10834806615100012,6,3.5073857685652805,0.012418496053917759,0.11905018881098527,1.0,True,
18,20,6.593931011285688,125.09252011280485,0.5756313809779688,0.1265759478434112,6,5.389095141151797,0.012917057356045326,0.24042373011343365,1.0,True,
18,21,11.793089868757727,175.70238585456048,0.4044519656339495,0.14396876383759685,6,10.041635341774429,0.06610149517267662,0.6118050873537593,1.0,False,forward_reverse_rotation
19,20,6.650720121741557,72.6665333799865,0.6234734541714874,0.12775305804057488,6,5.958603794025073,0.009237066767190358,0.22540488888099894,1.0,True,
19,21,12.053580264031138,123.27639912174077,0.3788200074840963,0.14687803396129923,6,10.170069582593054,0.1645149893124099,1.1204113986936788,1.0,False,forward_reverse_translation;forward_reverse_rotation
19,22,14.836246959975925,128.85294276465592,0.3215252152521525,0.1505833656059155,6,15.25410245430046,0.08605091089946505,0.48945936193054473,1.0,False,heldout_inlier_ratio;forward_reverse_translation
20,21,5.40286046809103,50.60986574175429,0.6596992097884272,0.12147955429086157,6,4.0820327359553845,0.014725537493637062,0.1988422472286775,1.0,True,
20,22,8.200956565000565,56.18640938466938,0.5739414499308958,0.13255415786946786,6,5.328486341352201,0.006040617548520927,0.19706632354687328,1.0,True,
20,23,5.175118275082073,70.79178325235415,0.6456945156330087,0.12075756038041646,6,3.9642702950866386,0.022949011013485506,0.1911210947924365,1.0,True,
21,22,2.8644847627909416,5.57654364291509,0.7716237647919971,0.11632271358541554,6,2.79620153032919,0.00996357879827298,0.15332892195322273,1.0,True,
21,23,1.2936223973175418,20.18191751059984,0.8576224819696593,0.09865676260631216,6,3.0367950693845156,0.0039225733250952055,0.00898487649368532,1.0,True,
21,24,2.3128500583741403,54.59467208208593,0.7715940569126165,0.1136150455355286,6,2.76815824933335,0.007475673605589086,0.042277690012993266,1.0,True,
22,23,3.7194009250537223,14.605373867684753,0.7396689147762109,0.11702962848624102,6,3.4148047250889095,0.01814015943430581,0.11847321816106485,1.0,True,
22,24,4.786117710081478,49.01812843917083,0.6983240223463687,0.11898873157361621,6,3.6334655936865663,0.013438931050857202,0.08244161259412694,1.0,True,
22,25,2.3747421598149763,12.391903814042255,0.736861094407697,0.11586394710110075,6,2.383007054117407,0.018559552524775386,0.0645260279790244,1.0,True,
23,24,1.0880644725336985,34.41275457148609,0.7853164556962026,0.1128725442321241,6,2.409921828847164,0.002195759849115173,0.032112959181416705,1.0,True,
23,25,5.033935954106079,2.213470053642494,0.6881127450980392,0.12303206700403986,6,2.9363727218037994,0.004939188019100004,0.12964064637100806,1.0,True,
23,26,5.765534437288107,40.730927532824346,0.6852618757612667,0.12040544972155913,6,3.0590065093977192,0.006032445250250899,0.14039335223024835,1.0,True,
24,25,6.097212810998921,36.62622462512857,0.677667493796526,0.12346315805814134,6,3.6286524357748307,0.02347922689116974,0.16273859629352566,1.0,True,
24,26,6.852918693116795,6.318172961338249,0.6530209617755857,0.12710147612984257,6,3.5331859775372005,0.013311199903818141,0.18193579850152686,1.0,True,
24,27,7.47982907414204,31.60254826458195,0.6649014778325123,0.1248115961442785,6,4.10006355979974,0.017872821205486625,0.1680556511699705,1.0,True,
25,26,1.2882746074869595,42.944397586466835,0.9127837514934289,0.0958142916589384,6,2.9017658682436953,0.003534148840172682,0.018440169300173608,1.0,True,
25,27,1.7666235781584831,68.22877288971053,0.8510739856801909,0.10418150333394147,6,2.368253417089997,0.006103232696002816,0.13366555345652814,1.0,True,
25,28,2.1807182972588706,88.09106909546726,0.8853518429870751,0.10761251229652005,6,2.6372860976794645,0.003483231665912094,0.0369774420199415,1.0,True,
26,27,0.6269948654714946,25.284375303243706,0.9183867141162515,0.09074909570650921,6,2.8142315359282506,0.00040199505815422204,0.011554314408129918,1.0,True,
26,28,0.9431372257108486,45.14667150900044,0.8853200095170116,0.10604184939655073,6,2.656402027789519,0.007320240476189879,0.12930335868605478,1.0,True,
26,29,1.129925637779203,87.41573662125148,0.7880466815984911,0.10871274240898265,6,3.111957466886604,0.0063952430610542755,0.039517035902874385,1.0,True,
27,28,0.44809323479571145,19.862296205756735,0.9289448669201521,0.0850509551532673,6,2.96325286846982,0.005157655135591474,0.022666807877311387,1.0,True,
27,29,1.160064136065596,62.13136131800778,0.7872365477452019,0.10455513464835667,6,2.9621627623005296,0.011650639607012138,0.1624719134077532,1.0,True,
27,30,4.25412615059095,152.09392556214777,0.04792444029850746,0.15706827084964883,6,3.4115087753552786,2.5641513880069633,2.874944882076104,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
28,29,1.5995723610319212,42.26906511225104,0.8000944621560987,0.1086547547358129,6,3.1466224100058553,0.0011394164967304414,0.02119627748719656,1.0,True,
28,30,4.295353381127667,132.23162935639104,0.042095416276894296,0.16025490727880456,6,4.631028587407634,2.5607552487652696,2.17230408479254,0.0,False,heldout_inlier_ratio;heldout_inlier_rmse;forward_reverse_translation;forward_reverse_rotation;multistart_instability
28,31,5.754426930327516,158.8421298011293,0.7465330381074466,0.1066966653439246,6,2.402598366822474,0.00635764905956918,0.040016615214377715,1.0,True,
29,30,4.099530130205247,89.96256424413995,0.7248812145092132,0.10870831469083347,6,2.9471223804737057,0.00465638537716095,0.12465763189227934,1.0,True,
29,31,4.890018768530818,116.57306468887772,0.7243012243012243,0.11138751941762699,6,2.7645021322697017,0.004263906321896464,0.046637396086304225,1.0,True,
29,32,4.464737187763289,159.39493219688632,0.6956070563818748,0.1103354081949904,6,3.227012588611917,0.011088061861347823,0.34561739459504637,1.0,True,
30,31,2.3862917603439455,26.61050044473775,0.8185562292643862,0.0961579573295129,6,2.899558208444643,0.004999163455591531,0.0213847958734735,1.0,True,
30,32,1.1507634071714652,69.43236795274659,0.8041343079031521,0.099533431536842,6,2.6146168742247573,0.003171376495143,0.02376737774843464,1.0,True,
30,33,2.4361832484951105,160.7145717128102,0.0824534345711235,0.13003518012314966,6,7.2913036106936,1.3743823383381788,1.9837113244583153,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
31,32,1.2514382602180638,42.82186750800885,0.8157085941946499,0.09925944770258267,6,3.0485411400768245,0.004719596234887584,0.06146741991681224,1.0,True,
31,33,0.641507519046697,134.10407126807203,0.0911563017261764,0.12702324561674966,6,7.541483837366941,2.816294381538612,3.333105317420589,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
32,33,1.4370687242949811,91.2822037600631,0.7569928006609229,0.10008740880870744,6,3.6611044282667207,2.988193350509204,2.696443494598379,1.0,False,forward_reverse_translation;forward_reverse_rotation
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 1.8477087194158957 24.171297449440786 0.8061657032755298 0.10961296014103376 6 2.7038608113687213 0.004225163540003135 0.15304490677206398 1.0 True
3 0 2 2.633731568575307 80.09074797031298 0.7489394523717702 0.116305716193008 6 3.0720058333957385 0.02073003109723772 0.12418344306820694 1.0 True
4 0 3 6.923255970100826 79.91583883299243 0.6310283235519265 0.12470979645173065 6 5.235632990817995 0.02154775870989581 0.2539904497958252 1.0 True
5 1 2 1.7155362084417105 55.91945052087219 0.7867383512544803 0.11079021393934936 6 3.282529873989152 0.0076823267394430066 0.05080433004685343 1.0 True
6 1 3 5.885389341942907 55.74454138355163 0.6794562317367552 0.1190716913809658 6 4.183386002322129 0.024832426027852336 0.29364033194785566 1.0 True
7 1 4 2.3031736807956613 106.08652205569953 0.6786112833230006 0.11255015823152649 6 3.2941312581877575 0.007769137931169012 0.07270245476793177 1.0 True
8 2 3 4.339151683168145 0.17490913732054883 0.7586776859504132 0.11541610277862563 6 3.730803369806123 0.007879904085793275 0.11659483159946175 1.0 True
9 2 4 0.6150408096900305 50.167071534827386 0.7854572527608884 0.1098649389241601 6 2.641287751481569 0.017042953274278242 0.09383247792992147 1.0 True
10 2 5 5.894923525501676 8.735318060700383 0.7074574574574575 0.11912871456224478 6 3.8527093190832473 0.016641241123247028 0.24777402858141082 1.0 True
11 3 4 3.9735035126146885 50.34198067214791 0.6974624291697462 0.1172763088894914 6 3.5010457716923225 0.012148721219467648 0.2079308684382429 1.0 True
12 3 5 2.3619393178889707 8.910227198020932 0.7962985964476462 0.10646082199215777 6 3.0377458538379902 0.011008298723511818 0.08217077610411756 1.0 True
13 3 6 2.2300116834828536 47.63555775102664 0.8376509054325956 0.10956583416752592 6 3.1930663579156233 0.001222821038316072 0.09207521511761255 1.0 True
14 4 5 5.370771070097231 41.431753474126985 0.6652516676773802 0.12322094568314959 6 4.985227704290952 0.005399786589867114 0.1389350777589359 1.0 True
15 4 6 6.142548765456278 97.97753842317456 0.6529585072428186 0.11878586101480827 6 5.324803753668097 0.011377811219747914 0.20418431358287809 1.0 True
16 4 7 5.314106070657687 123.28910472998356 0.6964418087472202 0.11691192595448072 6 4.414726450762486 0.017641796253111963 0.10886712169052283 1.0 True
17 5 6 1.9357867378988893 56.54578494904757 0.7526921648718901 0.10924852668609378 6 3.289802074469556 0.012374747586501101 0.14461856068326442 1.0 True
18 5 7 0.19501559913675365 81.85735125585654 0.7833561729164071 0.11683079277948674 6 2.8807765869032655 0.0136898748124479 0.2000656277647698 1.0 True
19 5 8 1.8038807059856978 172.47951556359365 0.7410703250525275 0.11436945722491815 6 3.9768956884456648 0.020336999081352437 0.07548452187379719 1.0 True
20 6 7 2.130456053070114 25.311566306808988 0.8497729566094854 0.10415909908074772 6 3.375936129784756 0.008986805974948919 0.1309947950641294 1.0 True
21 6 8 0.24494500622098103 115.93373061454483 0.7678928928928929 0.11166725079781287 6 3.2609205733873607 0.010085391730565987 0.11752836996157842 1.0 True
22 6 9 8.025985916230132 103.90638727582186 0.6071384156199477 0.12594282886521954 6 6.882498483502561 0.01655440444551025 0.4345945520890901 1.0 True
23 7 8 1.9962664218365056 90.62216430773583 0.8299748110831234 0.10748525688830209 6 3.0071179226782414 0.007106461978852689 0.10698728473689886 1.0 True
24 7 9 7.8811064994361235 78.59482096901284 0.6188509200150206 0.1271320507839345 6 6.716979637303383 0.026230622734929154 0.28112746782878123 1.0 True
25 7 10 7.620696678413973 134.60031955305035 0.5757088027733069 0.1313446077529101 6 5.755535843660075 0.012710332356906473 0.2297418063823675 1.0 True
26 8 9 7.803713858547152 12.027343338722998 0.6326834719980131 0.12084265385763356 6 5.539689880493177 0.02518064403521875 0.3859647522318924 1.0 True
27 8 10 8.062504137991457 43.97815524531457 0.6163861933423412 0.12936028463965984 6 4.789005902863088 0.011327540721525892 0.17059480981566058 1.0 True
28 8 11 11.084531710563947 22.606708130954026 0.5371195721380364 0.13463285672049757 6 5.833003178860405 0.017887959781482814 0.14919899299178907 1.0 True
29 9 10 2.04815062353057 56.00549858403758 0.6543345543345543 0.10729272360686735 6 3.3788563349731584 0.008725655639009402 0.02870462611907292 1.0 True
30 9 11 4.738677237611319 34.634051469677026 0.5818780055682106 0.11717687815100752 6 3.555986532172074 0.009813025835682346 0.0603546019895227 1.0 True
31 9 12 7.170741483679294 16.35622721712263 0.5379123584441162 0.12645695585785732 6 4.882558096197038 0.008862930161052695 0.11566409877698863 1.0 True
32 10 11 3.2047552083250137 21.371447114360556 0.7118898623279099 0.1192865608074921 6 3.2202034715576238 0.0029529340190147615 0.0041769080934441144 1.0 True
33 10 12 6.291813977735496 39.64927136691496 0.6120311738918656 0.1252565212812615 6 4.691686416856199 0.005686910809265337 0.10204044727301474 1.0 True
34 10 13 10.199392557022867 72.41150002956134 0.516551290119572 0.1354903305714049 6 7.346543684414892 0.01356504272158301 0.3255230434099281 1.0 True
35 11 12 3.467398797536633 18.277824252554396 0.650555275113579 0.12104882943540958 6 4.612247786063486 0.003583199374499245 0.03300207707174736 1.0 True
36 11 13 7.516502113110916 51.04005291520078 0.5698054068172914 0.12858662743221627 6 7.539783468898054 0.016001435752891854 0.11059625579949509 1.0 True
37 11 14 3.767517331528496 20.548768889074672 0.6420881321982974 0.12414062948335584 6 4.9522650472668115 0.012369101516230236 0.018705060406060074 1.0 True
38 12 13 4.049286119591895 32.762228662646386 0.6972966112450819 0.11680896213116294 6 4.282247993741361 0.011410238767832601 0.04779713993430858 1.0 True
39 12 14 0.97948616772873 2.2709446365202806 0.8749086479902558 0.09521299965540617 6 3.309695139564419 0.006159472215773642 0.014929948455572307 1.0 True
40 12 15 4.286747470271891 25.863710300929224 0.7022030893897189 0.11797995277580095 6 4.2772327867721325 0.008495008365045943 0.102782991447036 1.0 True
41 13 14 4.006260191078547 30.491284026126113 0.6955810147299509 0.1145595612270532 6 3.350289886810732 0.010228664633443074 0.03515966054944097 1.0 True
42 13 15 0.9562774815922267 6.898518361717157 0.868300353819945 0.10454213568084784 6 3.243735713395398 0.0023750253827712867 0.010725047644197173 1.0 True
43 13 16 3.565173336606111 18.944899794614482 0.7265456392027422 0.10962529664062398 6 3.522751424445623 0.008958927594995584 0.0304143851242741 1.0 True
44 14 15 4.019575892829469 23.592765664408944 0.7120070334086913 0.11868441290330693 6 4.620592469502459 0.002571958018982041 0.05506919751152759 1.0 True
45 14 16 7.5676649485439835 49.43618382074059 0.5918615984405458 0.12229328437386527 6 7.149509813179243 0.014273957859022303 0.25325650727956367 1.0 True
46 14 17 5.910977627463022 0.8461207481731591 0.6694009445687298 0.12443900216431929 6 5.157741429696001 0.017895201000461415 0.10920228290609475 1.0 True
47 15 16 3.7301261399251735 25.84341815633164 0.702887537993921 0.11495230769293868 6 3.540289976352534 0.013545291843393993 0.033466251783377816 1.0 True
48 15 17 2.2049738368271745 24.438886412582093 0.7429531936901991 0.11679524427533879 6 3.526664394280145 0.00989411002791081 0.07786907370564648 1.0 True
49 15 18 4.7000039832559155 3.452521908779401 0.7209645010046886 0.11716134583909153 6 4.125231895423432 0.011654729311847106 0.13683586564190353 1.0 True
50 16 17 3.368526196086246 50.282304568913744 0.618922305764411 0.11254196340939995 6 4.068632188828396 0.03104786021350874 0.10375098145235381 1.0 True
51 16 18 3.5240348999326185 22.39089624755224 0.6890156918687589 0.11084024896736888 6 4.42116710884217 0.01556225520371614 0.02495881796886513 1.0 True
52 16 19 2.146829294717985 30.035090485266103 0.8685060899826 0.10135543575024519 6 2.92007223300188 0.002952251383831446 0.02753369989560042 1.0 True
53 17 18 2.640403049812329 27.891408321361506 0.7697708305735859 0.10648049893472207 6 3.7928223564531667 0.010582276181446382 0.039599051949106026 1.0 True
54 17 19 3.933985934417215 80.31739505417984 0.6293759512937596 0.1095449771750205 6 3.6483069293931876 0.012240937390583118 0.060306184678878015 1.0 True
55 17 20 4.2254212089887 152.98392843416656 0.6014520938674964 0.12300562605352797 6 4.719447385686107 1.3272837904090529 0.4474442011368189 1.0 False forward_reverse_translation
56 18 19 2.4460967931915643 52.425986732818345 0.6827314510833881 0.10834806615100012 6 3.5073857685652805 0.012418496053917759 0.11905018881098527 1.0 True
57 18 20 6.593931011285688 125.09252011280485 0.5756313809779688 0.1265759478434112 6 5.389095141151797 0.012917057356045326 0.24042373011343365 1.0 True
58 18 21 11.793089868757727 175.70238585456048 0.4044519656339495 0.14396876383759685 6 10.041635341774429 0.06610149517267662 0.6118050873537593 1.0 False forward_reverse_rotation
59 19 20 6.650720121741557 72.6665333799865 0.6234734541714874 0.12775305804057488 6 5.958603794025073 0.009237066767190358 0.22540488888099894 1.0 True
60 19 21 12.053580264031138 123.27639912174077 0.3788200074840963 0.14687803396129923 6 10.170069582593054 0.1645149893124099 1.1204113986936788 1.0 False forward_reverse_translation;forward_reverse_rotation
61 19 22 14.836246959975925 128.85294276465592 0.3215252152521525 0.1505833656059155 6 15.25410245430046 0.08605091089946505 0.48945936193054473 1.0 False heldout_inlier_ratio;forward_reverse_translation
62 20 21 5.40286046809103 50.60986574175429 0.6596992097884272 0.12147955429086157 6 4.0820327359553845 0.014725537493637062 0.1988422472286775 1.0 True
63 20 22 8.200956565000565 56.18640938466938 0.5739414499308958 0.13255415786946786 6 5.328486341352201 0.006040617548520927 0.19706632354687328 1.0 True
64 20 23 5.175118275082073 70.79178325235415 0.6456945156330087 0.12075756038041646 6 3.9642702950866386 0.022949011013485506 0.1911210947924365 1.0 True
65 21 22 2.8644847627909416 5.57654364291509 0.7716237647919971 0.11632271358541554 6 2.79620153032919 0.00996357879827298 0.15332892195322273 1.0 True
66 21 23 1.2936223973175418 20.18191751059984 0.8576224819696593 0.09865676260631216 6 3.0367950693845156 0.0039225733250952055 0.00898487649368532 1.0 True
67 21 24 2.3128500583741403 54.59467208208593 0.7715940569126165 0.1136150455355286 6 2.76815824933335 0.007475673605589086 0.042277690012993266 1.0 True
68 22 23 3.7194009250537223 14.605373867684753 0.7396689147762109 0.11702962848624102 6 3.4148047250889095 0.01814015943430581 0.11847321816106485 1.0 True
69 22 24 4.786117710081478 49.01812843917083 0.6983240223463687 0.11898873157361621 6 3.6334655936865663 0.013438931050857202 0.08244161259412694 1.0 True
70 22 25 2.3747421598149763 12.391903814042255 0.736861094407697 0.11586394710110075 6 2.383007054117407 0.018559552524775386 0.0645260279790244 1.0 True
71 23 24 1.0880644725336985 34.41275457148609 0.7853164556962026 0.1128725442321241 6 2.409921828847164 0.002195759849115173 0.032112959181416705 1.0 True
72 23 25 5.033935954106079 2.213470053642494 0.6881127450980392 0.12303206700403986 6 2.9363727218037994 0.004939188019100004 0.12964064637100806 1.0 True
73 23 26 5.765534437288107 40.730927532824346 0.6852618757612667 0.12040544972155913 6 3.0590065093977192 0.006032445250250899 0.14039335223024835 1.0 True
74 24 25 6.097212810998921 36.62622462512857 0.677667493796526 0.12346315805814134 6 3.6286524357748307 0.02347922689116974 0.16273859629352566 1.0 True
75 24 26 6.852918693116795 6.318172961338249 0.6530209617755857 0.12710147612984257 6 3.5331859775372005 0.013311199903818141 0.18193579850152686 1.0 True
76 24 27 7.47982907414204 31.60254826458195 0.6649014778325123 0.1248115961442785 6 4.10006355979974 0.017872821205486625 0.1680556511699705 1.0 True
77 25 26 1.2882746074869595 42.944397586466835 0.9127837514934289 0.0958142916589384 6 2.9017658682436953 0.003534148840172682 0.018440169300173608 1.0 True
78 25 27 1.7666235781584831 68.22877288971053 0.8510739856801909 0.10418150333394147 6 2.368253417089997 0.006103232696002816 0.13366555345652814 1.0 True
79 25 28 2.1807182972588706 88.09106909546726 0.8853518429870751 0.10761251229652005 6 2.6372860976794645 0.003483231665912094 0.0369774420199415 1.0 True
80 26 27 0.6269948654714946 25.284375303243706 0.9183867141162515 0.09074909570650921 6 2.8142315359282506 0.00040199505815422204 0.011554314408129918 1.0 True
81 26 28 0.9431372257108486 45.14667150900044 0.8853200095170116 0.10604184939655073 6 2.656402027789519 0.007320240476189879 0.12930335868605478 1.0 True
82 26 29 1.129925637779203 87.41573662125148 0.7880466815984911 0.10871274240898265 6 3.111957466886604 0.0063952430610542755 0.039517035902874385 1.0 True
83 27 28 0.44809323479571145 19.862296205756735 0.9289448669201521 0.0850509551532673 6 2.96325286846982 0.005157655135591474 0.022666807877311387 1.0 True
84 27 29 1.160064136065596 62.13136131800778 0.7872365477452019 0.10455513464835667 6 2.9621627623005296 0.011650639607012138 0.1624719134077532 1.0 True
85 27 30 4.25412615059095 152.09392556214777 0.04792444029850746 0.15706827084964883 6 3.4115087753552786 2.5641513880069633 2.874944882076104 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
86 28 29 1.5995723610319212 42.26906511225104 0.8000944621560987 0.1086547547358129 6 3.1466224100058553 0.0011394164967304414 0.02119627748719656 1.0 True
87 28 30 4.295353381127667 132.23162935639104 0.042095416276894296 0.16025490727880456 6 4.631028587407634 2.5607552487652696 2.17230408479254 0.0 False heldout_inlier_ratio;heldout_inlier_rmse;forward_reverse_translation;forward_reverse_rotation;multistart_instability
88 28 31 5.754426930327516 158.8421298011293 0.7465330381074466 0.1066966653439246 6 2.402598366822474 0.00635764905956918 0.040016615214377715 1.0 True
89 29 30 4.099530130205247 89.96256424413995 0.7248812145092132 0.10870831469083347 6 2.9471223804737057 0.00465638537716095 0.12465763189227934 1.0 True
90 29 31 4.890018768530818 116.57306468887772 0.7243012243012243 0.11138751941762699 6 2.7645021322697017 0.004263906321896464 0.046637396086304225 1.0 True
91 29 32 4.464737187763289 159.39493219688632 0.6956070563818748 0.1103354081949904 6 3.227012588611917 0.011088061861347823 0.34561739459504637 1.0 True
92 30 31 2.3862917603439455 26.61050044473775 0.8185562292643862 0.0961579573295129 6 2.899558208444643 0.004999163455591531 0.0213847958734735 1.0 True
93 30 32 1.1507634071714652 69.43236795274659 0.8041343079031521 0.099533431536842 6 2.6146168742247573 0.003171376495143 0.02376737774843464 1.0 True
94 30 33 2.4361832484951105 160.7145717128102 0.0824534345711235 0.13003518012314966 6 7.2913036106936 1.3743823383381788 1.9837113244583153 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
95 31 32 1.2514382602180638 42.82186750800885 0.8157085941946499 0.09925944770258267 6 3.0485411400768245 0.004719596234887584 0.06146741991681224 1.0 True
96 31 33 0.641507519046697 134.10407126807203 0.0911563017261764 0.12702324561674966 6 7.541483837366941 2.816294381538612 3.333105317420589 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
97 32 33 1.4370687242949811 91.2822037600631 0.7569928006609229 0.10008740880870744 6 3.6611044282667207 2.988193350509204 2.696443494598379 1.0 False forward_reverse_translation;forward_reverse_rotation
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,414 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2975484155117711,
-0.0014693441955134902,
0.7052088406121522
],
"rotation_rpy_deg_xyz": [
-0.8301548470744382,
1.3787117674135543,
-0.9873301733452331
],
"quaternion_xyzw": [
-0.007139952974435751,
0.012092890421885221,
-0.008527968948116832,
0.9998650192992987
],
"matrix_4x4": [
[
0.9995620714937284,
0.01688095033591077,
0.02430429482463916,
1.2975484155117711
],
[
-0.017226321011659856,
0.9997525896342856,
0.014071722849138928,
-0.0014693441955134902
],
[
-0.024060737635611132,
-0.014484234025182223,
0.9996055661455342,
0.7052088406121522
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 34,
"pairs": 42,
"residuals": {
"pairs": 42,
"translation_m": {
"rms": 0.12183423858445137,
"median": 0.060649486998667235,
"p90": 0.11912435755512873,
"p95": 0.3030566180355447,
"max": 0.45978165540815585
},
"rotation_deg": {
"rms": 1.0805282705084651,
"median": 0.7524132662595089,
"p90": 1.482445248533153,
"p95": 1.8550286425106393,
"max": 4.3358524167513774
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.038624527608401314,
"rotation_deg": 0.8023305035396044
},
{
"pair_index": 1,
"translation_m": 0.04180287320767011,
"rotation_deg": 0.6893264946463747
},
{
"pair_index": 2,
"translation_m": 0.019127950093528003,
"rotation_deg": 1.0042991942789465
},
{
"pair_index": 3,
"translation_m": 0.06137084310587195,
"rotation_deg": 0.3949193126839051
},
{
"pair_index": 4,
"translation_m": 0.1071111410675142,
"rotation_deg": 0.29878675978634545
},
{
"pair_index": 5,
"translation_m": 0.06364016847596804,
"rotation_deg": 0.5544336747047969
},
{
"pair_index": 6,
"translation_m": 0.06293697736756677,
"rotation_deg": 0.5686016770604462
},
{
"pair_index": 7,
"translation_m": 0.024970034635953178,
"rotation_deg": 0.5027938164737027
},
{
"pair_index": 8,
"translation_m": 0.06609908977135717,
"rotation_deg": 0.769573579451918
},
{
"pair_index": 9,
"translation_m": 0.015198604597359418,
"rotation_deg": 0.7395239518119227
},
{
"pair_index": 10,
"translation_m": 0.08603113369700931,
"rotation_deg": 0.38160978353264396
},
{
"pair_index": 11,
"translation_m": 0.023734833308603348,
"rotation_deg": 0.5279761588421565
},
{
"pair_index": 12,
"translation_m": 0.044728554479905425,
"rotation_deg": 0.8691250339782107
},
{
"pair_index": 13,
"translation_m": 0.07088160554682986,
"rotation_deg": 0.450151294217732
},
{
"pair_index": 14,
"translation_m": 0.08888554602585935,
"rotation_deg": 0.6592285262192215
},
{
"pair_index": 15,
"translation_m": 0.05233056995457292,
"rotation_deg": 1.8589142482602727
},
{
"pair_index": 16,
"translation_m": 0.12686760514047216,
"rotation_deg": 1.9773175636228766
},
{
"pair_index": 17,
"translation_m": 0.06853778836627006,
"rotation_deg": 0.2507622154612463
},
{
"pair_index": 18,
"translation_m": 0.0613281598931951,
"rotation_deg": 0.3396141740929532
},
{
"pair_index": 19,
"translation_m": 0.03461219125828727,
"rotation_deg": 0.5120113019840405
},
{
"pair_index": 20,
"translation_m": 0.003516478473153868,
"rotation_deg": 0.3641614482709119
},
{
"pair_index": 21,
"translation_m": 0.059970814104139375,
"rotation_deg": 0.61595189426212
},
{
"pair_index": 22,
"translation_m": 0.011156452422652521,
"rotation_deg": 0.39742394993610364
},
{
"pair_index": 23,
"translation_m": 0.04780738274324129,
"rotation_deg": 1.7812021332676105
},
{
"pair_index": 24,
"translation_m": 0.0580893770008635,
"rotation_deg": 0.879332260016813
},
{
"pair_index": 25,
"translation_m": 0.12024661823169551,
"rotation_deg": 4.3358524167513774
},
{
"pair_index": 26,
"translation_m": 0.06196910794842297,
"rotation_deg": 1.5238281010443262
},
{
"pair_index": 27,
"translation_m": 0.0503874055448458,
"rotation_deg": 0.972956387575872
},
{
"pair_index": 28,
"translation_m": 0.01757080571201053,
"rotation_deg": 0.8111658366205472
},
{
"pair_index": 29,
"translation_m": 0.032044188496992296,
"rotation_deg": 0.943436351113904
},
{
"pair_index": 30,
"translation_m": 0.05418626153418599,
"rotation_deg": 0.5111200883804832
},
{
"pair_index": 31,
"translation_m": 0.02622969795541729,
"rotation_deg": 0.26503765103607685
},
{
"pair_index": 32,
"translation_m": 0.10034938173040396,
"rotation_deg": 0.8910089412227198
},
{
"pair_index": 33,
"translation_m": 0.024232025179701657,
"rotation_deg": 0.2983628682948933
},
{
"pair_index": 34,
"translation_m": 0.06450981390919311,
"rotation_deg": 1.1099995759326005
},
{
"pair_index": 35,
"translation_m": 0.06841378002467255,
"rotation_deg": 0.765302580707095
},
{
"pair_index": 36,
"translation_m": 0.45978165540815585,
"rotation_deg": 0.8318777085643659
},
{
"pair_index": 37,
"translation_m": 0.31232972397739145,
"rotation_deg": 0.7893009066081454
},
{
"pair_index": 38,
"translation_m": 0.3910017597095041,
"rotation_deg": 0.6583887677988087
},
{
"pair_index": 39,
"translation_m": 0.1015358221759577,
"rotation_deg": 0.8428062435042994
},
{
"pair_index": 40,
"translation_m": 0.1090240114660279,
"rotation_deg": 0.8418950507797021
},
{
"pair_index": 41,
"translation_m": 0.03539906786781987,
"rotation_deg": 0.7658972874383352
}
]
}
},
"ground": {
"planes": 34,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.007068161359903731,
0.007140938677742994,
0.00460528013456401
],
"rotation_deg": [
0.07009913972450056,
0.0632417549466229,
0.13781143232539678
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.8653146384480275,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 165.05915287927994,
"success": true,
"translation_m": 3.0576433724414325e-08,
"rotation_deg": 1.5435010182701515e-07
},
{
"cost": 165.05915287928036,
"success": true,
"translation_m": 3.132972747129673e-08,
"rotation_deg": 1.5835217811052665e-07
},
{
"cost": 165.0591528792959,
"success": true,
"translation_m": 5.032571008409966e-08,
"rotation_deg": 6.019987077228086e-07
},
{
"cost": 165.0591528792966,
"success": true,
"translation_m": 5.0134365128719625e-08,
"rotation_deg": 6.036593761377996e-07
},
{
"cost": 165.059152879271,
"success": true,
"translation_m": 4.0000992845476256e-09,
"rotation_deg": 5.9504483976085874e-08
},
{
"cost": 165.0591528792741,
"success": true,
"translation_m": 1.71650324878148e-08,
"rotation_deg": 2.1433774624387286e-07
},
{
"cost": 165.059152879271,
"success": true,
"translation_m": 3.8510946546090955e-09,
"rotation_deg": 5.7484467409642816e-08
},
{
"cost": 165.05915287927274,
"success": true,
"translation_m": 1.2609667860271796e-08,
"rotation_deg": 1.3972470982253386e-07
},
{
"cost": 165.05915287929693,
"success": true,
"translation_m": 5.0359957454032455e-08,
"rotation_deg": 6.053505895170472e-07
},
{
"cost": 165.05915287927098,
"success": true,
"translation_m": 0.0,
"rotation_deg": 0.0
},
{
"cost": 165.0591528792721,
"success": true,
"translation_m": 1.123025431013551e-08,
"rotation_deg": 3.014422244971439e-08
},
{
"cost": 165.0591528792711,
"success": true,
"translation_m": 2.4200230224271075e-09,
"rotation_deg": 6.741856490734345e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.0030749822448559927,
0.0034380377435498433,
0.0016315909218529902,
0.07586073216888294,
0.07187134364073751,
0.11146702425116647
],
"p025": [
1.292007464312339,
-0.006797525226093335,
0.701848741787294,
-0.9789682101604196,
1.2351532937224006,
-1.211682139162798
],
"p975": [
1.3029347232892419,
0.005407572756192536,
0.7084594772174496,
-0.705679642362121,
1.5258122853862286,
-0.8045746213351143
]
}
}
@@ -1,156 +0,0 @@
i,j,rtk_translation_m,rtk_rotation_deg,heldout_inlier_ratio,heldout_inlier_rmse_m,hessian_rank,hessian_condition,reverse_translation_m,reverse_rotation_deg,multistart_success_rate,accepted,rejection_reasons
0,1,1.8477087194158957,24.171297449440786,0.8193962748876044,0.11049677170760565,6,14.01384280930539,0.026680306344951596,0.12400141971813113,1.0,True,
0,2,2.633731568575307,80.09074797031298,0.7525388867463684,0.11492533799497681,6,14.962108606915407,0.0018465318763874656,0.03093450642761156,1.0,True,
0,3,6.923255970100826,79.91583883299243,0.628093901505486,0.12365050970311489,6,23.49058941554809,0.010524333328229862,0.23898233567763014,1.0,True,
0,4,2.952974950373882,130.25781950514033,0.693351593625498,0.11485738628517483,6,16.30512452170669,2.3214755241040135,1.4768350244766943,1.0,False,forward_reverse_translation;forward_reverse_rotation
0,5,8.205074921973447,88.82606603101337,0.6015065913370998,0.12959862169013578,6,26.276485388438196,0.013711901937629547,0.26024107991311357,1.0,True,
1,2,1.7155362084417105,55.91945052087219,0.7981310803891449,0.11167434332282761,6,13.484382276710292,0.050742368484802715,0.5170998105709517,1.0,False,forward_reverse_rotation
1,3,5.885389341942907,55.74454138355163,0.678820988438572,0.12109867185657652,6,27.478714016209608,0.008324315958289934,0.25689852176843175,1.0,True,
1,4,2.3031736807956613,106.08652205569953,0.6772473651580905,0.11157492180388107,6,13.25032679930311,0.00802452890723869,0.011334867255723058,1.0,True,
1,5,7.590375029412286,64.65476858157257,0.618779694923731,0.12786963556791484,6,21.376356908960595,0.012044684321695526,0.5185219918090508,1.0,False,forward_reverse_rotation
1,6,8.114848491620153,8.108983632525,0.6933789087226231,0.12162612003144421,6,23.560279629760274,0.008258211706006158,0.08942722541817279,1.0,True,
2,3,4.339151683168145,0.17490913732054883,0.7609663064208518,0.11583878636897658,6,13.299472485774093,0.00784220284106163,0.01711532312869618,1.0,True,
2,4,0.6150408096900305,50.167071534827386,0.796748976299789,0.11484342359047915,6,12.041666425070249,0.011210942709507262,0.11462542679280045,1.0,True,
2,5,5.894923525501676,8.735318060700383,0.7112112112112112,0.12001317983504071,6,15.619771158055366,0.011298647069299764,0.02158504824207679,1.0,True,
2,6,6.5470565092896145,47.810466888347186,0.7254529329785886,0.11794151013960824,6,22.73936753420594,0.004729020804343234,0.026463705119922912,1.0,True,
2,7,5.848768648120739,73.12203319515616,0.7569187603621987,0.11528530285715083,6,13.439936375510058,0.011994525026310043,0.05882394078371607,1.0,True,
3,4,3.9735035126146885,50.34198067214791,0.6957378664695738,0.11619002437046372,6,17.769677378118345,0.006018969660459514,0.057234124307389854,1.0,True,
3,5,2.3619393178889707,8.910227198020932,0.7989069680784996,0.1077590577814381,6,12.151555874812605,0.01353229173052898,0.06486032517688407,1.0,True,
3,6,2.2300116834828536,47.63555775102664,0.8435613682092555,0.11222309863990207,6,13.914901775514604,0.009512765198853305,0.09743636874085052,1.0,True,
3,7,2.450274232383144,72.94712405783562,0.8651898734177215,0.11184568072686094,6,12.975777248765134,0.010827690226297962,0.12520280777371934,1.0,True,
3,8,1.9936391786054533,163.56928836557165,0.825590155700653,0.10787987267070262,6,12.959410142765178,0.0056088079192386986,0.021536601402145895,1.0,True,
4,5,5.370771070097231,41.431753474126985,0.6652516676773802,0.12444356767629798,6,17.0278455355532,0.003155412913416372,0.05824374716659687,1.0,True,
4,6,6.142548765456278,97.97753842317456,0.6551681807021851,0.12030857820705748,6,24.380739297719824,0.011212969141455763,0.08373658947114908,0.5,True,
4,7,5.314106070657687,123.28910472998356,0.696936001976773,0.11799538994568655,6,16.89426071448657,0.00409529177569414,0.0519770010059835,0.5,True,
4,8,5.8981084980454765,146.08873096228052,0.7129198332924737,0.11349036082807595,6,18.616925126379197,0.01249802665331653,0.04549823831834878,1.0,True,
4,9,3.1650365894055956,158.11607430100375,0.6097234068478128,0.11677937926620108,6,25.94675052408701,0.00616984405743089,0.11548555225177864,0.5,True,
5,6,1.9357867378988893,56.54578494904757,0.7604901596732269,0.11101741624951145,6,16.791344333152654,0.01028641250952863,0.031127073736479716,1.0,True,
5,7,0.19501559913675365,81.85735125585654,0.8092687180764918,0.10777871969807898,6,15.20338641054919,0.010579714886860828,0.03333492483252218,1.0,True,
5,8,1.8038807059856978,172.47951556359365,0.7295760721789643,0.11311887218463837,6,17.053462425193878,0.009759205787181369,0.05935114015788255,1.0,True,
5,9,7.881613621164215,160.45217222486949,0.514987714987715,0.13057312144553648,6,36.76355827214787,0.013423709236357283,0.8456480282562385,1.0,False,forward_reverse_rotation
5,10,7.671857805815354,143.54232919109316,0.5442391832766165,0.13173165083201857,6,26.337222871823027,0.00523999417676037,0.17134499262937464,1.0,True,
6,7,2.130456053070114,25.311566306808988,0.8539354187689203,0.10462253085153163,6,12.502910766598342,0.002843314342407394,0.028424505305675103,1.0,True,
6,8,0.24494500622098103,115.93373061454483,0.7757757757757757,0.1131640002846509,6,15.521747346102597,0.007224674181694773,0.10395594559619498,1.0,True,
6,9,8.025985916230132,103.90638727582186,0.6009202835468226,0.1259448851291812,6,28.795189977892573,0.007975110549369148,0.07338758946554978,1.0,True,
6,10,8.303463402700086,159.91188585985975,0.5363513347275187,0.13083118553166714,6,31.167661263990606,1.7146158775247784,14.688249303878628,1.0,False,forward_reverse_translation;forward_reverse_rotation
6,11,11.328882063792355,138.54043874549896,0.4633337584491774,0.13769942152040132,6,58.377014583638996,0.023339879627157865,0.18888808553225306,1.0,True,
7,8,1.9962664218365056,90.62216430773583,0.8340050377833753,0.11132245152738919,6,16.170350777028464,0.004806949653405585,0.02034039865601464,1.0,True,
7,9,7.8811064994361235,78.59482096901284,0.6160971335586432,0.12637042711002067,6,24.17866477904224,0.012112046262530643,0.5927664140170301,1.0,False,forward_reverse_rotation
7,10,7.620696678413973,134.60031955305035,0.5721183607775164,0.13040415535689726,6,20.571872802604858,0.010507785715791607,0.10324111221368969,1.0,True,
7,11,10.356268683459426,113.22887243868989,0.5179098728976762,0.13593896500168,6,36.18276452817704,0.01570096854689765,0.062213006599939585,1.0,True,
7,12,13.76202076313695,94.9510481861355,0.419173636250156,0.14753718360891266,6,89.28960611274712,0.018245717875293024,0.41212759156893974,1.0,True,
8,9,7.803713858547152,12.027343338722998,0.6407549981373402,0.12189583104066963,6,28.06713348388497,0.025170709673794655,0.14112050756711447,1.0,True,
8,10,8.062504137991457,43.97815524531457,0.6075420709986488,0.12933255373443525,6,20.429632894689156,0.01256038832173067,0.12386976869589704,1.0,True,
8,11,11.084531710563947,22.606708130954026,0.5447599643448364,0.13547919137380177,6,27.72840331379869,0.006462771421800638,0.08629803406158434,1.0,True,
8,12,14.350449135419003,4.328883878399632,0.46489164086687307,0.14530908872417966,6,37.958964738084276,0.00955628888567663,0.1112688142308669,1.0,True,
8,13,18.245302761704593,28.43334478424675,0.37832991803278687,0.15442802982944018,6,101.4897081447731,0.027875630486669568,0.37387837894914167,1.0,True,
9,10,2.04815062353057,56.00549858403758,0.6576312576312576,0.10693844153477818,6,15.957672354569297,0.0038184479242649575,0.016135929192430513,0.5,True,
9,11,4.738677237611319,34.634051469677026,0.5883320678309288,0.11815838246331245,6,21.526672921842792,0.008866435423074387,0.05039949658393549,1.0,True,
9,12,7.170741483679294,16.35622721712263,0.5413589364844904,0.12469816852157387,6,38.0354745717217,0.03403608365914784,0.249719392637206,1.0,True,
9,13,10.733928030180744,16.40600144552375,0.5075728649611811,0.13356609480985904,6,50.3483756147633,0.0053243668825205025,0.1401976908512776,1.0,True,
9,14,7.8912187855633125,14.085282580602351,0.5416463116756228,0.12859551377809317,6,26.721469573230642,0.011377143482081005,0.045883349808202654,1.0,True,
10,11,3.2047552083250137,21.371447114360556,0.7131414267834794,0.12095106901516857,6,13.404202373771971,0.006897671932212844,0.18540056788520093,1.0,True,
10,12,6.291813977735496,39.64927136691496,0.6117876278616659,0.125002241212049,6,19.806559061723195,0.006509808900811586,0.06742381610992963,1.0,True,
10,13,10.199392557022867,72.41150002956134,0.5244808055380743,0.13689263771908436,6,36.18235272080672,0.0046518429660042555,0.17931102925270673,1.0,True,
10,14,6.819808471778838,41.920216003435236,0.5996858385693572,0.12955691635611957,6,17.916357473627098,0.009593578345611205,0.05753783232412823,1.0,True,
10,15,10.561163834622734,65.51298166784417,0.5048970366649924,0.13966622273060364,6,30.173625507677322,0.006074999657630774,0.04867559411570644,1.0,True,
11,12,3.467398797536633,18.277824252554396,0.6508076728924785,0.12017753597340274,6,15.211760062254479,0.016302173123952383,0.05141023051579345,1.0,True,
11,13,7.516502113110916,51.04005291520078,0.5666710199817161,0.12966061077144844,6,26.14207974844453,0.010250004424021303,0.0630753341579125,1.0,True,
11,14,3.767517331528496,20.548768889074672,0.64271407110666,0.12109534664165014,6,14.04589685067402,0.007610676428698485,0.05350102444543152,1.0,True,
11,15,7.712397127778454,44.141534553483616,0.570479416362689,0.12836105648377344,6,18.857231656557765,0.006898635416764969,0.028532809525243653,1.0,True,
11,16,11.0395297023812,69.98495270981527,0.4761423882857864,0.13515636052103228,6,45.4042112112498,0.037021121414326036,0.5129154434742894,1.0,False,forward_reverse_rotation
12,13,4.049286119591895,32.762228662646386,0.7056733087955325,0.11689859246507509,6,14.509757355016381,0.0020816591744367207,0.08889045467662131,1.0,True,
12,14,0.97948616772873,2.2709446365202806,0.8745432399512789,0.09766069029332589,6,11.857488007889668,0.002473515580842477,0.018069288085025077,1.0,True,
12,15,4.286747470271891,25.863710300929224,0.7033426183844012,0.12103901189560114,6,11.859397045728326,0.022780233796594867,0.04927694758545139,1.0,True,
12,16,7.5836501880550475,51.70712845726087,0.5820235756385069,0.12458133956199553,6,32.351864267271,0.00989839849833309,0.03808519306435704,1.0,True,
12,17,6.351478009829798,1.4248238883471207,0.6542219994988725,0.12658997093251892,6,11.229951110937455,0.019742680150836883,0.07899236042083516,1.0,True,
13,14,4.006260191078547,30.491284026126113,0.6984766461034874,0.11406275231178287,6,13.924718120717541,0.012533581961738958,0.10861604448395465,1.0,True,
13,15,0.9562774815922267,6.898518361717157,0.8794391298650243,0.09903209123829654,6,10.514819201987352,0.006638809913641406,0.04266354358349458,1.0,True,
13,16,3.565173336606111,18.944899794614482,0.7273073505141552,0.10958532316684438,6,19.40505650408657,0.005441055528592516,0.12519365495730794,1.0,True,
13,17,2.967150651379281,31.337404774299262,0.7130265716137395,0.11779895987026284,6,12.816390530620689,0.013263327701592687,0.16221305155705806,1.0,True,
13,18,5.249882044431148,3.4459964529377567,0.7019876443728176,0.11940768524727291,6,25.985486690964983,0.008995185113784413,0.05198334813202341,1.0,True,
14,15,4.019575892829469,23.592765664408944,0.7035920622959055,0.12189498753760801,6,10.295943232842452,0.010817230757509965,0.008099442158890762,0.5,True,
14,16,7.5676649485439835,49.43618382074059,0.5923489278752436,0.12241126089476961,6,33.65365690477826,0.003104373432332903,0.13386003286196627,1.0,True,
14,17,5.910977627463022,0.8461207481731591,0.6687795177728063,0.12452036369759786,6,8.95305147071513,0.01159286549234958,0.10132041390926738,1.0,True,
14,18,8.548241724186095,27.045287573188347,0.6196476790536196,0.12845393182350578,6,17.805505225184664,0.010070495463159433,0.13041926369959572,1.0,True,
14,19,9.249254057266956,79.47127430600668,0.5845660749506904,0.12584132662356784,6,30.335272352492872,0.016830803029542436,0.2574761671757917,1.0,True,
15,16,3.7301261399251735,25.84341815633164,0.7032674772036475,0.11602216892855616,6,22.696890954829907,0.0009988867448423883,0.09036168134112703,1.0,True,
15,17,2.2049738368271745,24.438886412582093,0.7489009568140678,0.11923375870790391,6,6.944925131742929,0.02582458487951314,0.095039680889365,1.0,True,
15,18,4.7000039832559155,3.452521908779401,0.7165438713998661,0.11783922962071142,6,19.334165264487982,0.009354386824208725,0.17478401338848865,1.0,True,
15,19,5.238340351181781,55.87850864159773,0.6924358974358974,0.11506895717743916,6,20.41712608461488,0.012497900854287812,0.3255615001296644,1.0,True,
15,20,2.0380809160783224,128.5450420215843,0.6751867872591427,0.11901811643083532,6,27.381712286843808,0.007126007329084919,0.09473387178666172,1.0,True,
16,17,3.368526196086246,50.282304568913744,0.6284461152882206,0.1113618900510703,6,25.184005110635376,0.015370940622322818,0.07520125332617648,1.0,True,
16,18,3.5240348999326185,22.39089624755224,0.6921281286473868,0.10919235768364483,6,39.42922894015919,0.005355462743716769,0.03654303027439279,1.0,True,
16,19,2.146829294717985,30.035090485266103,0.8880188913745961,0.0968346861370537,6,11.70909430755386,0.006745004702225108,0.04851926363283949,1.0,True,
16,20,4.728364693236263,102.70162386525263,0.6307301587301587,0.12362874516637085,6,35.70048091760535,0.007128919591300971,0.10475436005961275,1.0,True,
16,21,10.094336026449797,153.311489607007,0.40465918895599656,0.14174574821871383,6,57.2667389243621,0.01442382622115287,0.2621394134233604,1.0,True,
17,18,2.640403049812329,27.891408321361506,0.7665916015366274,0.11462276561713726,6,9.759321661407776,0.003676908482849856,0.03455537183665902,1.0,True,
17,19,3.933985934417215,80.31739505417984,0.645738203957382,0.11467441399973681,6,29.93502749301381,0.002658154417044598,0.03997293849541112,1.0,True,
17,20,4.2254212089887,152.98392843416656,0.6031375599636977,0.12542519992547976,6,27.708613247812377,4.543486491493239,1.5708713272202308,0.5,False,forward_reverse_translation;forward_reverse_rotation
17,21,9.21529677253323,156.40620582407942,0.4672368255565338,0.13751533766984328,6,32.19730123852794,0.13403735422224766,1.1805230479043929,0.5,False,forward_reverse_translation;forward_reverse_rotation
17,22,11.781237287606983,150.82966218116434,0.4255952380952381,0.1417851723285674,6,38.71155142811069,0.01638337185583796,0.14112774930143776,1.0,True,
18,19,2.4460967931915643,52.425986732818345,0.6999343401181878,0.10876407223187468,6,36.919102980185954,0.0029722527816906422,0.028553700929610463,1.0,True,
18,20,6.593931011285688,125.09252011280485,0.5796614723267061,0.12778176089815,6,32.46060078153023,0.0849644734357879,0.24110896992060843,1.0,False,forward_reverse_translation
18,21,11.793089868757727,175.70238585456048,0.42345743296016664,0.14463219993853524,6,41.677643204951686,0.008594432490503082,0.044791316017877565,1.0,True,
18,22,14.40479158879449,178.72107050256645,0.35586914688903143,0.14801012931814386,6,118.81863294454718,0.05364920712348454,0.15560820359743163,1.0,True,
18,23,11.744734461596845,164.11569663484164,0.3967277486910995,0.14073241205403209,6,67.8157115569044,0.0379980141073483,0.09667096210106078,1.0,True,
19,20,6.650720121741557,72.6665333799865,0.6260444787247719,0.12668491637849374,6,25.97982149253148,0.022781715838261912,0.19834674514582162,1.0,True,
19,21,12.053580264031138,123.27639912174077,0.3952850193339154,0.1421446220617431,6,61.553005632745744,0.01796074748252817,0.16263425635632095,1.0,True,
19,22,14.836246959975925,128.85294276465592,0.3237392373923739,0.15069330869045588,6,75.70505048512227,0.2579934626807855,1.1847082611411373,1.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
19,23,11.740810561661805,143.45831663234065,0.37768025078369905,0.1432975121556299,6,38.93505210462392,0.07411982241929344,0.4458370864472602,1.0,True,
19,24,11.093516369446519,177.87107120383473,0.43504761904761907,0.13924446561169374,6,41.93660606132572,0.04258350776081339,0.7879276702809055,0.5,False,forward_reverse_rotation
20,21,5.40286046809103,50.60986574175429,0.6607188376242672,0.12214671257866079,6,14.082798146569438,0.01471691635641488,0.0747935794181239,1.0,True,
20,22,8.200956565000565,56.18640938466938,0.576328684508104,0.13245799460807672,6,16.034011252149995,0.02165175771302933,0.4612076789897289,1.0,True,
20,23,5.175118275082073,70.79178325235415,0.6451819579702717,0.12102263178677423,6,12.511468996120387,0.018249896901851893,0.12115759970382113,1.0,True,
20,24,4.710308396362637,105.20453782384023,0.7383177570093458,0.11441422046802802,6,12.152737785424229,0.009011279667019194,0.06430292411421322,1.0,True,
20,25,8.226491803107123,68.57831319871164,0.6182822702159718,0.12791257682460647,6,29.104161441720954,0.014703530260578728,0.32055535743282454,1.0,True,
21,22,2.8644847627909416,5.57654364291509,0.7740636818348177,0.11564788773425824,6,12.209574213097333,0.0065184199045192235,0.06991965908247275,1.0,True,
21,23,1.2936223973175418,20.18191751059984,0.862223327530465,0.10307116830776755,6,11.124499228103288,0.0026785916987678697,0.01879221122979615,1.0,True,
21,24,2.3128500583741403,54.59467208208593,0.7795265676152102,0.11182158240581822,6,15.934013426145448,0.003491995501356654,0.0374256510953578,1.0,True,
21,25,3.793272903723766,17.968447456957346,0.7340892465252378,0.12002239056891174,6,16.57216298005221,0.037735058311297705,0.2878144229712423,1.0,True,
21,26,4.631707245574304,60.912845043424184,0.7147358216190014,0.11997311573294966,6,17.372315653280065,0.012351932089198563,0.10379217190868555,1.0,True,
22,23,3.7194009250537223,14.605373867684753,0.7408951563458002,0.11726725109752717,6,12.610213323576254,0.009206244303295173,0.09601986001481369,1.0,True,
22,24,4.786117710081478,49.01812843917083,0.6936064556176288,0.11914624513148218,6,13.20338761495324,0.006090737153726605,0.027557138417491776,1.0,True,
22,25,2.3747421598149763,12.391903814042255,0.7356584485868911,0.11474070552638106,6,16.673633938013044,0.0019617091597581428,0.011643770804738128,1.0,True,
22,26,2.381693697571969,55.336301400509086,0.7422594142259414,0.11765221626900083,6,18.880420396501957,0.007814937371704293,0.039342553564881436,1.0,True,
22,27,2.9603952927690247,80.62067670375279,0.7254925373134329,0.11870181965154768,6,21.309389349405485,0.018241823604788005,0.08279236858582419,1.0,True,
23,24,1.0880644725336985,34.41275457148609,0.7884810126582279,0.10662565692629543,6,10.611199681165669,0.001882338148224756,0.020239211377623818,1.0,True,
23,25,5.033935954106079,2.213470053642494,0.6843137254901961,0.12171091934898426,6,15.150809064137142,0.014639828785635214,0.2046006298281892,1.0,True,
23,26,5.765534437288107,40.730927532824346,0.6772228989037758,0.12237954766026346,6,16.382334072569904,0.04518647006837157,0.20367965681897066,1.0,True,
23,27,6.392376191887118,66.01530283606805,0.6637469586374696,0.12340951265232122,6,20.64383986204732,0.010626193556947957,1.1817079481882757,1.0,False,forward_reverse_rotation
23,28,6.631292861991925,85.8775990418248,0.6720351390922401,0.12122778564083748,6,19.20657067904157,0.043540468687755365,0.26051478047218213,1.0,True,
24,25,6.097212810998921,36.62622462512857,0.6764267990074442,0.12367636388755719,6,21.50176872604179,0.035816405766439664,0.2046504337319023,1.0,True,
24,26,6.852918693116795,6.318172961338249,0.6524044389642417,0.12740232296321938,6,21.753053297058692,0.062038641373543625,0.12012273822228971,1.0,True,
24,27,7.47982907414204,31.60254826458195,0.6546798029556651,0.12425657449629145,6,26.295019203914197,0.05403266260962086,0.2126374478532415,1.0,True,
24,28,7.71913193400284,51.4648444703387,0.6614377470355731,0.12010155595807545,6,20.98500095492876,0.049490676797893776,0.25138526875505346,1.0,True,
24,29,7.213852273638132,93.73390958258973,0.6620579958399608,0.12331341986261203,6,28.045882177977884,0.08010108996241684,0.7934458070763889,1.0,False,forward_reverse_translation;forward_reverse_rotation
25,26,1.2882746074869595,42.944397586466835,0.9137395459976105,0.08148336624555251,6,16.56293455758718,0.0032405549728505064,0.006669174585592186,1.0,True,
25,27,1.7666235781584831,68.22877288971053,0.8596658711217183,0.1096145882030974,6,22.188153380460985,0.010624789877375215,0.04475651255674721,1.0,True,
25,28,2.1807182972588706,88.09106909546726,0.8839157491622786,0.10490699814192792,6,16.17217948348072,0.00283419137499405,0.01585308444597649,1.0,True,
25,29,1.118287177357716,130.36013420771832,0.7857227558401518,0.10954358768244267,6,20.132087187715307,0.003247718742817276,0.01654235380830592,1.0,True,
25,30,5.200639419572971,139.6773015481418,0.05061061531235322,0.1582745227634446,6,186.52424080569466,2.4401001990983833,2.63047633237589,0.0,False,heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
26,27,0.6269948654714946,25.284375303243706,0.9188612099644128,0.07520973241900301,6,20.799051531446562,0.0009920873307779914,0.005485007138529723,1.0,True,
26,28,0.9431372257108486,45.14667150900044,0.9182726623840114,0.07611768518866212,6,21.99541958409829,0.004984978187527545,0.01173507098896779,1.0,True,
26,29,1.129925637779203,87.41573662125148,0.7856890251090416,0.10851393061782179,6,24.280602674778656,0.002586732426991948,0.12205883610743135,1.0,True,
26,30,4.786676837961511,177.3783008654109,0.7634835395750642,0.10495724850674527,6,34.80647378548578,0.008489213184554775,0.021733210949123293,1.0,True,
26,31,5.900105669197046,156.01119868987135,0.7374054682955207,0.1073752166304431,6,38.310555401782544,3.545322953478412,6.459518815762061,1.0,False,forward_reverse_translation;forward_reverse_rotation
27,28,0.44809323479571145,19.862296205756735,0.9281131178707225,0.07220943509634768,6,20.093208902964978,0.0023003913248606234,0.001591751329336308,1.0,True,
27,29,1.160064136065596,62.13136131800778,0.7871188037207112,0.10966659884725236,6,24.009650087098436,0.005134403698947268,0.02434844099203523,1.0,True,
27,30,4.25412615059095,152.09392556214777,0.7922108208955224,0.10147035321534553,6,32.52026042532504,2.795897032209197,3.237329131939042,1.0,False,forward_reverse_translation;forward_reverse_rotation
27,31,5.542871649427442,178.70442600700352,0.7592097617664149,0.10539218018667602,6,48.70669958381899,0.0020939062619997405,0.027400662783563425,1.0,True,
27,32,4.8829350360277,138.47370648510565,0.7480278422273782,0.10408734715846867,6,42.21510199826003,0.004407463145306061,0.03490543724836902,1.0,True,
28,29,1.5995723610319212,42.26906511225104,0.787814381863266,0.10901449493832843,6,25.913625419675043,0.01570175790237609,0.03569660498137675,1.0,True,
28,30,4.295353381127667,132.23162935639104,0.7791159962581852,0.10438560755009844,6,36.501677925790155,0.01170149615735483,0.047047156693309715,1.0,True,
28,31,5.754426930327516,158.8421298011293,0.7449015266285981,0.10668967013687296,6,48.04636971250818,0.024421374377245158,0.6810283060803514,0.5,False,forward_reverse_rotation
28,32,5.013331477001236,158.33600269086247,0.7309213587715216,0.1081318944415262,6,52.23779663520043,0.10324080390042788,0.9479198721286788,1.0,False,forward_reverse_translation;forward_reverse_rotation
28,33,5.317102997899902,67.05379893079937,0.6692465836255895,0.10871806386783629,6,54.67376255043738,0.13259351588266985,0.659391929056215,1.0,False,forward_reverse_translation;forward_reverse_rotation
29,30,4.099530130205247,89.96256424413995,0.7320662880982732,0.10929719051930432,6,30.745355096911158,0.005463604154015333,0.018583483487870766,1.0,True,
29,31,4.890018768530818,116.57306468887772,0.7254562254562255,0.11323336570178015,6,49.09678922599757,0.0050777995851252426,0.07265894091769333,1.0,True,
29,32,4.464737187763289,159.39493219688632,0.695837657096737,0.10999820041072961,6,72.25486343140591,0.011220553177198233,0.14599088546526143,1.0,True,
29,33,4.34670323578768,109.32286404305042,0.6382698298586149,0.11215583949685817,6,72.66655529463955,0.018977478007060265,0.05615608666616428,1.0,True,
30,31,2.3862917603439455,26.61050044473775,0.8286237272623269,0.0964659694513182,6,41.03513305025223,0.018905314487385798,0.08632503464137033,1.0,True,
30,32,1.1507634071714652,69.43236795274659,0.8065326633165829,0.09815063400019142,6,35.25635856167173,0.007341509941520892,0.023973741904832375,1.0,True,
30,33,2.4361832484951105,160.7145717128102,0.6965239055641239,0.10032655671840386,6,47.08947384000088,2.6257249086936962,3.1197630566421646,1.0,False,forward_reverse_translation;forward_reverse_rotation
31,32,1.2514382602180638,42.82186750800885,0.8146841206602162,0.09914628416022417,6,34.33173181492779,0.06936877058296162,0.45703051311645637,1.0,True,
31,33,0.641507519046697,134.10407126807203,0.7551430598250177,0.1003246191461096,6,28.537349904719164,0.005559091155811048,0.0330053182501105,1.0,True,
32,33,1.4370687242949811,91.2822037600631,0.043432078366576185,0.1661924920133195,6,88.4956235178996,0.946171384319174,3.5092968853566924,0.0,False,heldout_inlier_ratio;heldout_inlier_rmse;forward_reverse_translation;forward_reverse_rotation;multistart_instability
1 i j rtk_translation_m rtk_rotation_deg heldout_inlier_ratio heldout_inlier_rmse_m hessian_rank hessian_condition reverse_translation_m reverse_rotation_deg multistart_success_rate accepted rejection_reasons
2 0 1 1.8477087194158957 24.171297449440786 0.8193962748876044 0.11049677170760565 6 14.01384280930539 0.026680306344951596 0.12400141971813113 1.0 True
3 0 2 2.633731568575307 80.09074797031298 0.7525388867463684 0.11492533799497681 6 14.962108606915407 0.0018465318763874656 0.03093450642761156 1.0 True
4 0 3 6.923255970100826 79.91583883299243 0.628093901505486 0.12365050970311489 6 23.49058941554809 0.010524333328229862 0.23898233567763014 1.0 True
5 0 4 2.952974950373882 130.25781950514033 0.693351593625498 0.11485738628517483 6 16.30512452170669 2.3214755241040135 1.4768350244766943 1.0 False forward_reverse_translation;forward_reverse_rotation
6 0 5 8.205074921973447 88.82606603101337 0.6015065913370998 0.12959862169013578 6 26.276485388438196 0.013711901937629547 0.26024107991311357 1.0 True
7 1 2 1.7155362084417105 55.91945052087219 0.7981310803891449 0.11167434332282761 6 13.484382276710292 0.050742368484802715 0.5170998105709517 1.0 False forward_reverse_rotation
8 1 3 5.885389341942907 55.74454138355163 0.678820988438572 0.12109867185657652 6 27.478714016209608 0.008324315958289934 0.25689852176843175 1.0 True
9 1 4 2.3031736807956613 106.08652205569953 0.6772473651580905 0.11157492180388107 6 13.25032679930311 0.00802452890723869 0.011334867255723058 1.0 True
10 1 5 7.590375029412286 64.65476858157257 0.618779694923731 0.12786963556791484 6 21.376356908960595 0.012044684321695526 0.5185219918090508 1.0 False forward_reverse_rotation
11 1 6 8.114848491620153 8.108983632525 0.6933789087226231 0.12162612003144421 6 23.560279629760274 0.008258211706006158 0.08942722541817279 1.0 True
12 2 3 4.339151683168145 0.17490913732054883 0.7609663064208518 0.11583878636897658 6 13.299472485774093 0.00784220284106163 0.01711532312869618 1.0 True
13 2 4 0.6150408096900305 50.167071534827386 0.796748976299789 0.11484342359047915 6 12.041666425070249 0.011210942709507262 0.11462542679280045 1.0 True
14 2 5 5.894923525501676 8.735318060700383 0.7112112112112112 0.12001317983504071 6 15.619771158055366 0.011298647069299764 0.02158504824207679 1.0 True
15 2 6 6.5470565092896145 47.810466888347186 0.7254529329785886 0.11794151013960824 6 22.73936753420594 0.004729020804343234 0.026463705119922912 1.0 True
16 2 7 5.848768648120739 73.12203319515616 0.7569187603621987 0.11528530285715083 6 13.439936375510058 0.011994525026310043 0.05882394078371607 1.0 True
17 3 4 3.9735035126146885 50.34198067214791 0.6957378664695738 0.11619002437046372 6 17.769677378118345 0.006018969660459514 0.057234124307389854 1.0 True
18 3 5 2.3619393178889707 8.910227198020932 0.7989069680784996 0.1077590577814381 6 12.151555874812605 0.01353229173052898 0.06486032517688407 1.0 True
19 3 6 2.2300116834828536 47.63555775102664 0.8435613682092555 0.11222309863990207 6 13.914901775514604 0.009512765198853305 0.09743636874085052 1.0 True
20 3 7 2.450274232383144 72.94712405783562 0.8651898734177215 0.11184568072686094 6 12.975777248765134 0.010827690226297962 0.12520280777371934 1.0 True
21 3 8 1.9936391786054533 163.56928836557165 0.825590155700653 0.10787987267070262 6 12.959410142765178 0.0056088079192386986 0.021536601402145895 1.0 True
22 4 5 5.370771070097231 41.431753474126985 0.6652516676773802 0.12444356767629798 6 17.0278455355532 0.003155412913416372 0.05824374716659687 1.0 True
23 4 6 6.142548765456278 97.97753842317456 0.6551681807021851 0.12030857820705748 6 24.380739297719824 0.011212969141455763 0.08373658947114908 0.5 True
24 4 7 5.314106070657687 123.28910472998356 0.696936001976773 0.11799538994568655 6 16.89426071448657 0.00409529177569414 0.0519770010059835 0.5 True
25 4 8 5.8981084980454765 146.08873096228052 0.7129198332924737 0.11349036082807595 6 18.616925126379197 0.01249802665331653 0.04549823831834878 1.0 True
26 4 9 3.1650365894055956 158.11607430100375 0.6097234068478128 0.11677937926620108 6 25.94675052408701 0.00616984405743089 0.11548555225177864 0.5 True
27 5 6 1.9357867378988893 56.54578494904757 0.7604901596732269 0.11101741624951145 6 16.791344333152654 0.01028641250952863 0.031127073736479716 1.0 True
28 5 7 0.19501559913675365 81.85735125585654 0.8092687180764918 0.10777871969807898 6 15.20338641054919 0.010579714886860828 0.03333492483252218 1.0 True
29 5 8 1.8038807059856978 172.47951556359365 0.7295760721789643 0.11311887218463837 6 17.053462425193878 0.009759205787181369 0.05935114015788255 1.0 True
30 5 9 7.881613621164215 160.45217222486949 0.514987714987715 0.13057312144553648 6 36.76355827214787 0.013423709236357283 0.8456480282562385 1.0 False forward_reverse_rotation
31 5 10 7.671857805815354 143.54232919109316 0.5442391832766165 0.13173165083201857 6 26.337222871823027 0.00523999417676037 0.17134499262937464 1.0 True
32 6 7 2.130456053070114 25.311566306808988 0.8539354187689203 0.10462253085153163 6 12.502910766598342 0.002843314342407394 0.028424505305675103 1.0 True
33 6 8 0.24494500622098103 115.93373061454483 0.7757757757757757 0.1131640002846509 6 15.521747346102597 0.007224674181694773 0.10395594559619498 1.0 True
34 6 9 8.025985916230132 103.90638727582186 0.6009202835468226 0.1259448851291812 6 28.795189977892573 0.007975110549369148 0.07338758946554978 1.0 True
35 6 10 8.303463402700086 159.91188585985975 0.5363513347275187 0.13083118553166714 6 31.167661263990606 1.7146158775247784 14.688249303878628 1.0 False forward_reverse_translation;forward_reverse_rotation
36 6 11 11.328882063792355 138.54043874549896 0.4633337584491774 0.13769942152040132 6 58.377014583638996 0.023339879627157865 0.18888808553225306 1.0 True
37 7 8 1.9962664218365056 90.62216430773583 0.8340050377833753 0.11132245152738919 6 16.170350777028464 0.004806949653405585 0.02034039865601464 1.0 True
38 7 9 7.8811064994361235 78.59482096901284 0.6160971335586432 0.12637042711002067 6 24.17866477904224 0.012112046262530643 0.5927664140170301 1.0 False forward_reverse_rotation
39 7 10 7.620696678413973 134.60031955305035 0.5721183607775164 0.13040415535689726 6 20.571872802604858 0.010507785715791607 0.10324111221368969 1.0 True
40 7 11 10.356268683459426 113.22887243868989 0.5179098728976762 0.13593896500168 6 36.18276452817704 0.01570096854689765 0.062213006599939585 1.0 True
41 7 12 13.76202076313695 94.9510481861355 0.419173636250156 0.14753718360891266 6 89.28960611274712 0.018245717875293024 0.41212759156893974 1.0 True
42 8 9 7.803713858547152 12.027343338722998 0.6407549981373402 0.12189583104066963 6 28.06713348388497 0.025170709673794655 0.14112050756711447 1.0 True
43 8 10 8.062504137991457 43.97815524531457 0.6075420709986488 0.12933255373443525 6 20.429632894689156 0.01256038832173067 0.12386976869589704 1.0 True
44 8 11 11.084531710563947 22.606708130954026 0.5447599643448364 0.13547919137380177 6 27.72840331379869 0.006462771421800638 0.08629803406158434 1.0 True
45 8 12 14.350449135419003 4.328883878399632 0.46489164086687307 0.14530908872417966 6 37.958964738084276 0.00955628888567663 0.1112688142308669 1.0 True
46 8 13 18.245302761704593 28.43334478424675 0.37832991803278687 0.15442802982944018 6 101.4897081447731 0.027875630486669568 0.37387837894914167 1.0 True
47 9 10 2.04815062353057 56.00549858403758 0.6576312576312576 0.10693844153477818 6 15.957672354569297 0.0038184479242649575 0.016135929192430513 0.5 True
48 9 11 4.738677237611319 34.634051469677026 0.5883320678309288 0.11815838246331245 6 21.526672921842792 0.008866435423074387 0.05039949658393549 1.0 True
49 9 12 7.170741483679294 16.35622721712263 0.5413589364844904 0.12469816852157387 6 38.0354745717217 0.03403608365914784 0.249719392637206 1.0 True
50 9 13 10.733928030180744 16.40600144552375 0.5075728649611811 0.13356609480985904 6 50.3483756147633 0.0053243668825205025 0.1401976908512776 1.0 True
51 9 14 7.8912187855633125 14.085282580602351 0.5416463116756228 0.12859551377809317 6 26.721469573230642 0.011377143482081005 0.045883349808202654 1.0 True
52 10 11 3.2047552083250137 21.371447114360556 0.7131414267834794 0.12095106901516857 6 13.404202373771971 0.006897671932212844 0.18540056788520093 1.0 True
53 10 12 6.291813977735496 39.64927136691496 0.6117876278616659 0.125002241212049 6 19.806559061723195 0.006509808900811586 0.06742381610992963 1.0 True
54 10 13 10.199392557022867 72.41150002956134 0.5244808055380743 0.13689263771908436 6 36.18235272080672 0.0046518429660042555 0.17931102925270673 1.0 True
55 10 14 6.819808471778838 41.920216003435236 0.5996858385693572 0.12955691635611957 6 17.916357473627098 0.009593578345611205 0.05753783232412823 1.0 True
56 10 15 10.561163834622734 65.51298166784417 0.5048970366649924 0.13966622273060364 6 30.173625507677322 0.006074999657630774 0.04867559411570644 1.0 True
57 11 12 3.467398797536633 18.277824252554396 0.6508076728924785 0.12017753597340274 6 15.211760062254479 0.016302173123952383 0.05141023051579345 1.0 True
58 11 13 7.516502113110916 51.04005291520078 0.5666710199817161 0.12966061077144844 6 26.14207974844453 0.010250004424021303 0.0630753341579125 1.0 True
59 11 14 3.767517331528496 20.548768889074672 0.64271407110666 0.12109534664165014 6 14.04589685067402 0.007610676428698485 0.05350102444543152 1.0 True
60 11 15 7.712397127778454 44.141534553483616 0.570479416362689 0.12836105648377344 6 18.857231656557765 0.006898635416764969 0.028532809525243653 1.0 True
61 11 16 11.0395297023812 69.98495270981527 0.4761423882857864 0.13515636052103228 6 45.4042112112498 0.037021121414326036 0.5129154434742894 1.0 False forward_reverse_rotation
62 12 13 4.049286119591895 32.762228662646386 0.7056733087955325 0.11689859246507509 6 14.509757355016381 0.0020816591744367207 0.08889045467662131 1.0 True
63 12 14 0.97948616772873 2.2709446365202806 0.8745432399512789 0.09766069029332589 6 11.857488007889668 0.002473515580842477 0.018069288085025077 1.0 True
64 12 15 4.286747470271891 25.863710300929224 0.7033426183844012 0.12103901189560114 6 11.859397045728326 0.022780233796594867 0.04927694758545139 1.0 True
65 12 16 7.5836501880550475 51.70712845726087 0.5820235756385069 0.12458133956199553 6 32.351864267271 0.00989839849833309 0.03808519306435704 1.0 True
66 12 17 6.351478009829798 1.4248238883471207 0.6542219994988725 0.12658997093251892 6 11.229951110937455 0.019742680150836883 0.07899236042083516 1.0 True
67 13 14 4.006260191078547 30.491284026126113 0.6984766461034874 0.11406275231178287 6 13.924718120717541 0.012533581961738958 0.10861604448395465 1.0 True
68 13 15 0.9562774815922267 6.898518361717157 0.8794391298650243 0.09903209123829654 6 10.514819201987352 0.006638809913641406 0.04266354358349458 1.0 True
69 13 16 3.565173336606111 18.944899794614482 0.7273073505141552 0.10958532316684438 6 19.40505650408657 0.005441055528592516 0.12519365495730794 1.0 True
70 13 17 2.967150651379281 31.337404774299262 0.7130265716137395 0.11779895987026284 6 12.816390530620689 0.013263327701592687 0.16221305155705806 1.0 True
71 13 18 5.249882044431148 3.4459964529377567 0.7019876443728176 0.11940768524727291 6 25.985486690964983 0.008995185113784413 0.05198334813202341 1.0 True
72 14 15 4.019575892829469 23.592765664408944 0.7035920622959055 0.12189498753760801 6 10.295943232842452 0.010817230757509965 0.008099442158890762 0.5 True
73 14 16 7.5676649485439835 49.43618382074059 0.5923489278752436 0.12241126089476961 6 33.65365690477826 0.003104373432332903 0.13386003286196627 1.0 True
74 14 17 5.910977627463022 0.8461207481731591 0.6687795177728063 0.12452036369759786 6 8.95305147071513 0.01159286549234958 0.10132041390926738 1.0 True
75 14 18 8.548241724186095 27.045287573188347 0.6196476790536196 0.12845393182350578 6 17.805505225184664 0.010070495463159433 0.13041926369959572 1.0 True
76 14 19 9.249254057266956 79.47127430600668 0.5845660749506904 0.12584132662356784 6 30.335272352492872 0.016830803029542436 0.2574761671757917 1.0 True
77 15 16 3.7301261399251735 25.84341815633164 0.7032674772036475 0.11602216892855616 6 22.696890954829907 0.0009988867448423883 0.09036168134112703 1.0 True
78 15 17 2.2049738368271745 24.438886412582093 0.7489009568140678 0.11923375870790391 6 6.944925131742929 0.02582458487951314 0.095039680889365 1.0 True
79 15 18 4.7000039832559155 3.452521908779401 0.7165438713998661 0.11783922962071142 6 19.334165264487982 0.009354386824208725 0.17478401338848865 1.0 True
80 15 19 5.238340351181781 55.87850864159773 0.6924358974358974 0.11506895717743916 6 20.41712608461488 0.012497900854287812 0.3255615001296644 1.0 True
81 15 20 2.0380809160783224 128.5450420215843 0.6751867872591427 0.11901811643083532 6 27.381712286843808 0.007126007329084919 0.09473387178666172 1.0 True
82 16 17 3.368526196086246 50.282304568913744 0.6284461152882206 0.1113618900510703 6 25.184005110635376 0.015370940622322818 0.07520125332617648 1.0 True
83 16 18 3.5240348999326185 22.39089624755224 0.6921281286473868 0.10919235768364483 6 39.42922894015919 0.005355462743716769 0.03654303027439279 1.0 True
84 16 19 2.146829294717985 30.035090485266103 0.8880188913745961 0.0968346861370537 6 11.70909430755386 0.006745004702225108 0.04851926363283949 1.0 True
85 16 20 4.728364693236263 102.70162386525263 0.6307301587301587 0.12362874516637085 6 35.70048091760535 0.007128919591300971 0.10475436005961275 1.0 True
86 16 21 10.094336026449797 153.311489607007 0.40465918895599656 0.14174574821871383 6 57.2667389243621 0.01442382622115287 0.2621394134233604 1.0 True
87 17 18 2.640403049812329 27.891408321361506 0.7665916015366274 0.11462276561713726 6 9.759321661407776 0.003676908482849856 0.03455537183665902 1.0 True
88 17 19 3.933985934417215 80.31739505417984 0.645738203957382 0.11467441399973681 6 29.93502749301381 0.002658154417044598 0.03997293849541112 1.0 True
89 17 20 4.2254212089887 152.98392843416656 0.6031375599636977 0.12542519992547976 6 27.708613247812377 4.543486491493239 1.5708713272202308 0.5 False forward_reverse_translation;forward_reverse_rotation
90 17 21 9.21529677253323 156.40620582407942 0.4672368255565338 0.13751533766984328 6 32.19730123852794 0.13403735422224766 1.1805230479043929 0.5 False forward_reverse_translation;forward_reverse_rotation
91 17 22 11.781237287606983 150.82966218116434 0.4255952380952381 0.1417851723285674 6 38.71155142811069 0.01638337185583796 0.14112774930143776 1.0 True
92 18 19 2.4460967931915643 52.425986732818345 0.6999343401181878 0.10876407223187468 6 36.919102980185954 0.0029722527816906422 0.028553700929610463 1.0 True
93 18 20 6.593931011285688 125.09252011280485 0.5796614723267061 0.12778176089815 6 32.46060078153023 0.0849644734357879 0.24110896992060843 1.0 False forward_reverse_translation
94 18 21 11.793089868757727 175.70238585456048 0.42345743296016664 0.14463219993853524 6 41.677643204951686 0.008594432490503082 0.044791316017877565 1.0 True
95 18 22 14.40479158879449 178.72107050256645 0.35586914688903143 0.14801012931814386 6 118.81863294454718 0.05364920712348454 0.15560820359743163 1.0 True
96 18 23 11.744734461596845 164.11569663484164 0.3967277486910995 0.14073241205403209 6 67.8157115569044 0.0379980141073483 0.09667096210106078 1.0 True
97 19 20 6.650720121741557 72.6665333799865 0.6260444787247719 0.12668491637849374 6 25.97982149253148 0.022781715838261912 0.19834674514582162 1.0 True
98 19 21 12.053580264031138 123.27639912174077 0.3952850193339154 0.1421446220617431 6 61.553005632745744 0.01796074748252817 0.16263425635632095 1.0 True
99 19 22 14.836246959975925 128.85294276465592 0.3237392373923739 0.15069330869045588 6 75.70505048512227 0.2579934626807855 1.1847082611411373 1.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation
100 19 23 11.740810561661805 143.45831663234065 0.37768025078369905 0.1432975121556299 6 38.93505210462392 0.07411982241929344 0.4458370864472602 1.0 True
101 19 24 11.093516369446519 177.87107120383473 0.43504761904761907 0.13924446561169374 6 41.93660606132572 0.04258350776081339 0.7879276702809055 0.5 False forward_reverse_rotation
102 20 21 5.40286046809103 50.60986574175429 0.6607188376242672 0.12214671257866079 6 14.082798146569438 0.01471691635641488 0.0747935794181239 1.0 True
103 20 22 8.200956565000565 56.18640938466938 0.576328684508104 0.13245799460807672 6 16.034011252149995 0.02165175771302933 0.4612076789897289 1.0 True
104 20 23 5.175118275082073 70.79178325235415 0.6451819579702717 0.12102263178677423 6 12.511468996120387 0.018249896901851893 0.12115759970382113 1.0 True
105 20 24 4.710308396362637 105.20453782384023 0.7383177570093458 0.11441422046802802 6 12.152737785424229 0.009011279667019194 0.06430292411421322 1.0 True
106 20 25 8.226491803107123 68.57831319871164 0.6182822702159718 0.12791257682460647 6 29.104161441720954 0.014703530260578728 0.32055535743282454 1.0 True
107 21 22 2.8644847627909416 5.57654364291509 0.7740636818348177 0.11564788773425824 6 12.209574213097333 0.0065184199045192235 0.06991965908247275 1.0 True
108 21 23 1.2936223973175418 20.18191751059984 0.862223327530465 0.10307116830776755 6 11.124499228103288 0.0026785916987678697 0.01879221122979615 1.0 True
109 21 24 2.3128500583741403 54.59467208208593 0.7795265676152102 0.11182158240581822 6 15.934013426145448 0.003491995501356654 0.0374256510953578 1.0 True
110 21 25 3.793272903723766 17.968447456957346 0.7340892465252378 0.12002239056891174 6 16.57216298005221 0.037735058311297705 0.2878144229712423 1.0 True
111 21 26 4.631707245574304 60.912845043424184 0.7147358216190014 0.11997311573294966 6 17.372315653280065 0.012351932089198563 0.10379217190868555 1.0 True
112 22 23 3.7194009250537223 14.605373867684753 0.7408951563458002 0.11726725109752717 6 12.610213323576254 0.009206244303295173 0.09601986001481369 1.0 True
113 22 24 4.786117710081478 49.01812843917083 0.6936064556176288 0.11914624513148218 6 13.20338761495324 0.006090737153726605 0.027557138417491776 1.0 True
114 22 25 2.3747421598149763 12.391903814042255 0.7356584485868911 0.11474070552638106 6 16.673633938013044 0.0019617091597581428 0.011643770804738128 1.0 True
115 22 26 2.381693697571969 55.336301400509086 0.7422594142259414 0.11765221626900083 6 18.880420396501957 0.007814937371704293 0.039342553564881436 1.0 True
116 22 27 2.9603952927690247 80.62067670375279 0.7254925373134329 0.11870181965154768 6 21.309389349405485 0.018241823604788005 0.08279236858582419 1.0 True
117 23 24 1.0880644725336985 34.41275457148609 0.7884810126582279 0.10662565692629543 6 10.611199681165669 0.001882338148224756 0.020239211377623818 1.0 True
118 23 25 5.033935954106079 2.213470053642494 0.6843137254901961 0.12171091934898426 6 15.150809064137142 0.014639828785635214 0.2046006298281892 1.0 True
119 23 26 5.765534437288107 40.730927532824346 0.6772228989037758 0.12237954766026346 6 16.382334072569904 0.04518647006837157 0.20367965681897066 1.0 True
120 23 27 6.392376191887118 66.01530283606805 0.6637469586374696 0.12340951265232122 6 20.64383986204732 0.010626193556947957 1.1817079481882757 1.0 False forward_reverse_rotation
121 23 28 6.631292861991925 85.8775990418248 0.6720351390922401 0.12122778564083748 6 19.20657067904157 0.043540468687755365 0.26051478047218213 1.0 True
122 24 25 6.097212810998921 36.62622462512857 0.6764267990074442 0.12367636388755719 6 21.50176872604179 0.035816405766439664 0.2046504337319023 1.0 True
123 24 26 6.852918693116795 6.318172961338249 0.6524044389642417 0.12740232296321938 6 21.753053297058692 0.062038641373543625 0.12012273822228971 1.0 True
124 24 27 7.47982907414204 31.60254826458195 0.6546798029556651 0.12425657449629145 6 26.295019203914197 0.05403266260962086 0.2126374478532415 1.0 True
125 24 28 7.71913193400284 51.4648444703387 0.6614377470355731 0.12010155595807545 6 20.98500095492876 0.049490676797893776 0.25138526875505346 1.0 True
126 24 29 7.213852273638132 93.73390958258973 0.6620579958399608 0.12331341986261203 6 28.045882177977884 0.08010108996241684 0.7934458070763889 1.0 False forward_reverse_translation;forward_reverse_rotation
127 25 26 1.2882746074869595 42.944397586466835 0.9137395459976105 0.08148336624555251 6 16.56293455758718 0.0032405549728505064 0.006669174585592186 1.0 True
128 25 27 1.7666235781584831 68.22877288971053 0.8596658711217183 0.1096145882030974 6 22.188153380460985 0.010624789877375215 0.04475651255674721 1.0 True
129 25 28 2.1807182972588706 88.09106909546726 0.8839157491622786 0.10490699814192792 6 16.17217948348072 0.00283419137499405 0.01585308444597649 1.0 True
130 25 29 1.118287177357716 130.36013420771832 0.7857227558401518 0.10954358768244267 6 20.132087187715307 0.003247718742817276 0.01654235380830592 1.0 True
131 25 30 5.200639419572971 139.6773015481418 0.05061061531235322 0.1582745227634446 6 186.52424080569466 2.4401001990983833 2.63047633237589 0.0 False heldout_inlier_ratio;forward_reverse_translation;forward_reverse_rotation;multistart_instability
132 26 27 0.6269948654714946 25.284375303243706 0.9188612099644128 0.07520973241900301 6 20.799051531446562 0.0009920873307779914 0.005485007138529723 1.0 True
133 26 28 0.9431372257108486 45.14667150900044 0.9182726623840114 0.07611768518866212 6 21.99541958409829 0.004984978187527545 0.01173507098896779 1.0 True
134 26 29 1.129925637779203 87.41573662125148 0.7856890251090416 0.10851393061782179 6 24.280602674778656 0.002586732426991948 0.12205883610743135 1.0 True
135 26 30 4.786676837961511 177.3783008654109 0.7634835395750642 0.10495724850674527 6 34.80647378548578 0.008489213184554775 0.021733210949123293 1.0 True
136 26 31 5.900105669197046 156.01119868987135 0.7374054682955207 0.1073752166304431 6 38.310555401782544 3.545322953478412 6.459518815762061 1.0 False forward_reverse_translation;forward_reverse_rotation
137 27 28 0.44809323479571145 19.862296205756735 0.9281131178707225 0.07220943509634768 6 20.093208902964978 0.0023003913248606234 0.001591751329336308 1.0 True
138 27 29 1.160064136065596 62.13136131800778 0.7871188037207112 0.10966659884725236 6 24.009650087098436 0.005134403698947268 0.02434844099203523 1.0 True
139 27 30 4.25412615059095 152.09392556214777 0.7922108208955224 0.10147035321534553 6 32.52026042532504 2.795897032209197 3.237329131939042 1.0 False forward_reverse_translation;forward_reverse_rotation
140 27 31 5.542871649427442 178.70442600700352 0.7592097617664149 0.10539218018667602 6 48.70669958381899 0.0020939062619997405 0.027400662783563425 1.0 True
141 27 32 4.8829350360277 138.47370648510565 0.7480278422273782 0.10408734715846867 6 42.21510199826003 0.004407463145306061 0.03490543724836902 1.0 True
142 28 29 1.5995723610319212 42.26906511225104 0.787814381863266 0.10901449493832843 6 25.913625419675043 0.01570175790237609 0.03569660498137675 1.0 True
143 28 30 4.295353381127667 132.23162935639104 0.7791159962581852 0.10438560755009844 6 36.501677925790155 0.01170149615735483 0.047047156693309715 1.0 True
144 28 31 5.754426930327516 158.8421298011293 0.7449015266285981 0.10668967013687296 6 48.04636971250818 0.024421374377245158 0.6810283060803514 0.5 False forward_reverse_rotation
145 28 32 5.013331477001236 158.33600269086247 0.7309213587715216 0.1081318944415262 6 52.23779663520043 0.10324080390042788 0.9479198721286788 1.0 False forward_reverse_translation;forward_reverse_rotation
146 28 33 5.317102997899902 67.05379893079937 0.6692465836255895 0.10871806386783629 6 54.67376255043738 0.13259351588266985 0.659391929056215 1.0 False forward_reverse_translation;forward_reverse_rotation
147 29 30 4.099530130205247 89.96256424413995 0.7320662880982732 0.10929719051930432 6 30.745355096911158 0.005463604154015333 0.018583483487870766 1.0 True
148 29 31 4.890018768530818 116.57306468887772 0.7254562254562255 0.11323336570178015 6 49.09678922599757 0.0050777995851252426 0.07265894091769333 1.0 True
149 29 32 4.464737187763289 159.39493219688632 0.695837657096737 0.10999820041072961 6 72.25486343140591 0.011220553177198233 0.14599088546526143 1.0 True
150 29 33 4.34670323578768 109.32286404305042 0.6382698298586149 0.11215583949685817 6 72.66655529463955 0.018977478007060265 0.05615608666616428 1.0 True
151 30 31 2.3862917603439455 26.61050044473775 0.8286237272623269 0.0964659694513182 6 41.03513305025223 0.018905314487385798 0.08632503464137033 1.0 True
152 30 32 1.1507634071714652 69.43236795274659 0.8065326633165829 0.09815063400019142 6 35.25635856167173 0.007341509941520892 0.023973741904832375 1.0 True
153 30 33 2.4361832484951105 160.7145717128102 0.6965239055641239 0.10032655671840386 6 47.08947384000088 2.6257249086936962 3.1197630566421646 1.0 False forward_reverse_translation;forward_reverse_rotation
154 31 32 1.2514382602180638 42.82186750800885 0.8146841206602162 0.09914628416022417 6 34.33173181492779 0.06936877058296162 0.45703051311645637 1.0 True
155 31 33 0.641507519046697 134.10407126807203 0.7551430598250177 0.1003246191461096 6 28.537349904719164 0.005559091155811048 0.0330053182501105 1.0 True
156 32 33 1.4370687242949811 91.2822037600631 0.043432078366576185 0.1661924920133195 6 88.4956235178996 0.946171384319174 3.5092968853566924 0.0 False heldout_inlier_ratio;heldout_inlier_rmse;forward_reverse_translation;forward_reverse_rotation;multistart_instability
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,489 +0,0 @@
{
"schema_version": 2,
"success": true,
"message": "`ftol` termination condition is satisfied.",
"convention": "T_body_lidar maps raw LiDAR points into rear-axle body frame",
"equation": "A_ij X = X B_ij",
"measured_extrinsic_used_as_initial": false,
"translation_m": [
1.2944883843818025,
-0.0008838118010001346,
0.7058442435591689
],
"rotation_rpy_deg_xyz": [
-0.7159364624845366,
1.3526878670674298,
-0.975972089807914
],
"quaternion_xyzw": [
-0.006146489369094902,
0.011856702812467925,
-0.008442354678834595,
0.999875175166545
],
"matrix_4x4": [
[
0.9995762904917872,
0.016736847531056993,
0.02381422728959523,
1.2944883843818025
],
[
-0.01702835592221438,
0.9997818946318248,
0.01209124728823738,
-0.0008838118010001346
],
[
-0.023606663916460907,
-0.01249164125009491,
0.9996432785337048,
0.7058442435591689
],
[
0.0,
0.0,
0.0,
1.0
]
],
"estimation": {
"stations": 34,
"pairs": 57,
"residuals": {
"pairs": 57,
"translation_m": {
"rms": 0.1544348214275169,
"median": 0.0705120546692258,
"p90": 0.2796247931030114,
"p95": 0.38830732511177307,
"max": 0.42173620405868173
},
"rotation_deg": {
"rms": 1.6127366820434261,
"median": 0.7802394472449041,
"p90": 2.0427026963913084,
"p95": 4.139878905679253,
"max": 4.927876933555878
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.04921586129986855,
"rotation_deg": 0.7802394472449041
},
{
"pair_index": 1,
"translation_m": 0.06022467069161827,
"rotation_deg": 0.8076387678918286
},
{
"pair_index": 2,
"translation_m": 0.05733334031955927,
"rotation_deg": 0.3801287351167008
},
{
"pair_index": 3,
"translation_m": 0.10178704595686662,
"rotation_deg": 0.23294290596786388
},
{
"pair_index": 4,
"translation_m": 0.0950710667744258,
"rotation_deg": 0.8441747973849835
},
{
"pair_index": 5,
"translation_m": 0.1482159791451249,
"rotation_deg": 0.681326797444399
},
{
"pair_index": 6,
"translation_m": 0.02325894326521952,
"rotation_deg": 0.6033104606942519
},
{
"pair_index": 7,
"translation_m": 0.07474087499522525,
"rotation_deg": 0.6507288891948437
},
{
"pair_index": 8,
"translation_m": 0.18825515016508942,
"rotation_deg": 0.26486292076967255
},
{
"pair_index": 9,
"translation_m": 0.04309283328904936,
"rotation_deg": 0.13788972833567684
},
{
"pair_index": 10,
"translation_m": 0.04634466299044426,
"rotation_deg": 0.727856852897771
},
{
"pair_index": 11,
"translation_m": 0.043890799917503956,
"rotation_deg": 0.7033085139548623
},
{
"pair_index": 12,
"translation_m": 0.06569153273548976,
"rotation_deg": 0.8215251942968772
},
{
"pair_index": 13,
"translation_m": 0.05085505830053342,
"rotation_deg": 0.5703942163369722
},
{
"pair_index": 14,
"translation_m": 0.08080041374696341,
"rotation_deg": 0.7042489825699358
},
{
"pair_index": 15,
"translation_m": 0.028283768727744116,
"rotation_deg": 0.5815552521395532
},
{
"pair_index": 16,
"translation_m": 0.034152028863445455,
"rotation_deg": 1.0076363281960339
},
{
"pair_index": 17,
"translation_m": 0.10661935094245772,
"rotation_deg": 0.585736616100307
},
{
"pair_index": 18,
"translation_m": 0.0705120546692258,
"rotation_deg": 0.8052707169746115
},
{
"pair_index": 19,
"translation_m": 0.06442322486081886,
"rotation_deg": 2.1113003980243557
},
{
"pair_index": 20,
"translation_m": 0.058531034305082885,
"rotation_deg": 0.5873890947329841
},
{
"pair_index": 21,
"translation_m": 0.06915436202628812,
"rotation_deg": 0.4455496836075116
},
{
"pair_index": 22,
"translation_m": 0.1484005911609239,
"rotation_deg": 1.9969708953026104
},
{
"pair_index": 23,
"translation_m": 0.10429385187976488,
"rotation_deg": 0.12781289285231975
},
{
"pair_index": 24,
"translation_m": 0.06859842051942554,
"rotation_deg": 0.3198403871694416
},
{
"pair_index": 25,
"translation_m": 0.037990236699121674,
"rotation_deg": 0.631070403868711
},
{
"pair_index": 26,
"translation_m": 0.03189885614531801,
"rotation_deg": 0.7541329389301039
},
{
"pair_index": 27,
"translation_m": 0.07672961622319935,
"rotation_deg": 1.5806114049925588
},
{
"pair_index": 28,
"translation_m": 0.069983101896218,
"rotation_deg": 0.4729689795147634
},
{
"pair_index": 29,
"translation_m": 0.016135065100391668,
"rotation_deg": 0.3789407761818106
},
{
"pair_index": 30,
"translation_m": 0.07432095926140471,
"rotation_deg": 1.8120862981058055
},
{
"pair_index": 31,
"translation_m": 0.17890921343127023,
"rotation_deg": 3.97184190714068
},
{
"pair_index": 32,
"translation_m": 0.2459042707502872,
"rotation_deg": 4.617881335971262
},
{
"pair_index": 33,
"translation_m": 0.06334407979243162,
"rotation_deg": 0.8238155509065317
},
{
"pair_index": 34,
"translation_m": 0.07743513463604834,
"rotation_deg": 4.0203782981062535
},
{
"pair_index": 35,
"translation_m": 0.15971289980951447,
"rotation_deg": 4.84466491195667
},
{
"pair_index": 36,
"translation_m": 0.13395086756218255,
"rotation_deg": 4.927876933555878
},
{
"pair_index": 37,
"translation_m": 0.06599998782040693,
"rotation_deg": 1.9960824610834838
},
{
"pair_index": 38,
"translation_m": 0.04503412561992633,
"rotation_deg": 1.279332716204477
},
{
"pair_index": 39,
"translation_m": 0.11215573119400024,
"rotation_deg": 0.5578231171630792
},
{
"pair_index": 40,
"translation_m": 0.05509905448014895,
"rotation_deg": 0.6608982729619334
},
{
"pair_index": 41,
"translation_m": 0.007272665876828039,
"rotation_deg": 1.2124341117031159
},
{
"pair_index": 42,
"translation_m": 0.055811383114362484,
"rotation_deg": 0.8153248357421402
},
{
"pair_index": 43,
"translation_m": 0.03138324591270751,
"rotation_deg": 1.2136591021205085
},
{
"pair_index": 44,
"translation_m": 0.13982233632280833,
"rotation_deg": 1.2089791291543672
},
{
"pair_index": 45,
"translation_m": 0.42173620405868173,
"rotation_deg": 1.126390973143559
},
{
"pair_index": 46,
"translation_m": 0.027936086071527602,
"rotation_deg": 0.5561027320483051
},
{
"pair_index": 47,
"translation_m": 0.08146548874814821,
"rotation_deg": 1.5984131745791201
},
{
"pair_index": 48,
"translation_m": 0.40597723810744263,
"rotation_deg": 1.3479854285502366
},
{
"pair_index": 49,
"translation_m": 0.3864154920341234,
"rotation_deg": 0.6215042157245596
},
{
"pair_index": 50,
"translation_m": 0.18945577362130134,
"rotation_deg": 0.596177211598774
},
{
"pair_index": 51,
"translation_m": 0.37813335218979344,
"rotation_deg": 1.0668602650100487
},
{
"pair_index": 52,
"translation_m": 0.330205576632098,
"rotation_deg": 0.40979383494055255
},
{
"pair_index": 53,
"translation_m": 0.39587465742237204,
"rotation_deg": 0.7934150366951904
},
{
"pair_index": 54,
"translation_m": 0.060998991546499626,
"rotation_deg": 0.9224390837063629
},
{
"pair_index": 55,
"translation_m": 0.0952510183208545,
"rotation_deg": 0.8616718556937568
},
{
"pair_index": 56,
"translation_m": 0.10976329201195999,
"rotation_deg": 0.5415573303416338
}
]
}
},
"ground": {
"planes": 34,
"body_origin_height_above_ground_m": 0.2335,
"formula": "d_lidar - (R_X n_lidar)^T t_X - body_height"
},
"linearized_one_sigma": {
"translation_m": [
0.006072210871275005,
0.0060852661675311025,
0.005465720025368553
],
"rotation_deg": [
0.06255688904352227,
0.06213349734715941,
0.13055508827073753
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"weighted_jacobian_condition_number": 6.040138286165465,
"solver_multistart": {
"runs": 12,
"candidates_relative_to_best": [
{
"cost": 324.2098227991519,
"success": true,
"translation_m": 5.570266299009551e-09,
"rotation_deg": 1.4455049406405054e-07
},
{
"cost": 324.20982279914983,
"success": true,
"translation_m": 0.0,
"rotation_deg": 0.0
},
{
"cost": 324.20982279915165,
"success": true,
"translation_m": 5.216823166795417e-09,
"rotation_deg": 1.973338877475283e-07
},
{
"cost": 324.20982279915034,
"success": true,
"translation_m": 1.3901066622882166e-09,
"rotation_deg": 6.335210062786435e-08
},
{
"cost": 324.20982279914995,
"success": true,
"translation_m": 3.578733410578741e-10,
"rotation_deg": 6.852733510041159e-09
},
{
"cost": 324.20982279914983,
"success": true,
"translation_m": 6.594966941115627e-10,
"rotation_deg": 2.2216701960527812e-08
},
{
"cost": 324.20982279914983,
"success": true,
"translation_m": 2.1650538139486925e-09,
"rotation_deg": 3.6255288379996055e-08
},
{
"cost": 324.2098227991501,
"success": true,
"translation_m": 1.5027981325208515e-09,
"rotation_deg": 6.326578543393082e-08
},
{
"cost": 324.20982279914983,
"success": true,
"translation_m": 6.094320168262204e-10,
"rotation_deg": 1.025130160040861e-08
},
{
"cost": 324.2098227991552,
"success": true,
"translation_m": 1.057266183614633e-08,
"rotation_deg": 3.643863231629731e-07
},
{
"cost": 324.20982279915063,
"success": true,
"translation_m": 3.9489601150102006e-09,
"rotation_deg": 1.359274031832874e-07
},
{
"cost": 324.20982279914983,
"success": true,
"translation_m": 6.276644321676319e-10,
"rotation_deg": 2.14493230752589e-08
}
]
},
"bootstrap": {
"runs": 100,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.003048001100427371,
0.0025869752895426976,
0.0014870952541001317,
0.09174691854497609,
0.06502786700039134,
0.11777557058586356
],
"p025": [
1.2892012505330883,
-0.0051467048024525786,
0.7035478241042927,
-0.8634755073850175,
1.2139289883714506,
-1.173046710195043
],
"p975": [
1.2997598841406142,
0.005003259375615847,
0.7090711194920217,
-0.48035430043405547,
1.4534667429791082,
-0.7593758945747364
]
}
}
-7
View File
@@ -1,7 +0,0 @@
# 跨批比较
- `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 只作为候选。
@@ -1,298 +0,0 @@
{
"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
}
]
}
}
@@ -1,43 +0,0 @@
{
"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
]
]
}
@@ -1,207 +0,0 @@
{
"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
}
]
}
}
+10 -16
View File
@@ -1,21 +1,15 @@
# 结果目录
# 当前车辆标定结果
本目录只归档轻量标定产物,不包含原始 dlog、rscap、逐帧 NPZ 或完整点云
本目录只保存当前车辆、当前传感器安装条件下的最终可交付结果;不保存历史车辆数据、原始采集包、点云帧或中间配准产物
| 目录 | 内容 | 使用建议 |
|---|---|---|
| `01_previous_two_batches/` | 第二批求解、第一批辅助复核的历史部署结果;含 Open3D、small_gicp、consensus B、质量和灵敏度文件 | 当前部署基线 |
| `02_data4_calibration/` | data4 的 Open3D、small_gicp、consensus B 和独立 X | 候选/稳定性证据 |
| `03_comparison/` | 两套 X 的 SE(3) 差以及互换批次后的 AX 残差 | 跨批判断依据 |
## 2026-08 车辆 / 27 个静止站点
最终部署文件是 `01_previous_two_batches/final_extrinsic_deployment.json``02_data4_calibration/final_extrinsic_data4.json` 不应在没有新增独立证据时覆盖它
目录 [`vehicle_20260808/`](vehicle_20260808/) 对应本机运行目录 `D:\data\rtk_lidar_run\outputs_vehicle_h19165`
常见文件:
- 外参:`final_T_RTK_lidar.json`
- 质量摘要:`summary.json`
- 坐标约定:`p_RTK = T_RTK_lidar · p_lidar`RTK 为车头向前坐标系(`HeadingOffsetDeg=-90`)。
- RTK 参考点高度:1.9165 mANT1 相位中心)。
- 质量:27 个站点、20 个共识运动对、平移 RMS 0.07116 m、旋转 RMS 0.98209°。
- `B_*_estimation.npz`:后端原始运动对 B
- `B_*_quality.json/csv`:配准和 Hessian/信息矩阵质量。
- `B_*_refined.npz`X 无关筛选后的 B。
- `B_*_consensus.npz``consensus/B_consensus.npz`:双后端认可的 B。
- `extrinsic*.json`:由对应 B 和地面约束求出的 X。
- `*_check.json`:把给定 X 应用于另一批 B 的残差,不是重新求 X。
- `ground_planes*.csv`:每站地面平面参数。
这些文件记录的是 host 时间关联版本的现有最终结果。后续采用 RTK 测量时间重新导出后,应写入新的结果目录,不能覆盖本目录
@@ -0,0 +1,337 @@
{
"schema_version": 1,
"success": true,
"convention": "T_RTK_lidar maps raw LiDAR points into the RTK navigation frame",
"equation": "A_RTK_ij X = X B_LiDAR_ij",
"frames": {
"RTK": {
"origin": "GGA positioning reference point; confirm ANT1/reference antenna in receiver configuration",
"x_axis": "vehicle forward after applying the configured G90 heading offset",
"y_axis": "left of the RTK X/baseline axis (not necessarily vehicle-left)",
"z_axis": "up",
"yaw_enu_deg": "90 - (rawHeadingDeg + -90)",
"frame_mode": "vehicle_forward_heading_offset"
},
"LiDAR": {
"description": "raw Helios sensor frame from points_raw polar decode",
"x_axis": "+X at azimuth 0° (forward when aviation connector faces vehicle rear)",
"y_axis": "+Y at azimuth +90° (left when +X is vehicle-forward)",
"z_axis": "up",
"origin_note": "optical/center per Helios manual; mounting height includes 63.5 mm base offset when deriving mechanical ΔZ"
}
},
"backend": "consensus",
"measured_lidar_extrinsic_used_as_initial": true,
"solver_initial_extrinsic": "D:\\First-dev-dept\\calibration-rtk-run\\run\\rtk_lidar_mechanical_initial.json",
"body_heading_offset_deg": -90.0,
"body_heading_offset_used": true,
"body_antenna_lever_xy_used": false,
"translation_m": [
0.21782224963960972,
-0.41134780227275347,
0.1065423366878719
],
"rotation_rpy_deg_xyz": [
0.06623859235262805,
0.8096624730962496,
-0.5513220563826681
],
"quaternion_xyzw": [
0.00061201333859398,
0.007062715262034178,
-0.004815137247499642,
0.9999632782988027
],
"coordinate_contract_audit": {
"status": "no_near_180_degree_axis_conflict",
"requires_physical_axis_confirmation": false,
"mechanical_initial_path": "D:\\First-dev-dept\\calibration-rtk-run\\run\\rtk_lidar_mechanical_initial.json",
"mechanical_self_consistency": {
"baseline_points": "vehicle_right",
"frame_mode": "vehicle_forward_heading_offset",
"heading_offset_deg": -90.0,
"consistent": true,
"issues": []
},
"solution_vs_declared_baseline_side": {
"baseline_points": "vehicle_right",
"solution_yaw_deg": -0.5513220563826681,
"expected_yaw_deg": 0.0,
"yaw_error_deg": 0.5513220563826735,
"xy_error_m": 0.007516661287052368,
"z_error_m": 0.0280423356878719,
"mixed_translation_rotation_inheritance": false,
"near_expected_pose": true
},
"solution_relative_to_mechanical_initial": {
"translation_m": 0.029032271487700816,
"rotation_deg": 0.9820426535863694,
"delta_matrix_4x4": [
[
0.9998538650128304,
0.009638565806830942,
0.014119017957784103,
0.006962889639609726
],
[
-0.009621275903042714,
0.9999528797859223,
-0.0012919976154994906,
0.002831671727246521
],
[
-0.014130805670674627,
0.0011559658421926345,
0.9998994869856016,
0.0280423356878719
],
[
0.0,
0.0,
0.0,
1.0
]
]
},
"note": "No automatic 180-degree correction was applied. Confirm static GNHPR left/right vs vehicle heading and Helios +X vs vehicle forward before deployment."
},
"matrix_4x4": [
[
0.9998538650128304,
0.009638565806830942,
0.014119017957784103,
0.21782224963960972
],
[
-0.009621275903042714,
0.9999528797859223,
-0.0012919976154994906,
-0.41134780227275347
],
[
-0.014130805670674627,
0.0011559658421926345,
0.9998994869856016,
0.1065423366878719
],
[
0.0,
0.0,
0.0,
1.0
]
],
"quality": {
"stations": 27,
"pairs": 20,
"residuals": {
"pairs": 20,
"translation_m": {
"rms": 0.07116027693011169,
"median": 0.048258124379040895,
"p90": 0.10707349630410129,
"p95": 0.12100345665884242,
"max": 0.1859157912711514
},
"rotation_deg": {
"rms": 0.9820870524210346,
"median": 0.6015253089423158,
"p90": 1.626986719630708,
"p95": 1.7485896823567941,
"max": 2.6898815510329674
},
"per_pair": [
{
"pair_index": 0,
"translation_m": 0.10590532722733068,
"rotation_deg": 0.5565962122599133
},
{
"pair_index": 1,
"translation_m": 0.11758701799503664,
"rotation_deg": 0.36543717366192036
},
{
"pair_index": 2,
"translation_m": 0.07568813061789224,
"rotation_deg": 1.6990480050580474
},
{
"pair_index": 3,
"translation_m": 0.07918615709103373,
"rotation_deg": 0.33723851079591255
},
{
"pair_index": 4,
"translation_m": 0.04618587731787657,
"rotation_deg": 0.21044665580544528
},
{
"pair_index": 5,
"translation_m": 0.1859157912711514,
"rotation_deg": 2.6898815510329674
},
{
"pair_index": 6,
"translation_m": 0.015032558607699278,
"rotation_deg": 0.2283712127949818
},
{
"pair_index": 7,
"translation_m": 0.013237326674396453,
"rotation_deg": 1.6189799101387812
},
{
"pair_index": 8,
"translation_m": 0.07003654121179845,
"rotation_deg": 0.6464544056247182
},
{
"pair_index": 9,
"translation_m": 0.093450766078183,
"rotation_deg": 0.6476769159531274
},
{
"pair_index": 10,
"translation_m": 0.015054656507824072,
"rotation_deg": 1.041955302231996
},
{
"pair_index": 11,
"translation_m": 0.02338150242985638,
"rotation_deg": 0.9212619385214977
},
{
"pair_index": 12,
"translation_m": 0.01577916809950981,
"rotation_deg": 0.5021648028537498
},
{
"pair_index": 13,
"translation_m": 0.05033037144020521,
"rotation_deg": 0.31352985458971655
},
{
"pair_index": 14,
"translation_m": 0.059761151158357104,
"rotation_deg": 0.8078349560587313
},
{
"pair_index": 15,
"translation_m": 0.04160156756834453,
"rotation_deg": 0.32936437427192145
},
{
"pair_index": 16,
"translation_m": 0.02424387832291359,
"rotation_deg": 0.430799739443549
},
{
"pair_index": 17,
"translation_m": 0.05938006964566194,
"rotation_deg": 0.3855347569405268
},
{
"pair_index": 18,
"translation_m": 0.003922740066294881,
"rotation_deg": 0.8803664894801937
},
{
"pair_index": 19,
"translation_m": 0.02258390614293418,
"rotation_deg": 0.9489255319885953
}
]
},
"weighted_jacobian_condition_number": 7.551077537197385,
"linearized_one_sigma": {
"translation_m": [
0.01109415838733884,
0.011043247019191056,
0.0049617743728656676
],
"rotation_deg": [
0.08809558088476348,
0.08691570892756702,
0.13552099560800782
],
"warning": "conditional local estimate; bootstrap is the primary stability check"
},
"bootstrap": {
"runs": 200,
"order": [
"x_m",
"y_m",
"z_m",
"roll_deg",
"pitch_deg",
"yaw_deg"
],
"std": [
0.006235825930578342,
0.004851737742140203,
0.0004474159829207979,
0.07186455153709871,
0.11762318545143821,
0.061763211598034336
],
"p025": [
0.20955504469154063,
-0.4174678620205485,
0.10568919463688603,
-0.06202286115194262,
0.5207464314096704,
-0.6639417037512721
],
"p975": [
0.23211472114546824,
-0.4001091835786546,
0.1074353326322909,
0.23746760471402314,
1.0462704287205609,
-0.43455346485967655
]
}
},
"z_constraint": {
"observable_from_planar_AX_XB": false,
"method": "LiDAR ground planes plus externally supplied RTK reference-point height above ground",
"rtk_reference_height_above_ground_m": 1.9165,
"warning": "z is conditional on the supplied RTK antenna height; it is not independently identified by planar Ackermann motion"
},
"important_limit": "AX residual and bootstrap quantify internal consistency, not independent centimetre-grade absolute certification",
"selection": {
"recommended": true,
"reason": "Uses only motion pairs accepted independently by both Open3D GICP and small_gicp",
"open3d_vs_small_gicp": {
"translation_m": 0.00312519750472982,
"rotation_deg": 0.11907006217018351,
"delta_matrix_4x4": [
[
0.9999996872332217,
-0.00030752729270551075,
-0.0007286703114418758,
0.000533303946557151
],
[
0.00030892706731572284,
0.9999981058814015,
0.0019216653392719056,
-0.002909732881513971
],
[
0.0007280779667146176,
-0.0019218898442212235,
0.9999978881187204,
0.001007919095162138
],
[
0.0,
0.0,
0.0,
1.0
]
]
}
}
}
+50
View File
@@ -0,0 +1,50 @@
{
"final": {
"translation_m": [
0.21782224963960972,
-0.41134780227275347,
0.1065423366878719
],
"rotation_rpy_deg_xyz": [
0.06623859235262805,
0.8096624730962496,
-0.5513220563826681
],
"pairs": 20,
"translation_rms_m": 0.07116027693011169,
"rotation_rms_deg": 0.9820870524210346,
"condition_number": 7.551077537197385,
"coordinate_contract_status": "no_near_180_degree_axis_conflict",
"recommended_for_deployment": true
},
"backend_difference": {
"translation_m": 0.00312519750472982,
"rotation_deg": 0.11907006217018351,
"delta_matrix_4x4": [
[
0.9999996872332217,
-0.00030752729270551075,
-0.0007286703114418758,
0.000533303946557151
],
[
0.00030892706731572284,
0.9999981058814015,
0.0019216653392719056,
-0.002909732881513971
],
[
0.0007280779667146176,
-0.0019218898442212235,
0.9999978881187204,
0.001007919095162138
],
[
0.0,
0.0,
0.0,
1.0
]
]
}
}
+64 -19
View File
@@ -1,27 +1,72 @@
# run
# run目录
本目录是 PowerShell 运行入口;完整流程、参数解释、验收方法和代码职责统一见仓库根目录 `README.md`
根 README 含完整复现与本次结果说明;这里只列入口职责
| 脚本 | 使用时机 |
| 脚本 | 用途 |
|---|---|
| `export_legacy_stations.ps1` | 第一、第二批式逐站 dlog 导出。 |
| `export_multisensor_stations.ps1` | LiDAR dlog + 独立 RTK/IMU rscap 导出和时间关联。 |
| `prepare_legacy_dataset.ps1` | 旧式导出结果生成 prepared。 |
| `prepare_multisensor_dataset.ps1` | 多传感器 combined 结果生成 prepared。 |
| `run_single_dataset.ps1` | 单批数据运行 small_gicp、Open3D、consensus 和 X 求解。 |
| `run_all.ps1` | 第二批求解、第一批辅助复核的历史流程。 |
| `run_consensus_finish.ps1` | 从已有两个后端 B 重做 consensus。 |
| `run_sensitivity_scan.ps1` | 指定 Pair 的外参角度灵敏度扫描。 |
| `view_result.ps1` | 传入 frames、B、X 查看 3D 配准及增量。 |
| `run_full_pipeline.ps1` | 站目录导出 `combined/` 后跑到 `T_RTK_lidar` |
| `export_multisensor_stations.ps1` | 薄封装:`tools/export_raw_to_combined.py` |
| `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 |
最常用的 3D 入口:
## 默认参数(匹配当前约 2 m 车顶雷达 / 车头向前)
| 参数 | 默认 |
|---|---|
| `HeadingOffsetDeg` | `-90`(车头向前;主从装反、基线朝右) |
| `GroundZMin/Max` | `-2.5` / `-1.5` |
| `ExpectedStations` | `27` |
| `MinStations` | `20` |
| `RtkReferenceHeightAboveGroundM` | **无默认,必填**(本车 1.9165 |
pair 注册**不传** `--initial-extrinsic`
## 原始 → combined
站目录:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\run\view_result.ps1" `
-Frames "D:\你的数据目录\prepared\frames_all" `
-Pairs "D:\你的结果目录\B_consensus.npz" `
-Extrinsic "D:\你的结果目录\extrinsic.json" `
-PairIndex 0
python tools\export_raw_to_combined.py --stations-root ... --rtk-rscap ... --imu-rscap ... --out ... --overwrite
```
`frames_all` 必须与生成 B 时的站点顺序一致。
- `-TimeBasis device_gnss`(默认):设备时 ↔ GNSS
- `-TimeBasis host`:主机接收时间
G90 连续录制 + 站时间窗:
```powershell
python tools\export_g90_h32_windows_to_combined.py `
--segments-csv <rtk_lidar_station_segments.csv> `
--lidar-dlog <dump_1.zip> --lidar-dlog <dump_2.zip> `
--rtk-rscap <g90_1.rscap> --rtk-rscap <g90_2.rscap> `
--out <output_root> --expected-stations 27 --frame-stride 5
```
可加 `--reuse-export` 续跑。
## 已有 combined 复现本次结果
```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_vehicle_h19165" `
-OutputRoot "D:\data\rtk_lidar_run\outputs_vehicle_h19165" `
-RtkReferenceHeightAboveGroundM 1.9165 `
-HeadingOffsetDeg -90 `
-ExpectedStations 27 `
-GroundZMin -2.5 -GroundZMax -1.5
```
## 可视化本次结果
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$Repo\run\view_result.ps1" `
-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
```
-34
View File
@@ -1,34 +0,0 @@
param(
[Parameter(Mandatory = $true)][string]$DataRoot,
[Parameter(Mandatory = $true)][string]$OutputRoot,
[string]$LidarObject = "frontlidar",
[string]$Timezone = "+08:00",
[string[]]$StationNames = @(),
[int]$Stride = 1,
[double]$RtkMaxDtMs = 150.0
)
$ErrorActionPreference = "Stop"
$Repo = Split-Path -Parent $PSScriptRoot
$Exporter = Join-Path $Repo "tools\frontlidar_dlog_export.py"
if (-not (Test-Path -LiteralPath $DataRoot)) { throw "DataRoot does not exist: $DataRoot" }
if ($Stride -lt 1) { throw "Stride must be at least 1" }
if ($StationNames.Count -gt 0) {
$Stations = @($StationNames | ForEach-Object { Get-Item -LiteralPath (Join-Path $DataRoot $_) })
} else {
$Stations = @(Get-ChildItem -LiteralPath $DataRoot -Directory | Where-Object {
(Test-Path -LiteralPath (Join-Path $_.FullName "dobject")) -and
(Test-Path -LiteralPath (Join-Path $_.FullName "dobject_recording"))
} | Sort-Object Name)
}
if ($Stations.Count -eq 0) { throw "No station directory containing dobject and dobject_recording was found" }
New-Item -ItemType Directory -Force -Path $OutputRoot | Out-Null
foreach ($Station in $Stations) {
$Out = Join-Path $OutputRoot $Station.Name
Write-Host "[legacy station $($Station.Name)]"
& python $Exporter --dlog $Station.FullName --out $Out --object $LidarObject --format npz `
--timezone $Timezone --stride $Stride --compress --rtk-sidecars --write-reports --resume `
--rtk-max-dt-ms $RtkMaxDtMs
if ($LASTEXITCODE -ne 0) { throw "Export failed for station $($Station.Name)" }
}
Write-Host "Exported stations: $($Stations.Count)"
+27 -58
View File
@@ -4,86 +4,55 @@ param(
[Parameter(Mandatory = $true)][string]$RtkCapture,
[Parameter(Mandatory = $true)][string]$ImuCapture,
[string]$LidarObject = "frontlidar",
[string]$LidarCaptureName = "h32.rscap",
[string]$Timezone = "+08:00",
[string[]]$StationNames = @(),
[int]$Stride = 1,
[double]$RtkMaxDtMs = 150.0,
[double]$ImuBeforeMs = 100.0,
[double]$ImuAfterMs = 100.0,
[ValidateSet("device_gnss", "host")][string]$TimeBasis = "device_gnss",
[switch]$SkipLidarExport,
[switch]$SkipSerialParsing
)
$ErrorActionPreference = "Stop"
$RepoRoot = Split-Path -Parent $PSScriptRoot
$Exporter = Join-Path $RepoRoot "tools\frontlidar_dlog_export.py"
$Builder = Join-Path $RepoRoot "tools\build_multisensor_npz.py"
$Parser = Join-Path $RepoRoot "tools\rscap_v2\parse_rtk_imu_v2.py"
$Auditor = Join-Path $RepoRoot "tools\rscap_v2\audit_capture_v2.py"
$ExportRoot = Join-Path $OutputRoot "export"
$ParsedRoot = Join-Path $OutputRoot "parsed"
$CombinedRoot = Join-Path $OutputRoot "combined"
function Run-Python {
param([string]$Stage, [string[]]$Arguments)
Write-Host "[$Stage]"
& python @Arguments
if ($LASTEXITCODE -ne 0) {
throw "$Stage failed with Python exit code $LASTEXITCODE"
}
}
$Exporter = Join-Path $RepoRoot "tools\export_raw_to_combined.py"
foreach ($Path in @($DataRoot, $RtkCapture, $ImuCapture)) {
if (-not (Test-Path -LiteralPath $Path)) { throw "Input does not exist: $Path" }
}
if ($Stride -lt 1) { throw "Stride must be at least 1" }
if ($StationNames.Count -gt 0) {
$Stations = @($StationNames | ForEach-Object { Get-Item -LiteralPath (Join-Path $DataRoot $_) })
} else {
$Stations = @(Get-ChildItem -LiteralPath $DataRoot -Directory | Where-Object {
(Test-Path -LiteralPath (Join-Path $_.FullName "dobject")) -and
(Test-Path -LiteralPath (Join-Path $_.FullName "dobject_recording"))
} | Sort-Object Name)
}
if ($Stations.Count -eq 0) { throw "No station directory containing dobject and dobject_recording was found" }
New-Item -ItemType Directory -Force -Path $OutputRoot | Out-Null
if (-not $SkipSerialParsing) {
New-Item -ItemType Directory -Force -Path $ParsedRoot | Out-Null
Run-Python "capture audit" @($Auditor, $RtkCapture, $ImuCapture, "--out", (Join-Path $OutputRoot "capture_audit.json"))
Run-Python "RTK/IMU parse" @($Parser, "--rtk", $RtkCapture, "--imu", $ImuCapture, "--out", $ParsedRoot)
if ($SkipLidarExport -or $SkipSerialParsing) {
throw "Partial skip flags are no longer supported; use tools/export_raw_to_combined.py internals or run_direct_rtk_lidar.ps1 on an existing combined/"
}
foreach ($Station in $Stations) {
$StationOut = Join-Path $ExportRoot $Station.Name
if (-not $SkipLidarExport) {
Run-Python "LiDAR station $($Station.Name)" @(
$Exporter, "--dlog", $Station.FullName, "--out", $StationOut,
"--object", $LidarObject, "--format", "npz", "--timezone", $Timezone,
"--stride", "$Stride", "--compress", "--skip-rtk", "--write-reports", "--resume"
)
}
if (-not (Test-Path -LiteralPath (Join-Path $StationOut "frames"))) {
throw "Exported frame directory is absent for station $($Station.Name): $StationOut"
}
}
$BuildArgs = @($Builder)
foreach ($Station in $Stations) {
$Frames = Join-Path (Join-Path $ExportRoot $Station.Name) "frames"
$BuildArgs += @("--lidar", "$($Station.Name)=$Frames")
}
$BuildArgs += @(
"--rtk", (Join-Path $ParsedRoot "rtk.jsonl"),
"--imu", (Join-Path $ParsedRoot "imu.jsonl"),
"--out", $CombinedRoot,
$Args = @(
$Exporter,
"--stations-root", $DataRoot,
"--rtk-rscap", $RtkCapture,
"--imu-rscap", $ImuCapture,
"--out", $OutputRoot,
"--lidar-capture-name", $LidarCaptureName,
"--lidar-object", $LidarObject,
"--timezone", $Timezone,
"--stride", "$Stride",
"--rtk-max-dt-ms", "$RtkMaxDtMs",
"--imu-before-ms", "$ImuBeforeMs",
"--imu-after-ms", "$ImuAfterMs",
"--time-basis", $TimeBasis,
"--overwrite"
)
Run-Python "LiDAR/RTK/IMU association" $BuildArgs
foreach ($Name in $StationNames) {
$Args += @("--station", $Name)
}
Write-Host "Completed stations: $($Stations.Count)"
Write-Host "Combined NPZ: $CombinedRoot"
Write-Host "[raw → combined one-shot export]"
& python @Args
if ($LASTEXITCODE -ne 0) {
throw "export_raw_to_combined failed with Python exit code $LASTEXITCODE"
}
Write-Host "Combined NPZ: $(Join-Path $OutputRoot 'combined')"
Write-Host "Summary: $(Join-Path $OutputRoot 'export_summary.json')"
-21
View File
@@ -1,21 +0,0 @@
param(
[Parameter(Mandatory = $true)][string]$ExportRoot,
[Parameter(Mandatory = $true)][string]$Output,
[Parameter(Mandatory = $true)][double]$HeadingOffsetDeg,
[Parameter(Mandatory = $true)][double[]]$AntennaLever,
[int]$MinStations = 30,
[int]$ExpectedStations = 0,
[double]$HeadingStdLimitDeg = [double]::PositiveInfinity,
[switch]$Overwrite
)
$ErrorActionPreference = "Stop"
if ($AntennaLever.Count -ne 3) { throw "AntennaLever must contain X,Y,Z in body coordinates" }
$Repo = Split-Path -Parent $PSScriptRoot
$Args = @((Join-Path $Repo "tools\prepare_station_dataset.py"), "--export-root", $ExportRoot,
"--output", $Output, "--heading-offset-deg", "$HeadingOffsetDeg", "--antenna-lever") +
@($AntennaLever | ForEach-Object { "$_" }) + @("--min-stations", "$MinStations",
"--expected-stations", "$ExpectedStations", "--heading-std-limit-deg", "$HeadingStdLimitDeg")
if ($Overwrite) { $Args += "--overwrite" }
& python @Args
if ($LASTEXITCODE -ne 0) { throw "Legacy dataset preparation failed" }
+3 -2
View File
@@ -3,7 +3,8 @@ param(
[Parameter(Mandatory = $true)][string]$Output,
[Parameter(Mandatory = $true)][double]$HeadingOffsetDeg,
[Parameter(Mandatory = $true)][double[]]$AntennaLever,
[int]$MinStations = 30,
[string]$PoseName = "rtk_gga_raw_heading",
[int]$MinStations = 20,
[int]$ExpectedStations = 0,
[double]$HeadingStdLimitDeg = 0.5,
[switch]$Overwrite
@@ -13,7 +14,7 @@ $ErrorActionPreference = "Stop"
if ($AntennaLever.Count -ne 3) { throw "AntennaLever must contain X,Y,Z in body coordinates" }
$Repo = Split-Path -Parent $PSScriptRoot
$Args = @((Join-Path $Repo "tools\prepare_multisensor_station_dataset.py"), "--combined-root", $CombinedRoot,
"--output", $Output, "--heading-offset-deg", "$HeadingOffsetDeg", "--antenna-lever") +
"--output", $Output, "--pose-name", $PoseName, "--heading-offset-deg", "$HeadingOffsetDeg", "--antenna-lever") +
@($AntennaLever | ForEach-Object { "$_" }) + @("--min-stations", "$MinStations",
"--expected-stations", "$ExpectedStations", "--heading-std-limit-deg", "$HeadingStdLimitDeg")
if ($Overwrite) { $Args += "--overwrite" }
+41
View File
@@ -0,0 +1,41 @@
{
"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.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,
0.0
],
"matrix_4x4": [
[1.0, 0.0, 0.0, 0.210859360],
[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": "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"
}
}
-74
View File
@@ -1,74 +0,0 @@
param(
[Parameter(Mandatory = $true)][string]$Batch1Prepared,
[Parameter(Mandatory = $true)][string]$Batch2Prepared,
[string]$OutputRoot = ""
)
$ErrorActionPreference = "Stop"
$Repo = Split-Path -Parent $PSScriptRoot
if ([string]::IsNullOrWhiteSpace($OutputRoot)) {
$OutputRoot = Join-Path $Repo "results\01_previous_two_batches"
}
$Code = Join-Path $Repo "code\rigorous_calibration.py"
$Refine = Join-Path $Repo "code\refine_pairs.py"
$Summary = Join-Path $Repo "code\summarize_results.py"
$B1Frames = Join-Path $Batch1Prepared "frames_all"
$B2Frames = Join-Path $Batch2Prepared "frames_all"
$B1Body = Join-Path $Batch1Prepared "body_poses_rear_gga_raw_rear_to_front.csv"
$B2Body = Join-Path $Batch2Prepared "body_poses_rear_gga_raw_rear_to_front.csv"
function Run-Python {
param([string]$Stage, [string[]]$Arguments)
Write-Host "[$Stage]"
& python @Arguments
if ($LASTEXITCODE -ne 0) { throw "$Stage failed with Python exit code $LASTEXITCODE" }
}
foreach ($Path in @($B1Frames, $B2Frames, $B1Body, $B2Body)) {
if (-not (Test-Path -LiteralPath $Path)) { throw "Input does not exist: $Path" }
}
$Common = Join-Path $OutputRoot "common"
$Small = Join-Path $OutputRoot "small_gicp"
$Open = Join-Path $OutputRoot "open3d_gicp"
New-Item -ItemType Directory -Force -Path $Common,$Small,$Open | Out-Null
Run-Python "batch2 ground planes" @($Code, "ground", "--frames", $B2Frames, "--output", (Join-Path $Common "ground_planes_batch2.csv"))
foreach ($Backend in @("small_gicp", "open3d")) {
$Directory = if ($Backend -eq "small_gicp") { $Small } else { $Open }
$Extra = @()
if ($Backend -eq "open3d") { $Extra = @("--max-gap", "3", "--multistart", "1", "--iterations", "40") }
$B2Raw = Join-Path $Directory "B_batch2_estimation.npz"
$B2QualityJson = Join-Path $Directory "B_batch2_quality.json"
$B2QualityCsv = Join-Path $Directory "B_batch2_quality.csv"
Run-Python "$Backend batch2 pairs" (@($Code, "pairs", "--backend", $Backend, "--frames", $B2Frames, "--body", $B2Body,
"--output", $B2Raw, "--quality-json", $B2QualityJson, "--quality-csv", $B2QualityCsv) + $Extra)
$B2Refined = Join-Path $Directory "B_batch2_refined.npz"
Run-Python "$Backend batch2 refinement" @($Refine, "--pairs", $B2Raw, "--quality-json", $B2QualityJson, "--output", $B2Refined)
$Extrinsic = Join-Path $Directory "extrinsic_batch2_refined.json"
Run-Python "$Backend batch2 calibration" @($Code, "calibrate", "--pairs", $B2Refined,
"--ground-planes", (Join-Path $Common "ground_planes_batch2.csv"), "--output", $Extrinsic)
$B1Raw = Join-Path $Directory "B_batch1_auxiliary.npz"
$B1QualityJson = Join-Path $Directory "B_batch1_quality.json"
$B1QualityCsv = Join-Path $Directory "B_batch1_quality.csv"
Run-Python "$Backend batch1 auxiliary pairs" @($Code, "pairs", "--backend", $Backend, "--frames", $B1Frames, "--body", $B1Body,
"--output", $B1Raw, "--quality-json", $B1QualityJson, "--quality-csv", $B1QualityCsv,
"--max-gap", "3", "--multistart", "1", "--iterations", "40")
$B1Refined = Join-Path $Directory "B_batch1_auxiliary_refined.npz"
Run-Python "$Backend batch1 refinement" @($Refine, "--pairs", $B1Raw, "--quality-json", $B1QualityJson, "--output", $B1Refined)
Run-Python "$Backend batch1 auxiliary check" @($Code, "validate", "--pairs", $B1Refined,
"--extrinsic", $Extrinsic, "--output", (Join-Path $Directory "batch1_auxiliary_check.json"))
}
Run-Python "backend summary" @($Summary,
"--open3d", (Join-Path $Open "extrinsic_batch2_refined.json"),
"--small", (Join-Path $Small "extrinsic_batch2_refined.json"),
"--open3d-quality", (Join-Path $Open "B_batch2_quality.json"),
"--small-quality", (Join-Path $Small "B_batch2_quality.json"),
"--open3d-check", (Join-Path $Open "batch1_auxiliary_check.json"),
"--small-check", (Join-Path $Small "batch1_auxiliary_check.json"),
"--output", (Join-Path $OutputRoot "comparison_summary.json"),
"--recommended-output", (Join-Path $OutputRoot "final_extrinsic_recommended.json"))
Write-Host "Two-batch results: $OutputRoot"

Some files were not shown because too many files have changed in this diff Show More