13变换链与三类参数

一个点从世界坐标变成屏幕上的像素,中间要过好几个坐标系。 这一页把这条链拆开数一遍:一共多少个可错的量,哪些是量出来的,哪些是约定的。

一条链 三层分类 约定错了救不回来

一、一条链,五个坐标系

世界 / 地图
   ↓  ← 自车在世界里的位姿(GPS + IMU + 里程计)
自车坐标系
   ↓  ← 传感器相对车的位置和朝向
传感器坐标系(雷达 / 相机底座)
   ↓  ← 相机装歪的一点修正
相机光学系(Z 向前,X 向右,Y 向下)
   ↓  ← 内参 + 畸变
像素坐标

每一个箭头都是一次坐标变换。每一层都可能错,而且错法不一样。

二、把可错的量数出来

段自由度具体是什么
世界到自车6位置 3 加姿态 3,由定位系统提供,通常不标定
自车到传感器6外参。平移 3 加旋转 3
相机内参4fx、fy、cx、cy
畸变1 到 8看用哪个模型,径向和切向若干项
时间1两个传感器的时间偏移

所以一整套参数是十几个到二十几个数。数量不多,但每一个错法都不同, 而且错在不同自由度上,症状完全不一样。这是后面诊断那页的地基。

三、更重要的分法:三层

比"数自由度"更有用的分类,是问这个量是怎么来的。

类型怎么得到错了怎么办
标定量用靶标测出来,或者用数据拟合出来重标。有办法改进
可在线估计量跑的时候用数据自己估滤波器会收敛。有反馈
纯约定人为规定的,没有对错标得再准也救不回来
第三行是这一页的重点

标定量错了,你能重标;在线估计量错了,滤波器能收敛。 而约定错了,你手上没有任何信号告诉你错了,因为它是人为规定的,不存在"真值"。

它只会在某一天以一个诡异的现象暴露出来:自己的视图一切正常,跨系统的视图整体错位。

哪些属于纯约定

这些在业界都有两套以上的流行写法,而且每一套都有一大批系统在用。 所以"哪种对"这个问题没有意义,有意义的是"两边一致不一致"。

它为什么不报错

因为两套约定都是自洽的。一个用列优先写的系统,自己跑起来完全正常; 一个用行优先写的系统,自己跑起来也完全正常。

错位只发生在交接处:把 A 的矩阵喂给 B 的时候。 而那时候通常是一堆数字,看不出哪边错了。

四、所以第一件事不是标定,是穷举

如果你要接手一套陌生的数据,按这个顺序做:

① 先列清楚这条链上有几个坐标系,各自叫什么
② 每一段变换,写明它由谁提供、什么格式、什么约定
③ 找出所有"纯约定"项,逐个确认两边一致
④ 剩下才是标定和估计的事

第 ③ 步最容易被跳过,也最容易在联调那天爆炸。

一个具体的判别动作

拿一个已知的、简单得能心算的点,比如正前方 10 米、地面上一个点, 手动把它走完整条链,看落点对不对。

如果落点差了一个整数倍的旋转或者整体翻转,那多半是约定问题,不是精度问题。 精度问题不会让结果翻面。

五、这一页带走什么

变换链上有十几个可错的量,但真正需要警惕的不是数量,是它们分三类: 量出来的、估出来的、规定出来的。

前两类错了有反馈,第三类没有。所以一套陌生数据到手, 先做约定的一致性检查,再谈标定精度。

← 上一页:投影模型全景 ·  下一页:误差传播与标定诊断 →
京ICP备19013239号