传感器感知
传感器感知
目的
为什么识别准确率为 99% 的障碍物检测,若忽略其捕获时间戳、坐标系和空间不确定性,仍会导致碰撞?
只有当曝光时间戳、参考坐标系和空间协方差被显式给出时,障碍物检测才有助于安全运动。 物理世界持续演化,而图像传感器在此期间积分光子、通过直接内存访问总线传输像素,并将张量提交给推理模型。 一个准确的边界框估计所描述的几何,可能在执行器施加力矩时已经不复存在。 机械振动、光学畸变与热成像相机漂移会引入空间不确定性,改变原始像素坐标与物理净空边界之间的关系。
若在不具备这些空间与时间限定条件的情况下报告高置信度物体语义,下游控制器便会被剥夺保证安全分离所必需的信息。 实时感知必须保留每一次观测的溯源信息——跨时钟域追踪捕获时间戳,并界定测量误差椭球的界限。 在物理人工智能架构中,感知充当因果边界处原始传感硬件与 Brain 中认知推理之间的桥梁,将噪声信号转化为确定性许可路径在投入动能之前能够验证的认证空间主张。
学习目标
- 指定一份观测契约,其中包含采集时间、有界的时钟换算、坐标系与不确定性
- 在感知、传输、预处理与推理流水线中计算观测年龄,并将其转换为停止预算项
- 诊断由传感器时序、采集期间的运动以及坐标系未对齐引起的空间误差
- 解释为何平均采集带宽既不约束某一帧的年龄,也不约束一次续采的迟到,并估算续采额度所容忍的主机争用
- 评估观测不确定性是否为一项拟议动作留下足够的物理余量
- 区分运行时检查能够发现的感知失败与仍然保持静默的误差
光子到空间主张
仓库移动操作机器人的视觉模型几乎每次都能识别出从货架末端走出的人,却仍会向规划器提供一个已经过期的位置。 在导航相机积分并读出图像期间,以及在流水线处理该图像期间,世界始终在运动。 在这台机器上,从曝光中点到观测结果到达任一使用方的时刻,经过的时长以 51.6 ms 为例,而在基座 1.5 m/s 驱动极限下,机器在这段时间内移动了 77.4 mm。 识别准确率并不能说明该观察结果是否足够新鲜,以支撑所提出的运动。 在物理人工智能中,一次观察有着有效期。
感知运行于 Brain,位于 《五层机器》 的提案边界之上。 它将光子、飞行时间脉冲和反射的无线电波转化为带时间戳的空间主张并提出它们,但它对执行器没有任何权威;该权威仍留在边界以下的许可路径。
把光子转化为带时间戳的主张这项工作,并不取决于架构如何绘制。 端到端的视觉到动作策略 (Brohan, Brown, Carbajal, Chebotar, Dabis, 等 2023年; Brohan, Brown, Carbajal, Chebotar, Chen, 等 2023年; Zhao 等 2023年) 在一个网络内将相机观测映射为拟议动作,而经典模块化流水线则将传感器输入、状态估计、建图和轨迹生成分散到不同进程中。 Marr 对视觉的分析 (Marr 1982年) 将视觉计算必须达成的内容、承载它的表示以及执行它的硬件区分开来,而在物理人工智能中,这三个层级中的每一层都必须在刺激与响应之间得到实现。
当工程团队在端到端模型中把这些职责合并时,职责本身依然存在,但其中间表示更难被独立检查。 显式的接口可以暴露一个坐标变换以供校验,可以携带过期截止时间,也可以让另一个组件拒绝一个不一致的估计。 隐藏表示需要额外的仪器或外部检查,才能提供可比的证据。 如果感知环节把湿地面的反射误判为开放通行空间,那么工程师就需要一种方法,来检测或抑制由此产生的误差,无论该流水线由多少个软件模块实现。
这份证据始于物理能量转换为数字数据之处。 从探测器阵列的换能,到状态估计器的消费,每一个处理环节都会增加观测的时延。 光子击中 CMOS 相机的光电二极管阵列,并不会立即以特征嵌入的形式出现在推理引擎中;曝光、读出、传输、内存传输、预处理以及视觉骨干网络各自分担一部分延迟。 如果感知环节向下游组件提供目标检测边界框,却没有给出显式的时间戳和校准过的空间变换,那么下游规划器就会依据底盘的当前位置来评估该障碍物,从而使其定位误差等于机器自采集以来所行进的距离。
↰ 前置条件: 换能新鲜度与传感器测量老化推导见 测量新鲜度。
Definition 1.1: 空间信息年龄
空间信息年龄 (\(t_{\text{age}}\))是指换能器处的物理能量积分中点(\(t_{\text{exp}}/2\))与下游状态估计器或控制策略对相应观测张量进行消费之间所经历的物理总时间。 它是 测量新鲜度 中自换能起算的测量年龄中从捕获到消费的部分,正文将其称为观测年龄。
- 意义:由于物理质量在数字计算执行期间持续运动,感官延迟会直接转化为未被建模的空间位移(公式 1): \[\Delta \mathbf{x} = \int_{t_0}^{t_0+t_{\text{age}}} \mathbf{v}(t)\,dt \tag{1}\] 这一持续发生的物理位移会在障碍物甚至被分类之前,消耗几何安全裕度。
- 区分:与软件流水线延迟(前向传播的墙钟时长)不同,观测年龄涵盖完整的物理过程:一半的曝光时间、读出、传输、DMA 与排队、ISP 处理、视觉主干网络,以及调度。
- 常见误区:将用户态内存中的帧到达时间戳(\(t_{\text{recv}}\))当作观测时间(\(t_0\))。 使用到达时间会掩盖上游采集与传输延迟,并为消耗该观测的反馈控制器引入未建模的相位滞后。
时序批处理与相位裕度劣化
批处理通过在各图像间分摊工作来提升加速器吞吐量,但跨连续采集时刻收集一批图像,会使其中最早的一张变旧。 在导航相机的 60 Hz 节奏下(\(T_{\text{sample}} \approx\) 16.7 ms),由四张连续帧组成的一批图像,使第一张等待 50 ms,第二、三张分别等待 33.3 ms 和 16.7 ms,而最后一张则无需等待。 把最旧帧的等待时间加到 51.6 ms 的观察年龄上,大致使其翻倍,达到 101.6 ms。 该值远高于拒绝阈值,即 节 1.7 设定的预算年龄加时钟换算界,因此在这台机器上,由跨采集时刻收集的一批图像构建的任何主张都会被许可路径拒绝。 由多台相机同时采集的图像,或许只在批处理不额外增加超出预算阶段的年龄、并满足其截止时间时,才可能被批处理。
年龄同样会消耗反馈回路的相位裕量,因为纯延迟 \(t_{\text{age}}\) 在频率 \(\omega\) 处引入相位滞后 \(\omega t_{\text{age}}\),而不改变增益。 因此,具有标称裕度 \(\text{PM}_{\text{nom}}\) 的回路在增益穿越频率 \(\omega_c\) 处一旦满足 \(t_{\text{age}} \ge \text{PM}_{\text{nom}}/\omega_c\),便会耗尽该唯一上限;而曝光、处理、传输、授权以及执行器延迟都会占用这一上限(Discrete-time sampling and zero-order hold phase lag)。
同一延迟要付出两次代价:既表现为环路中的相位滞后,也表现为向障碍物行进的位移,而消费者只能预算其可测量的延迟。 感知交付的内容因此必须携带时间戳、坐标系以及可用的误差界;而转导、接入与几何估计各自都可能在其授权路径允许运动之前使其失效。
感知交付的内容
原始传感器硬件产生电学测量值,例如光电二极管电压、飞行时间计数值或电容位移。 这些非结构化信号与下游自主性所需的状态变量存在显著差异。 执行器控制器无法用二维原始像素强度网格跟踪期望力,轨迹优化器也无法用无序的飞行时间回波规划无碰撞路径。 下游估计、规划与记忆子系统需要物理状态的结构化表示,包括度量位置、速度、包围体、表面法线与语义分类。 将原始传感器流转换为这些表示,是感知管线(perception pipeline)的操作职责。 它交付的每个观测都必须携带三项下游软件属性:采集时间戳、参考坐标系与不确定性包络。
第一项强制属性是 采集时间戳 \(t_0\),它指定物理能量积分窗口的时间中点(即相机快门开启或激光脉冲发射的有效时刻)。 传感器并非拍摄瞬时快照:相机在曝光时长内积分光子,机械激光雷达则在数毫秒内沿一段方位角弧线扫描激光脉冲。 下游状态估计器需要 \(t_0\) 才能将测量结果并入机器的动力学运动方程。 定义所警示的到达时间戳 \(t_{\text{recv}}\) 标记了操作系统内核完成直接内存访问传输的时刻。 一半的曝光时间,以及完整的读出、传输和直接内存访问(DMA)时间,都在那一刻之前流逝,因此到达偏移量 \(\tau_{\text{recv}} = t_{\text{recv}} - t_0\) 永不为零,而用到达时间替代采集时间会破坏状态估计器。
这种扰动的量级由 公式 1 给出,其中用到达偏移量代替完整年龄;在恒定速度 \(v\) 下,它简化为 \(\Delta x = v\,\tau_{\text{recv}}\)。 在移动机械臂上,导航相机的图像帧在曝光中点之后经过 26.6 ms 完成其 DMA 传输。 因此,在帧到达时为其打时间戳的估计器会使该帧的时间戳比实际采集时间晚这么多;在移动底座以其行驶速度上限 1.5 m/s 运动时,它将该观测与一个比相机在采集时所处位姿沿运动方向超前 39.9 mm 的位姿配对。
↳ 下游: 变换如何失效 补充说明了这些传感器到机体的变换会如何随时间失效。
第二个强制属性是 参考坐标系 标识符 \(\mathcal{F}_{\text{sensor}}\)。 每个空间测量都在物理换能器的本地坐标系中原生求解。 相机测量其光学中心相对方位角,雷达测量其天线阵列相对的距离和多普勒速度。 下游轨迹规划器和障碍物地图在车体坐标系 \(\mathcal{F}_{\text{body}}\) 或惯性导航坐标系 \(\mathcal{F}_{\text{world}}\) 中运行。 将观测从 \(\mathcal{F}_{\text{sensor}}\) 变换到 \(\mathcal{F}_{\text{body}}\) 需要施加一个刚体空间变换,由旋转矩阵和平移向量构成,二者定义了传感器的安装外参(传感器固定在机器上的确切物理位置和朝向)。 坐标系从地球嵌套到换能器 \(\mathcal{F}_{\text{earth}} \to \mathcal{F}_{\text{map}} \to \mathcal{F}_{\text{odom}} \to \mathcal{F}_{\text{body}} \to \mathcal{F}_{\text{sensor}}\),该树中的每个环节都带有自身的变换和不确定性 图 1。
当感知输出省略了坐标系标识,或采用名义 CAD 尺寸而非标定后的物理外参时,微小的角度偏差会在距离上产生随距离放大的空间误差。 一个未校准的俯仰或偏航误差 \(\theta =\) 1°,当传感器探测到距离为 \(d =\) 15 m 的物体时,会使该物体的位置测量产生横向位置误差 \(\Delta y \approx d \sin\theta\),量级为 0.26 m,约为机架侧向净空 0.15 m 的 1.7× 倍,即底座与机架之间保持的侧向净空,因此规划器要么转向货架,要么将一条本可通行的通道判定为被遮挡。
该 REP 105 坐标系约定 定义了这些坐标系,并将局部连续的 odom 位姿与全局校正后的 map 位姿区分开来。 在移动操作臂上,\(\mathcal{F}_{\text{body}}\) 是底座坐标系 base_link,经里程计坐标系 odom 传递;机械臂的串联链则通过关节角将其安装法兰 tool0 映射回 base_link。表 1 列出了各坐标系的作用,以及每个使用方所遵循的规则。 本地控制器使用连续估计值,并拒绝意外的变换跳变;实现仍须检查变换时间戳与估计器不确定性。
odom 的位姿保持连续,但未规定 \(C^1\) 平滑性、协方差增长率或固定精度;这些需要针对特定估计器的证据。
| 帧 | 本例中的父节点 | 含义 | 消费规则 |
|---|---|---|---|
earth |
根节点 | 可选大地基准面 | 在全局路由前验证基准面 |
map |
earth(如有) |
全局定位;修正量可能产生跳变 | 将再定位跳变排除在局部反馈之外 |
odom |
map |
局部连续的位姿估计;可能漂移 | 局部跟踪运动;监测不确定性与不连续性 |
base_link |
odom |
固连于本体的原点 | 本体位姿仍继承里程计的不确定性 |
sensor_link |
base_link |
标定后的传感器安装坐标系 | 应用时间有效的外参及其不确定性 |
第三个强制属性是 不确定性表示,例如协方差 \(\mathbf{\Sigma}_z\) 以及当净空取决于不确定性界限时所需的、经过验证的尾部误差界或硬误差界。 低照度、大气散射、镜面表面与模型误差会改变残差分布。 协方差描述二阶矩,而非保证包含真实状态的区域。 估计器可利用它来对创新项相对于运动模型加权;协方差被低估会把状态估计拉向虚假测量,并导致下游指令不佳。 安全性决策也必须考虑偏差、漏检和验证限度。
Systems Perspective 1.1: 观察的三条不变量
合在一起,这些性质构成了观察契约的核心,节 1.7 将其转化为下游每个消费者在使用前都会检查的记录。 丢弃不完整或无界的观察,会使下游估计器依据物理动力学将状态前推,从而在时间上平滑地劣化不确定性。 接受一个缺乏物理依据的数据包,与之相反,会直接把未建模的延迟、空间畸变和虚假置信度注入控制回路。 要强制执行这一契约,必须追溯观测的生成过程,从物理现象首次采样的硬件接口开始。
传感器转导与标定
延迟在软件接收到任何信息之前就已经累积,起点是光电二极管,在那里物理现象被转换为电荷。 相机并非捕捉瞬时快照。 光子在有限曝光时长 \(t_{\text{exp}}\) 内累积于光电二极管,这意味着所记录的像素强度表示该区间内场景辐亮度 \(I(t)\) 的时间积分: \[I_{\text{pixel}} = \int_{0}^{t_{\text{exp}}} I(t)\,dt\]
当传感器或场景以速度 \(v\) 运动时,在曝光期间,一条锐利的边界(如机架立柱)会在多个像素点之间被拖影,形成宽度为 \(\Delta x_{\text{blur}} = v\,t_{\text{exp}}\) 的运动模糊。 由于电荷在整个窗口期间累积,所记录图像代表的时间是曝光的中点,即滞后于曝光开始时刻 \(t_{\text{exp}}/2\)。 在导航相机的 16 ms 曝光设置与基座 1.5 m/s 驱动极限配合时,图像记录的并非机器人 在哪里。 它记录的是机器人 较早时刻 8 ms 的位置,被 24 mm 的运动模糊所拖影。
滚动快门畸变与运动补偿
像素阵列上的曝光窗口时序决定了图像的空间几何结构。 在全局快门(global shutter) 传感器中,每个像素的光电二极管在完全相同的时间间隔内累积电荷,并同时将累积的电子转移到屏蔽存储节点。 在滚动快门(rolling shutter) 传感器中,硅面积和成本约束决定了行从上扫描线 \(y = 0\) 到下扫描线 \(y = H - 1\) 依次复位、曝光和读出。 每条后续扫描线在经过一个行周期 \(t_{\text{row}}\) 后开始曝光,从而在整个图像平面上形成渐进的时间偏移:1 \[t(y) = t_{\text{start}} + y \cdot t_{\text{row}}\] 其中 \(t_{\text{start}}\) 是顶行曝光的开始时刻。 当机器人机体以线速度 \(v\) 沿垂直于竖直特征的方向平移时,扫描线 \(y\) 捕获该特征的位置发生空间位移: \[\Delta x(y) = v \cdot y \cdot t_{\text{row}}\]
在旋转运动下,卷帘快门畸变变为非线性。 若相机以角速度矢量 \(\boldsymbol{\omega} = [\omega_x, \omega_y, \omega_z]^T\) 发生角旋转(例如在激进机器人机动过程中快速偏航或俯仰),则相机的有效姿态会随扫描线的读出而连续变化。 从物理角度看,相机的指向方向对每一行都略有不同。 对于位于垂直坐标 \(y\) 的扫描线,其相对帧起始的差分旋转为 \(\Delta \boldsymbol{\theta}(y) \approx \boldsymbol{\omega} \cdot y \cdot t_{\text{row}}\)。 这种依赖扫描线的旋转将笔直的物理直线扭曲为曲线,在俯仰过程中诱发焦距膨胀(俯仰期间的缩放失真),并将竖直墙面剪切为倾斜面,正如 图 2 所示的螺旋桨叶片弯曲。
考虑移动机械臂的导航相机,当基座以其行驶速度上限 1.5 m/s 经过竖直货架立柱时。 滚动快门按帧的 3,040 行读取,读取时间为 \(t_{\text{readout}} =\) 16.6 ms,因此行间间隔为 \(t_{\text{row}} =\) 5.46 μs。 贯穿整幅画面的竖直立柱在捕获的图像阵列中并不呈现为竖直。 底部扫描线(\(y =\) 3,039)在顶部扫描线(\(y = 0\))之后 16.6 ms 被采样,从而产生总空间倾斜 \(\Delta x = v\,t_{\text{readout}}\) 为 24.9 mm。
如果下游几何重建将该图像视为瞬时刚体投影,则 24.9 mm 的倾斜会未经校正地进入障碍物地图。 这大约是基座与货架之间保持的 0.15 m 侧向间隙的六分之一,而运动规划器可能将该倾斜立柱识别为对自由走廊的虚假侵入。 停止预算中的定位余量 \(\delta_{\text{loc}}\) 假定该倾斜已在估计器看到该帧之前被消除。 纠正这种畸变需要 滚动快门运动补偿,即利用高采样率(1,000 Hz)惯性角速度(\(\boldsymbol{\omega}\))与线性速度(\(\mathbf{v}\))对每条扫描线(\(y\))插值瞬时 6-DoF 相机位姿(\(\mathbf{T}_{wb}(t(y))\))的连续时间几何反畸变算法,从而在三维三角化之前恢复刚性极线几何。
相机标定
滚动快门补偿假定相机的几何已经已知,而相机所支持的每一项度量主张都建立在该标定之上。 在针孔相机模型 (Hartley 和 Zisserman 2003年) 下,内参矩阵 \(\mathbf{K}\) 将相机光轴坐标系中的点 \(\mathbf{P}_c = [X_c, Y_c, Z_c]^\top\) 映射到像素 \([u, v]^\top\): \[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \sim \frac{1}{Z_c} \mathbf{K} \mathbf{P}_c = \frac{1}{Z_c} \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X_c \\ Y_c \\ Z_c \end{bmatrix} \tag{2}\] 其中 \(f_x, f_y\) 为以像素为单位的焦距,\((c_x, c_y)\) 为主点。 反演该映射只能恢复出方位射线,沿该射线的每个深度都与该像素一致: \[\mathbf{r}(u, v) = \mathbf{K}^{-1} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{u - c_x}{f_x} \\ \frac{v - c_y}{f_y} \\ 1 \end{bmatrix} \tag{3}\] 因此,度量深度必须来自立体视差、测距传感器或学习得到的先验,而每种方法各有其自身误差,节 1.5 将这一误差计入净空余量。 镜头畸变在 表 2 的图像信号处理(ISP)阶段被校正。 投影的推导、畸变模型以及 Zhang 的平面标定方法 (Zhang 2000年) 在 Camera Projective Geometry and Covariance Propagation 中展开讨论。
相机与惯性测量单元之间的空间关系和时间关系必须联合标定 (Furgale 等 2013年)。 外参旋转误差 \(\theta\) 会使距离为 \(z\) 处的点产生约 \(z\,\theta\) 的位移,而相机相对惯性单元的偏移则引入力臂加速度 (Spatial coordinate frames and lever-arm kinematics)。 曝光与惯性采样之间未标定的时延 \(\Delta t\) 会使相机产生 \(\omega\,\Delta t\) 的取向偏差;当基座以角速度 \(\omega\) 转动时,该点被错置约 \(z\,\omega\,\Delta t\),因此时延误差随转动速率与距离同时增大。 利用同一硬件触发信号锁存曝光起始时刻与惯性采样时刻,可约束该时间偏移,残余误差由在线标定进行估计。 每一种标定都仅在拟合所依据的条件内成立,这正是观测记录需要携带标定修订及其有效范围的原因。
延迟瀑布图
曝光与读出只是帧通过的前两个阶段。 将 测量新鲜度 的延迟瀑布 各阶段累加至调度环节,即可得到观测年龄: \[t_{\text{age}} = \frac{t_{\text{exp}}}{2} + t_{\text{readout}} + t_{\text{transport}} + t_{\text{DMA}} + t_{\text{ISP}} + t_{\text{backbone}} + t_{\text{IPC}}\]
Napkin Math 1.1: 转导延迟与信息年龄
分阶段延迟瀑布:
- 曝光积分中点 (\(t_{\text{exp}}/2\)): 导航相机的曝光 \(t_{\text{exp}} =\) 16 ms(数据手册)\(\implies \Delta t_1 =\) 8 ms。
- 滚动快门行读出 (\(t_{\text{readout}}\)): 帧的滚动读出贡献 \(\Delta t_2 =\) 16.6 ms(数据手册)。
- MIPI CSI-2 串行化与传输(\(t_{\text{transport}}\)): 索尼 IMX477 飞页(Sony IMX477 flyer) 规定了最高 \(2.1\text{ Gbps/lane}\) 的四通道(four-lane)选项。 预算将 \(\Delta t_3 =\) 0.8 ms(示意性)分配给流读出后的残余传输时间;该值并非帧尺寸除以峰值通道速率。
- DMA 输入与内核 V4L2 缓冲区队列(\(t_{\text{DMA}}\)):散点-收集(scatter-gather)DRAM 写入与驱动中断 \(\implies \Delta t_4 =\) 1.2 ms(示意性)。
- 硬件 ISP 去马赛克与校正(\(t_{\text{ISP}}\)):专用片上 ISP 硬件处理通道 \(\implies \Delta t_5 =\) 2.5 ms(示意性)。
- 视觉骨干张量前向传播(\(t_{\text{backbone}}\)): 边缘 NPU 上的 INT8 量化视觉 Transformer(\(\implies \Delta t_6 =\))22 ms(示意)。
- 协方差打包与零拷贝 IPC(\(t_{\text{IPC}}\)): 共享内存环形缓冲区调度(\(\implies \Delta t_7 =\))0.5 ms(示意)。
总观测年龄: \[t_{\text{age}} = 8 ms + 16.6 ms + 0.8 ms + 1.2 ms + 2.5 ms + 22 ms + 0.5 ms = 51.6 ms\]
驱动上限处的位移:
在底座驱动上限 \(v =\) 1.5 m/s 处,保持速度穿过该年龄窗口: \[\Delta x = (1.5 m/s) \times (0.0516 s) = 0.0774 m = 77.4 mm\]
系统影响:底座在任一消费者能够读取显示该人的帧之前,已覆盖这段距离。 带时间戳的位姿传播可以将旧观测正确地放置到当前坐标系中,但没有后续阶段返回已经走过的距离。
七个阶段的 表 2 之和等于观测年龄 \(t_{\text{age}}\) 的 51.6 ms,该值进入 \(\tau_{\text{delay}}\)。 这个年龄完成了 多速率节拍 留下的最坏情况,即先续期租约、随后卡住的提议者。 显示该人物的帧在人物出现后经过 \(t_{\text{age}}\) 才到达提议者。 提议者在可能看到该人物之前发出的最后一次续期,最晚可在人物出现后 \(t_{\text{age}}\) 发出;若此后提议者卡住,租约将从该次续期起运行至其完整长度。 因此,从人物出现到首个制动力的延迟等于年龄加上 60 ms 租约、持续时间为 1 ms 的一次时钟节拍、持续时间为 1 ms 的一次总线周期以及 20 ms 的制动启动,总计 \(\tau_{\text{delay}}\) 为 133.6 ms。
授权路径从不读取图像,因此无法缩短该年龄项;该年龄只能通过提案的证据纪元到达它。 在 1.5 m/s 驱动极限处,观测年龄项 \(v\,t_{\text{age}}\) 使 equation 中的停车距离增加 77.4 mm。 运行合计从截至租约路径这一行(含该行)的各行所产生的 835.5 mm 上升到 912.9 mm,从而留下 187.1 mm 的 1.10 m 机架端净距。
| 阶段 | 增量 | 各阶段后的串行年龄 | 待验证项 |
|---|---|---|---|
| 曝光中点 | 8 ms | 8 ms | 曝光与行时间戳约定 |
| 滚动读出 | 16.6 ms | 24.6 ms | 所选行与流式传输的重叠 |
| 残余传输 | 0.8 ms | 25.4 ms | 所选传感器模式与主机接收机 |
| DMA 与队列 | 1.2 ms | 26.6 ms | 仲裁与队列尾部 |
| ISP | 2.5 ms | 29.1 ms | 模式与竞争任务 |
| 视觉主干网络 | 22 ms | 51.1 ms | 工作负载、时钟、热状态 |
| 调度 | 0.5 ms | 51.6 ms | 端到端采集到消费时延 |
Checkpoint 1.1: 空间信息时延与停车预算
在将视觉感知传播到空间规划之前,先验证你对流水线延迟如何造成未建模的空间位移的理解:
串行预算将传输、DMA 与排队视为固定增量,但每一项都取决于主机在同一时刻正在移动的其他内容。 相机流量可能在这些预算项中增加观测年龄,而没有任何单一阶段负责人测量这一增量。
摄取的成本
通过 MIPI CSI-2 或以太网到达的原始像素流会先消耗 DMA 与内存服务,之后推理才能读取它们。 在共享的应用处理器上,摄像头写入也可能延迟其他主机读取,或超出接收端并丢帧。
MIPI CSI-2 DMA 入口与零拷贝缓冲区
当传感器芯片上的模数转换器将像素电荷数字化后,该帧必须经由物理互连传输至主机内存。 相机流经 MIPI CSI-2 总线进入应用处理器。2
Systems Perspective 1.2: 硅片摄取数据流架构
- D-PHY / C-PHY 物理层: 物理通道以所选传感器与接收端支持的速率对像素包进行串行化;包头携带错误校验。
- 片上系统(SoC)CSI-2 主机控制器: 反串行化字节包,剥离包头,并校验 CRC 完整性。
- 散点-收集 DMA 控制器:专用的 DMA 引擎通过片上系统互联(例如 AXI 交叉开关)直接将像素字节字传输到 DRAM。
- 内核 DMA 环形缓冲区:一个 Linux
v4l2驱动可将采集缓冲区映射到用户空间。
DMA 写入完成后,内核驱动发出中断。3 驱动可通过 dma_buf 导出 DMA 缓冲区,使兼容的 ISP 或加速器路径无需额外的 CPU 拷贝即可共享存储。 格式转换、布局变化或设备约束仍可能需要拷贝或变换。
物理互连方案决定了传感器传输与主机摄取开销的下界(图 3)。 在机器人系统中,设计者常依据机械便利性(如 USB 3.0 线缆)选择相机接口,而未计入驱动排队与协议打包带来的开销。 测量四个标准具身视觉接口上的完整光子到执行器延迟瀑布,揭示了这些传输选择累积出的成本。 标准工业 USB 3.0 因 USB Video Class(UVC)驱动打包、用户态内核拷贝以及可变 USB 帧间隔轮询,引入了高达 58.4 ms 的闭环延迟;而嵌入式 MIPI CSI-2 则通过 SoC D-PHY 直接内存访问(DMA)实现 34.6 ms 的确定性往返延迟。 汽车 GMSL2 串行器/解串器(SerDes)的延迟表现与 MIPI CSI-2(34.8 ms)相当,同时借助轻量同轴电缆将物理信号传输距离延伸至 15 米,链路串化延迟仅约 50 µs。 最后,神经形态事件相机(如 Prophesee Metavision DVS)完全绕开了常规曝光积分与卷帘读出,以微秒级间隔异步流式传输极性变化,从而实现 11.9 ms 的超快速闭环反应时间。
内存总线争用与观测年龄
机器导航相机与腕部相机的原始速率已在 多相机摄取与存储预算 中估算。 当感知栈读取这些帧、复制或转换中间缓冲区,而加速器读取权重并写入激活值时,内存控制器承载的总流量速率是相机入站速率的数倍。 即便这个倍数,在按秒平均后也远低于内存系统的峰值带宽。
平均带宽并不决定单次读取的延迟。 同步相机将 DMA 写入集中为突发,仲裁粒度、读取优先级与 bank 放置决定了其他请求在其后等待的时长。 在移动操作臂上,该突发仅落在应用处理器上。 授权路径在其自身的微控制器上运行,并从其自身的存储器读取状态,因此突发无法拉长它的 tick,而会暴露这些读取的共享 die 放置方式正是 共享资源争用 所拒绝的那一种。 突发对授权路径的影响,仅体现为提案所依据的帧的年龄,或分块策略所发出的续租的迟滞,而这两者有不同的容限。 在相机与加速器流量之后排队等待的帧到达调度时,其年龄已超出各阶段预算所允许的年龄,而 节 1.7 的拒绝阈值在其之上不留余量,因此建立在该帧上的每一个提案都被拒绝。
若分块的推理因排在同一批流量之后等待而延迟,该分块就会延迟为租约续租,而在那里,用于机器整体构造的一个耦合预算 的续租规则在 50 ms 的分块周期之外,还允许 5 ms 的续租抖动。 因此,主机争用最多可将分块策略的 40 ms 推理拉长 12.5 %,实践中拉得更少,因为同一容限也约束提案方自身的抖动,以及板级链路到微控制器的抖动(硅隔离决策)。 一次续租若迟到 10 ms,会使租约失效并停止机器。 该位置上的争用会消耗可用性,而不会消耗距离,因为授权路径会拒绝停车预算未涵盖的运动请求。
突发保持总线的时间长短对相机本身同样重要。 若增加的延迟超过了接收方 FIFO 可缓冲的量,接收方可能溢出并丢弃该帧,其阈值取决于其缓冲区与突发模式。 丢帧会使两个原本周期性的采样之间的间隔翻倍,而消费者将缺失的更新视为年龄或序列故障,而不是假定新图像会按时到达。
帧交付所受的硬件机制(DMA 环、IOMMU 映射和 DRAM 仲裁)由 Hennessy 和 Patterson (2019年) 和 Bryant 和 O’Hallaron (2015年) 处理。 本章所涉决策中,真正重要的是从采集到消费的时延,以及它在预期相机负载下的尾部。
准时到达的帧只能回答场景何时被采样。 其中物体位于何处,以及该估计可被信任到什么程度,是另一个问题;该答案的误差要从同一净空中扣除。
空间误差与净空边界
当感知估计的机架立柱位置比其实际位置距底座行进路径远几厘米时,底座便依据缺少这几厘米的 0.15 m 侧向净空来规划其通过动作,而流程的各个环节都未曾决定消耗这几厘米的净空。 一旦下游控制逻辑使用估计坐标授权运动,空间误差便成为一次物理位移,并从保持机器远离障碍物的同一净空中被扣除。 将传感器观测转换为净空声明需要 度量锚定,它把原始检测器测量映射到几何空间。 这种定标依赖将二维传感器坐标反投影到三维空间,该反演假设已知的光学参数、刚性安装和可预测的表面特性。
投影与三角测量的数学原理,由 Hartley 和 Zisserman (2003年) 以及 Szeliski (2022年) 详述,支配测量噪声如何转化为空间位移。 在被动立体视觉中,深度 \(z\) 通过关系 \(z = \frac{f b}{d}\) 由基线 \(b\)、焦距 \(f\) 和视差 \(d\) 计算得到。 对该反投影关于视差求导,得到深度不确定性 (公式 4): \[\delta z \approx \frac{z^2}{f b} \delta d \tag{4}\] 其中 \(\delta d\) 表示一个较小的视差误差。4 若 \(\delta d\) 表示视差标准差 \(\sigma_d\),则一阶传播给出 \(\sigma_z\approx z^2\sigma_d/(fb)\)。 在固定的 \(f\)、\(b\) 和 \(\sigma_d\) 下,量程翻倍会使该建模标准差变为原来的四倍。 对于远处的地标,估计器转而以逆深度 \(\rho = 1/z\) 携带深度,其误差大致保持线性,并且这种逆深度度量锚定 可防止扩展卡尔曼滤波在二次尾部上发散。 脉冲式飞行时间传感器则估计 \(z=c\Delta t/2\);其测距误差取决于其计时与检测机制,并在指定的工作区域内可能近似为平坦。
为量化几何,假设一组示例立体对(仅导航相机只能恢复 公式 3 的方位射线),基线间距为 \(b =\) 0.20 m,焦距为 \(f =\) 800 px,视差标准差为 \(\sigma_d =\) 0.5 px,覆盖所测范围。 一阶传播给出 \(\sigma_z =\) 12.5 mm 在 2 m 处,以及 \(\sigma_z =\) 312.5 mm 在 10 m 处(图 4)。 这些是 一标准差量级,而非净空余量或 99 百分位边界。 可用的净空余量需要针对目标传感器、距离、纹理、运动与光照条件校准的 全空间残差 的尾部分位数,系统偏差与漏检需单独处理。 因此,沿视线方向保持的 150 mm 净空不能仅通过增加一个 \(\sigma_z\) 就扩成有效的 162.5 mm 或 462.5 mm 余量。 只要验证后的距离误差与停车余量无法容纳,就必须降低车速或拒绝该提案。
净空内缩边距与变换链传播
空间误差的影响超出传感器光学坐标系。 为控制运动,估计点必须经坐标变换传播至机器人基座标系与末端执行器。 刚体变换 与 SE(3) 运动学标系合成 的力学是标准结论,由 Craig (Craig 2005年) 以及@lynch2017modern 处理。 该变换链中的每个环节都会引入比例误差、安装标定漂移、关节编码器量化误差,以及负载下的机械柔性(例如机械臂在重力作用下轻微下垂)。 力臂效应会沿距离线性放大传感器安装处的小角度扭转,使投影坐标扫过宽广的圆弧。 若导航相机的外参标定相对底盘发生 \(\theta =\) 0.005 弧度偏移,则侧向误差 \(\delta x \approx z\theta\) 在 \(z =\) 10 m 处为 50 mm,其量级与停车预算沿行进方向所保留的整个 50 mm 定位余量 \(\delta_{\text{loc}}\) 相当。 该比较仅涉及量级,并不表示对该余量的分配。 该余量带有较小的已验证残差,例如时钟换算行程 节 1.7;仅与之相等的偏移量,属于消费者必须通过标定有效性检查拒绝、而不能吸收的标定失效。 与二次深度不确定性相结合后,长距离处的总空间误差向量 \(\boldsymbol{\epsilon}_{\text{spatial}}\) 主要由光轴方向的深度以及垂直于该方向的角向力臂效应所主导。
↳ 下游: 空间协方差包络会放大 安全集作为条件许可 中推导出的前向不变安全屏障集合。
每一个物理安全屏障都通过守护机器周围的几何边界来发挥作用。 对于位置误差向量 \(\boldsymbol{\epsilon}_{\text{spatial}}\),三角不等式给出标称净空与真实净空之间的保守关系: \[C_{\text{true}} \ge C_{\text{nominal}} - \|\boldsymbol{\epsilon}_{\text{spatial}}\|\] 对于已验证的 99 百分位范数误差分位数,许可路径可以选择 内缩净空 \(C_{\text{inset}}\)(公式 5): \[C_{\text{inset}} = C_{\text{safe}} + \|\boldsymbol{\epsilon}_{\text{spatial}}\|_{P_{99}} \tag{5}\] 此处 \(C_{\text{safe}}\) 是运动必须保持的物理净空,例如基座的侧向净空;分位数必须来自针对完整空间误差(包括标定偏差)指定的、经过校验的残差分布。 即便如此,测试分布下仍会留下一百分之一的尾部;只有对相关误差给出有依据的硬界、可行的停止路径,以及剩余延迟预算内可接受的许可响应,才能将其关闭。图 4 展示了立体视觉的逐渐增大的深度误差尺度如何在更远距离处要求更大的内缩量。
由于净空取决于传播误差,下游规划器与许可路径无法直接消费原始坐标元组。 仅凭协方差 \(\mathbf{\Sigma}\in\mathbb{R}^{3\times3}\) 并不能说明采用 \(10\text{ mm}\) 或 \(500\text{ mm}\) 的净空内缩量是否有充分依据;这需要经独立验证的误差尾部分布或误差硬界。
当空间误差经过合格化后,许可路径可以扩大净空内缩量,以速度或工作空间换取分离度。 无纹理墙面、眩光或校准丢失,都可能使该合格化结论失效,而并不使数值方差在字面上变为无穷大。 许可路径随后必须拒绝依赖该受影响主张的运动,并选取可行的回退方案。
每一帧,生产者都以固定顺序构建空间主张,任何一步都可能使其终止。 它首先以有界的同步误差将捕获时间戳换算为消费端时钟,并计算 \(t_{\text{age}}\);若年龄加时钟不确定度超过拒绝阈值,则将该观测标记为陈旧,需要它的提议被拒绝。 许可路径在其自身的节拍上重复这一检查,使用所派发记录携带的上界年龄 节 1.7。 对于新鲜观测,生产者随后以验证过的运动模型将位置与不确定度传播至决策时刻,将每个像素测量反投影为光学坐标并配上传感器协方差,5 再经校准的外参,以一阶 SE(3) 误差传播 将点与协方差转换到机体坐标系。 验证过的残差(含偏差)随后确定内缩半径;当不再存在有效界限时,受影响运动被拒绝。 感知输出的是一个主张 \((\mathbf{p}_{\text{body}}, \mathbf{\Sigma}_{\text{body}}, C_{\text{inset}}, t_{\text{age}})\),而非一个裸坐标。
学到的场景特征与深度
开放词表感知在度量感知之上叠加了一个学到的语义层,由 三维视觉基础模型 构建。 一种自监督主干网络,如 DINOv2 (Oquab 等 2023年),可产生稠密图块特征;一种可提示的分割器,如 SAM (Kirillov 等 2023年),可产生与类别无关的实例掩码;而 ConceptGraphs (Kuwajerwala 等 2024年; Jatavallabhula 等 2023年) 与 Hydra (Hughes 等 2022年) 之类的系统,则将这些掩码和特征经校准深度、外参和里程计提升为 以对象为中心的三维场景图,其节点带有质心、空间协方差和文本对齐的嵌入。
这些特性需要消耗计算与时效预算(Williams 等 2009年)。 在导航相机的 60 Hz 帧率下,一个假设的 3 TFLOP 编码器,在预处理或内存流量之前就需要 180 TFLOP/s 的持续有效吞吐量,而 NVIDIA 为 Jetson AGX Orin 列出的稠密 FP16 算力最高可达 43 TFLOP/s,相关数据见其 技术简报,为峰值算术速率,而非持续模型吞吐量。 编码器在该处理器上即使处于算术上限也无法以相机速率运行,因此感知被划分为多级速率层次结构。 应用处理器上的度量信息输入将相机的 DMA 缓冲区转换为障碍点与占用栅格,速率为 \(30\text{--}60\text{ Hz}\),无需重型主干网络;而基础模型则在关键帧上以 \(1\text{--}5\text{ Hz}\) 更新场景图的语义节点。 缓慢的语义更新仅在新鲜度量感知与许可路径均维持更新之间的物理余量时才可采纳。
诸如 Lift-Splat-Shoot (Philion 和 Fidler 2020年) 之类的相机到鸟瞰图提升阶段,在 Camera-to-bird's-eye-view lifting 中展开论述(Camera ray frustum lifting and BEV splatting),将 2D 视觉主干网络学到的深度假设放置到规划器的度量栅格中,但其深度分箱权重是模型分数而非校准后的度量误差,因此 公式 5 的净空内缩量仍依赖经校验的残差。
本节中的每个界,无论度量还是学习得到的,都假设传感器按校准方式工作。 传播界限定了按建模方式工作的传感器的误差;它并未说明一个已经停止这样工作、但仍以标称速率输出帧的传感器。
观测如何出错
导航相机可能以两种对消费者看来毫无相似之处的方式失效。 若其序列化器链路丢失锁,驱动器会抛出错误,该帧永远不会到达。 若开放货舱门时的光线使镜头饱和,而底座正转向通道,摄像头会以标称速率输出一整帧,其中机架末端是一片饱和的白色。 感知故障恰好沿这条界线分为运行层面的两类。可检测的故障 发生在物理传感器或通信传输明确报告错误条件时。 序列化器—解序列化器链路丢失锁(失去时钟同步)、循环冗余校验检测到损坏载荷、帧缓冲溢出,或传输总线超时。 这些故障易于处理,因为硬件驱动器会在摄取边界断言错误标志。 下游消费者登记缺失的帧并作废陈旧的状态估计;一旦证据年龄超出其预算,许可路径便会拒绝并迁移机器至已验证的备用方案。 与之相对,静默失败 发生在传感器硬件与传输链路均无故障的情况下,即输出一个完全填充、结构上有效的张量,但其数值与物理世界并不相符。
光学通道的光学劣化是静默错误的一个常见来源。6 当直射阳光进入光学孔径时,入射光子数超过 CMOS 光电二极管的物理电荷容量(即“满阱容量”),像素强度被钳制在其最大量化限(图像被截断为纯白),并波及阵列的大片区域。 这种 动态范围饱和 会破坏局部空间梯度。 特征提取器、光流估计器与视差匹配算法因此失效,因为对均匀平坦场进行的数学优化所得信息为零,而驱动程序仍以标称行速率输出有效帧。 低照度环境则引入相反的失效模式。 随着环境照度下降,单个光子的离散、随机到达(光子散粒噪声)以及传感器放大器的固有电学涨落(传感器读出噪声)主导了测量结果。 信噪比急剧下降,导致下游神经网络从随机噪声起伏而非物理场景边界中提取几何特征。 防护镜头或穹顶窗口上的环境污染物(例如水滴、空气中的灰尘或泥浆飞溅)充当不规则折射元件和光学低通滤波器。 它们衰减对比度、扭曲空间几何并遮蔽障碍物,同时传输总线持续运行而不置位任何单一故障标志。
时序与传输异常也可能在无声无息中损坏观测。 若未屏蔽的物理接口受到电磁干扰,反序列化器的比特滑移(硬件丢弃或重复某个比特,使其后整个数据流错位)会改变载荷语义,而无需使标准报文长度失效。 比丢包更危险的是,观测被携带一个错误报告其真实捕获时刻的时间戳送达,因为没有任何机制对此作出标记。 若图像传感器在时刻 \(t_0\) 捕获光子,而较晚的中断处理程序或不同步的系统时钟对由此产生的内存缓冲区进行时间戳标记为 \(t_0 + \delta t\),则下游状态估计器将在错误的机体位姿下对空间特征进行积分。 考虑一台沿给定轨迹以瞬时速度 \(v\) 和线性加速度 \(a\) 运动的机器。 当感知出现未被检测出的时序失同步 \(\delta t\) 时,状态估计器会将障碍物的检测位置分配给 \(t_0 + \delta t\) 时刻的机体坐标,而非 \(t_0\)。 在未建模的时间区间 \(\delta t\) 内,断言位置与真实位置之间的物理状态估计误差 \(\Delta p\) 由运动学漂移关系(公式 6)决定: \[\Delta p = v \cdot \delta t + \frac{1}{2} a \cdot (\delta t)^2 \tag{6}\]
节 1.2 的到达时间戳正是此类静默失同步。 在恒定驱动速度下,加速度项消失,\(v\,\tau_{\text{recv}}\) 偏移量在该处被确定,且没有任何故障标志被置位。 由于流水线持续输出有效张量流,状态估计器假定接收到一次新的观测,从而基于陈旧的物理量计算安全的执行器轨迹。 缺失的帧会导致一种已知信息损失,卡尔曼滤波可通过扩展其状态协方差来处理。 按时到达但时间戳损坏的帧会使滤波器围绕错误的均值收缩协方差,驱动执行器驶向模型认为早已清除的障碍物。
针对静默故障的防御,需要在传感器数据摄取边界部署专用的运行时健康监控器。 像素强度直方图监控器测量直接内存访问传输后原始数字化值的分布,当数值集中于最大位深时识别过曝饱和,当空间方差低于经验噪声下限时识别镜头遮挡。 硬件看门狗定时器跟踪直接内存访问通道上的到达间隔,当帧间间隔超过 \(T_{\text{nominal}} + 3\sigma_{\text{jitter}}\) 时标记传输抖动。 在更高层栈上,光流合理性监控器将计算出的像素位移向量与机体的物理速度包络进行比较,拒绝那些暗示超出机械能力加速度的观测。 在多模态配置中,跨传感器一致性检查将高帧率 (1,000 Hz) 惯性测量单元积分与视觉里程计进行比较。 如果视觉管线报告机器处于静止状态,而加速度计测得持续的 \(2.0\text{ m/s}^2\) 比力(传感器本体所感受到的物理加速度),监控器会检测到该不一致并触发感知故障。
每个运行时健康监控器只能通过 因果边界 的因果边界处换能器所报告的量来观察世界,因此单个传感通道无法验证其自身的语义解释。 一套光学洁净、曝光均衡、无抖动传输、微秒级时钟同步的相机模组,仍可能呈现一个观察,使学习得到的模型产生路径畅通的幻觉或忽略障碍物。 由于深度视觉模型通过复杂的非线性流形投影高维输入,分布内的光学异常(例如过道上的高对比度阴影、印在纸箱上的人像,或来自收缩膜或潮湿地面的镜面眩光)会生成合理的像素统计量、有效的光流场以及较高的模型置信度。 单传感器监控器评估的是数据采集过程是否在标称限内运行,而非推断出的语义是否与物理现实相符。 第二模态,例如激光雷达或雷达,在其覆盖范围与失效依赖关系经过核查后,可以佐证部分光学主张。 一条独立验证过的权限路径只能在其感知、模型、时序与执行器假设范围内强制保持安全间距;两条路径都不确立不受限的语义真值。
表 3 的比较展示了每种感知机制各自可以主张什么,以及在合并主张之前必须核查什么。 只有当第二模态自身的覆盖范围、时序、标定和故障相关性得到确立时,它才能降低一种共享的失效模式。
| 模态 | 直接物理信息 | 主要局限 | 与许可相关的核查项 |
|---|---|---|---|
| RGB 相机 | 方位角、外观与图像运动 | 单目深度尺度存在歧义;眩光、黑暗和遮挡可能隐藏物体 | 新鲜采集时间与经校验的度量佐证 |
| 标定立体视觉 | 在基线与纹理区域均满足适用条件时由视差推导的距离 | 在视差误差固定时,测距误差随距离增大而增大;标定与匹配可能失败 | 与距离相关的残差与偏差验证 |
| 脉冲式激光雷达 | 采样方向上的飞行时间测距 | 精度、角向覆盖与天气响应取决于设备与场景 | 合格测距范围、回波质量与扫描时序 |
| FMCW 雷达 | 检测回波的测距与径向速度 | 多径、角度模糊与检测门限随配置而变化 | 轨迹关联与穿越目标覆盖 |
| 事件相机 | 异步亮度变化事件与运动线索 | 静态物体可能产生很少的事件;输出带宽取决于事件率与编码方式 | 事件率健康度与独立的度量深度来源 |
War Story 1.1: 静默感知缺失(2016 年)
机制:该横穿路径碰撞不属于 2015 年预警与自动制动系统所设计的车头至车尾碰撞模式。 美国国家公路交通安全管理局报告称,自动制动需要摄像头与雷达之间的一致性;不寻常的车辆外形可能妨碍摄像头分类(NHTSA ODI PE16-007).
影响:国家运输安全委员会(NTSB)未发现任何记录表明前方碰撞预警或自动紧急制动系统曾检测到该物体,也未发生撞击前的制动。 车辆从挂车下方驶过,挂车削掉了该车辆的车顶(图 5)。
响应:国家运输安全委员会(NTSB)考察了运行设计域(ODD)边界与驾驶员参与度,以及碰撞避免系统。
系统启示:检测缺失并不构成“路径畅通”的证据。 权限式设计必须兼顾检测覆盖范围与未被支撑的场景;健康标志无法证明所有相关物体均已被感知。
无论观测数据生产方为某项观测附加何种记录,该记录都只能揭示该生产方能够核查的故障。 可检测的故障与时间、校准条件可容纳于这样一份记录中;而诸如 Williston 处的遗漏这类静默语义错误,仍需单独的证据。
观测契约
下游追踪器或权限路径无法仅凭张量重建曝光时序、安装校准或记录完整性。 因此,感知生产方将每条观测封装进一份记录:观测在缺少捕获时刻、时钟标识、对权限路径时钟的有界换算,以及处于其有效适用范围内的校准(帧标识承载该校准的修订)时不可用;消费者在读取载荷之前会拒绝缺少其中任何一项的记录。 时钟域与 \(\mathcal{H}_1\) 老化预算取自 交接矩阵 的移交记录,本记录消费该移交记录;感知提供捕获侧的字段,使消费者能够据此核验一条观测。
Definition 1.2: 观测契约
观测契约 是规范感知数据结构的形式化信息物理规范,它约束穿越计算边界的感知数据,并将原始观测张量绑定到其曝光中点时间戳(\(t_{\text{capture}}\))、同步误差界(\(\epsilon_{\text{sync}}\))、传感器坐标帧标识符、半正定空间协方差矩阵(\(\boldsymbol{\Sigma}\))以及硬件健康位掩码: \[\mathcal{O} = \langle t_{\text{capture}}, \epsilon_{\text{sync}}, \text{frame\_id}, \mathbf{T}_{\text{payload}}, \boldsymbol{\Sigma}, \text{mask}_{\text{health}}, \text{crc32} \rangle\]
- 意义:下游状态估计器或权限路径可为每条声明计算其上界年龄,选取其有效变换,并在该声明影响运动提议之前约束其空间误差。
- 区别:与通用网络消息头或序列化模式(例如 Protocol Buffers)不同,观测契约将序列化完整性与构建溯源同物理时间(\(t_{\text{MCU}} = a t_{\text{capture}} + b\))和空间变换有效性耦合在一起。
- 常见误区:将感知输出视为纯粹的几何坐标 \([x, y, z]^\top\),而不传播其空间协方差或传感器健康位掩码,会使下游安全滤波器对传感器遮挡或光照退化视而不见。
| 记录字段 | 含义 | 消费者检查 | 导航相机 |
|---|---|---|---|
capture_timestamp_ns, capture_clock_id |
共享且单调的捕获时钟中的曝光中点 | 在检查年龄之前,先通过有效的有界偏斜映射转换为安全微控制器(MCU)时间 | 时钟 cam_nav 上的曝光中点;在 51.6 ms 之后派发(表 2) |
sync_error_ns |
捕获到 MCU 时钟转换误差的上界 | 累加到最坏情况年龄;缺失或过期则拒绝 | 0.2 ms,因此派发时的最大年龄为 51.8 ms |
sequence_index |
单调相机帧计数器 | 检测空洞与乱序 | 在帧率为 60 Hz 时,每帧计数一次 |
sensor_frame_id |
变换树键与标定修订 | 选择有效的外参变换 | 连同其标定修订,见 nav_cam |
tensor_payload |
格式、维度、长度与缓冲区 | 读取前校验边界和记录的校验和 | |
spatial_covariance |
半正定空间误差标度 | 与分别校准的偏置及尾界配合使用 | |
calibration_metadata |
内参、外参、系数、温度、有效范围 | 拒绝其验证区域之外的校准 | |
provenance_digest |
固件与模型版本的 SHA-256 | 与批准版本匹配;这并非载荷完整性 | |
payload_crc32 |
CRC 覆盖序列化后的记录头部(不含本字段)与载荷 | 检测意外记录损坏;并非用于认证 | |
health_bitmask |
硬件与感知有效性标志 | 拒绝存在安全关键故障的声明 | 同步丢失、链路、传输与饱和位;输入支持位取自 评估无法确立什么 |
字段 表 4 构成定义元组背后的完整集合,为每条观测及其生成修订分别记录时间。 本例中的所有相机都在共享的单调捕获域中锁定曝光中点;时间戳不是自 UNIX 纪元起的纳秒数。 滚动快门声明还必须指明其时间所代表的是哪一行或区域的采集时间,而 sequence_index 独立于时钟换算检测缺失帧。 若 MCU 使用不同的时钟,则同步服务提供带版本号的换算 \(t_{\text{MCU}}=a t_{\text{capture}}+b\)(其中 \(t_{\text{capture}}\) 为曝光中点 \(t_0\),其所属为 节 1.2)、其有效区间,以及实测误差界 \(\epsilon_{\text{sync}}\)。 调度在记录送达提案者的那一刻,以 MCU 时钟为时间基准,标注年龄上界估计 \(t_{\text{MCU,dispatch}}-t_{\text{MCU,capture}}+\epsilon_{\text{sync}}\)。 该提案将该年龄带入许可路径;若该转换无效,或该上界年龄超过其拒绝阈值,许可即拒绝该观测。 从调度到许可检查节拍的间隔,承载了分块推断与链路,并非证据年龄;用于机器整体构造的一个耦合预算 的租约负责为其计费。
对于导航相机,阈值是被停止预算计费的年龄加上转换界,即 51.6 ms 加 0.2 ms,亦即 51.8 ms;而记录在派发时的年龄就已等于该拒绝阈值,因此任何进一步的延迟 ,无论是跨采集时刻批处理帧,还是主机争用,都会被拒绝。 预算仅将 51.6 ms 的年龄按距离计费;而边界在驱动限下的行进量 0.3 mm 被包含在定位余量 \(\delta_{\text{loc}}\) 之中。
变换键与校准修订锚定了度量坐标。7 固件/模型摘要支持版本溯源;payload_crc32 检测序列化后对实际头部与载荷的意外改动。 校验和与构建哈希都无法证明语义真值,且没有带密钥的校验,两者都无法对对抗性生产者进行认证。
在健康位掩码中,低位报告硬件故障,如同步丢失或传输错误;高位可以报告感知有效性问题,例如遮挡或超出评估所测试支持的输入,而这些输入支持位实现了 评估无法确立什么 中指定的运行时监控器。 安全关键位被置位时,必须拒绝所涉主张。
显式记录布局同样支持故障注入。 测试可以改变采集时间、省略序列号、放大报告的协方差,或置位遮挡标志,然后检查消费者是否在其预算内拒绝或降级该声明。 此类变异用于验证对注入记录故障的响应;物理眩光、失准与执行器行为仍需通过 对抗性验证 中的独立测试。
↳ 下游: 观测契约变异会送入 硬件故障注入 中的硬件在环验证框架。
Checkpoint 1.2: 观测记录检查
在向下游状态估计器传入原始传感器观测之前,先了解观测记录契约:
一次通过的记录检查仅表明该主张格式良好且时间上有效,而感知系统中的反复出现的错误始于将这种通过读作该主张为真的证据。
谬误与陷阱
感知必须在控制执行所要求的严格截止时间内完成对世界的描述。 语义置信度与高空间精度无法弥补会交付陈旧观测、融合异步曝光、或将平均带宽当作单帧自采集以来的观测年龄上界的流水线。
谬误:仅仅因为其语义分类置信度很高就接受一个观察结果,而不论其年龄如何。
移动操作臂接收到“前方机架末端畅通”的高置信度观测,但视觉流水线的停滞使其延迟数帧送达。 在曝光之后才走出来的人,并不在该帧中。 置信度分数描述的是较早的那张图像,而非当前的畅通情况。 因此,将数据包接受为“当前”可能授权向已被占用的机架末端移动。 感知接口必须将测量年龄与其拒绝阈值(节 1.7) 进行比较,并拒绝超过该阈值的观测。 任何在缺少新数据情况下的持续状态传播 都必须携带不断扩大的运动学不确定性协方差,以约束动态障碍物的可达集,使控制器能够随着历史证据的变老而强制安全包络。
陷阱:在不具备亚毫秒级硬件时钟同步的情况下融合多传感器空间观测。
移动操作臂上的两台相机监视同一料架立柱,而基座以它的 1.5 m/s 驱动极限行驶,但两台相机的时钟相差 \(\Delta t_{\text{skew}}\)。 将两个曝光时间 视为相等,会使立柱在两个视角中相距 \(v\,\Delta t_{\text{skew}}\),随后轨迹关联 可能将一个物理物体分裂为两条相互冲突的轨迹(“重影”)。 空间标定 无法修正未知的时序偏移。 同步要求必须依据可容忍的位置误差和最大相关速度来确定,由 \(\Delta t_{\text{skew}} \le \epsilon_{\text{pos}} / v_{\text{max}}\) 表达。 在曝光时刻进行硬件同步 ,可确保该界限得到满足;若未先核查空间误差预算就选定一种定时技术(如 IEEE 1588 PTP ),则融合假设仍未得到验证。
陷阱: 依据平均相机带宽推断关键读出的截止时间。
可接受的平均利用率并不能说明一次读出在同步捕获与推理突发之后要等待多久。 在移动操作臂上,任何许可路径的读出都不会排在该突发之后等待,因为微控制器读取的是自身内存;突发反而会使帧老化,或推迟应用处理器正在准备的数据块(节 1.4),因此在同步突发下需要验证的量是主机从捕获到调度的老化量及其续期间隔,而不是其平均带宽。
摘要
感知结果只有在采集时刻、时钟换算、坐标系与误差限定均适配所提出的运动时,才可用。 年龄属于测量本身,而非承载它的管线。 它从曝光中点开始;在移动机械臂上,导航相机的采集到调度年龄本身构成停止预算的一行,并且是自人员出现时刻起算的制动前延迟 \(\tau_{\text{delay}}\) 的第一个区间。 按到达时刻为帧定时的估计器,只是掩盖了部分该年龄,而非将其消除;主机内存争用只会使其变长,因此约束设计的年龄是在预期相机负载下测得的年龄。 许可路径拒绝任何上年龄超出预算年龄加时钟换算限定的记录,因此超出预算的延迟只会牺牲可用性,而不会牺牲距离。
空间误差从同一净空中扣除。 在固定视差噪声下,立体深度误差随距离的平方增长;外禀位移会引入随距离增长的力臂误差;而协方差或学习得到的深度分数本身都无法单独提供 99 百分位净空界。 净空内缩裕量建立在已验证残差、检查后的偏差以及明确声明的尾部风险或硬界之上。
真正重要的是那些无声的失效:从帧时间戳错误到图像饱和,再到幻觉出的无障碍路径,因为它们都不会触发故障标志。 观测契约使消费者能够在读取载荷之前,检查捕获时刻、时钟换算、坐标系、标定、完整性与健康状态等可核验项目,并据此拒绝不合格的观测,而语义层面的真值仍然需要独立证据。
要点回顾: 空间感知与信息新鲜度
- 观测年龄自捕获时刻起算:硬件锁定的曝光时间、在需要时相关的行时序,以及有界的时钟换算,使消费者在准许运动之前能够计算出年龄上界。
- 一个错误的时间戳比丢失一帧更糟: 丢失的帧会扩大估计器的不确定性; 而一枚合理但时间戳错误的帧会将其收缩到错误的位姿周围。 时钟边界、序列计数器和年龄检查必须先于任何载荷使用。
- 模型分数不等于几何不确定性: 分类或深度分箱分数并不能提供经过校准的空间尾部。 度量协方差、偏差与残差验证是净空决策的独立输入。
- 校准可能发生变化: 冲击或温度可能改变传感器到机身的外参变换。 本章的 0.005 弧度外参偏移在 10 m 处投影为 50 mm 的横向量,最大可达整个 \(\delta_{\text{loc}}\) 余量。 如此量级的偏移属于应当拒绝的故障,而非可纳入预算的误差,因此每次校准都附带一个由消费方核验的有效期区间。
- 健康标记无法认证语义: 来自健康传感器的结构有效记录,仍可能描述一条并不存在的无障碍路径。 只有当第二模态的覆盖范围与失效相关性经过核验时,它才可能收窄这一缺口。
- 感知提供带时间戳的快照: 持续的空间记忆在观测之间、以及穿过遮挡时传播状态与不确定性;许可路径仍会核验该传播结论是否落在运动裕度之内。
感知正是本部分的原则“提案并非许可”与其新鲜度条款以可测形式相遇之处。 提案证据时点的可信度,受限于观测契约所声明的采集时点与有界时钟换算的可靠程度。 传感器记录的是物理能量相互作用,而非几何真值;无法说明其何时、何处被测量的主张,不能支撑运动。
后续内容: 从感觉光子到空间记忆
脚注
滚动快门极线几何:滚动快门 CMOS 图像传感器在阵列上依次复位、积分和读出像素扫描线,而不是同时曝光所有光电二极管。 当相机在此读出间隔内旋转时,笔直的物理边缘会投影为图像平面上的弯曲几何弧线。 这种渐进式扫描线倾斜违反了刚性多视图极线约束,导致视觉惯性里程计的因子图——该里程计通过融合相机特征与惯性测量来估计运动——除非用连续时间 B 样条相机轨迹插值每条扫描线的瞬时位姿,否则都会计算出虚假的特征深度。↩︎
MIPI CSI-2 总线协议: CSI-2 通过 D-PHY 或 C-PHY 通道传输串行化像素流至主机接收端与 DMA 控制器。 它可以避免网络栈,但传输与排队延迟仍取决于传感器模式、通道速率、控制器以及竞争流量;参见 Heterogeneous SoC Mailboxes and Memory Barriers。↩︎
Video4Linux2 直接内存访问:V4L2 驱动可使用散点-收集或物理连续 DMA 存储,并通过
V4L2_MEMORY_MMAP导出采集缓冲区,由兼容的dma_buf导入方共享。 参见 Heterogeneous SoC Mailboxes and Memory Barriers。↩︎逆深度参数化:在视觉状态估计中,以逆深度(\(\rho = 1/z\))对 3D 地标进行参数化,可将非线性的、重尾的深度误差分布(\(\delta z \propto z^2\))转换为图像平面上近似高斯的误差空间。 在逆深度下,位于光学无穷远 \(z \to \infty\) 的点具有有限的方差(\(\rho \to 0\))。 有关严格推导与因子图表述,参见 Spatial Representations and Scene Parameterization。↩︎
度量反投影与协方差传播:一阶传播将测量协方差映射为 \(\mathbf{\Sigma}_c = \mathbf{J}_{\text{unproj}}\mathbf{\Sigma}_{\text{meas}}\mathbf{J}_{\text{unproj}}^\top\),再映射为 \(\mathbf{\Sigma}_b = \mathbf{R}_{bc}\mathbf{\Sigma}_c\mathbf{R}_{bc}^\top + \mathbf{\Sigma}_{\text{ext}}\)。 其最大特征值给出一个主方差尺度,而非 一个 第 99 百分位误差半径。 分位数需要假定并校准误差分布,包括偏差;参见 Camera Projective Geometry and Covariance Propagation。↩︎
激光雷达测距游走与探测器泛溢: 在采用雪崩光电二极管(APDs)或单光子雪崩二极管(SPADs)的主动飞行时间激光雷达接收机中,也会发生类似的静默退化。 当发射的激光脉冲从回归反射表面反射时,强烈的回波能量使光电探测器进入非线性电荷饱和,并通过 测距游走(探测器泛溢)加速前沿判别器阈值穿越。 由此产生的时序畸变会人为缩短计算出的往返时间(\(t_{\text{TOF}}\)),使表观障碍物边界向传感器方向偏移数厘米,而无需置位硬件故障标志。↩︎
机械热膨胀:对于立体基线 \(b =\) 0.20 m 与未建模的基线变化 \(|\delta b| =\) 0.1 mm,一阶几何给出 \(|\delta z|/z\approx|\delta b|/b\)。 在 \(z =\) 20 m 处,对应的深度偏差约为 10 mm,前提是焦距与视差在其他方面保持不变。 温度补偿必须结合实际安装与标定情况进行校验。↩︎


