4. 感知坐标系与数据表示

无人飞行器要完成避障、定位、建图与目标理解,第一步不是“看见”,而是把不同传感器输出的数据放到同一个可计算的参照系里。若坐标系不统一,激光雷达测到的障碍点可能被投影到图像错误位置,视觉深度也可能与IMU积分轨迹错位。因此,本节先明确坐标系定义与变换链,再讨论点云、图像、深度图、栅格与体素五类数据表达及其适用场景。

一、三类坐标系与变换链

工程中通常约定:世界坐标系(记为 W)固定于起点或局部地图原点,Z 轴向上、X 轴指向初始航向;机体坐标系(B)原点在无人机重心,X 轴指向机头、Y 轴指向右侧、Z 轴向下,符合航空常用的前右下约定;传感器坐标系(S)原点在各传感器光心或测量中心,轴向由安装姿态决定。三者关系可写成:

p_W = R_WB · (R_BS · p_S + t_BS) + t_WB
其中 R 为旋转矩阵,t 为平移向量;
R_WB、t_WB 来自定位与姿态估计(如 VIO/INS);
R_BS、t_BS 为传感器外参,由标定得到。

实际使用时,外参标定给出的是传感器到机体的旋转与平移,例如某前视相机的 t_BS = [0.12, 0.00, -0.05] m,表示相机光心位于重心前方 0.12 m、下方 0.05 m。若把点从传感器系转到世界系,顺序必须是“先外参、后位姿”,顺序颠倒会引入随姿态变化的误差。内参则负责把三维点投影到像素平面:u = fx·X/Z + cx,v = fy·Y/Z + cy,其中 fx、fy、cx、cy 为相机内参。只有外参、内参、位姿三者一致,点云与图像才能正确对齐。

坐标系变换链与数据表达关系 世界坐标系 W Z 上 / X 初始航向 全局地图、路径规划 机体坐标系 B 前右下 / 重心原点 姿态、速度、控制 传感器坐标系 S 光心/测量中心 原始测量数据 R_WB, t_WB R_BS, t_BS 五类数据表达 点云 三维坐标集合 几何精确、无序 图像 二维像素阵列 纹理、语义丰富 深度图 每像素距离 稠密、有噪声 栅格 二维占据/代价 规划友好、离散 体素 三维占据网格 三维避障、建图 变换顺序:传感器 → 机体 → 世界;投影需内参 K 点云/深度图偏几何,图像偏语义,栅格/体素偏规划

二、点云、图像与深度图:几何与语义的分工

点云是三维空间中的离散点集合,每个点通常包含 (x, y, z, intensity)。激光雷达一圈扫描可产生数万点,优点是几何精度高、不受光照影响,缺点是稀疏、无序、缺少纹理。处理时常用体素下采样把 0.1 m 体素内的点合并,再用 KD-Tree 做近邻搜索,用于地面分割、聚类和障碍物检测。

图像是二维像素阵列,每个像素记录颜色或灰度,语义信息丰富,适合识别行人、车辆、交通标志。但单目图像缺少绝对尺度,需要借助已知目标尺寸或与IMU、激光雷达融合才能恢复距离。相机内参矩阵 K 把三维点投影到像素:

K = [[fx, 0, cx],
     [0, fy, cy],
     [0,  0,  1]]
示例:fx=460, fy=460, cx=320, cy=240(640×480 图像)

深度图为每个像素给出到相机的距离,常见来源是双目立体匹配、结构光或ToF。它比点云稠密,但边缘处易出现空洞和噪声。深度图与彩色图对齐后,可逐像素反投影为点云:X = (u-cx)·Z/fx,Y = (v-cy)·Z/fy,Z = depth(u,v)。这条反投影链是视觉与激光融合的基础。

三、栅格与体素:面向规划的空间离散

栅格地图把空间切成二维方格,每格用 0~1 的占据概率或代价值表示。例如 0.05 m 分辨率的局部栅格,无人机前方 10 m×10 m 区域对应 200×200 个格子。栅格适合二维路径搜索(A*、D*),计算量小、更新快,但无法表达悬空障碍和桥洞。

体素地图是栅格的三维推广,常用 0.1~0.3 m 体素。每个体素记录占据、空闲或未知,配合八叉树可压缩存储。体素适合三维避障、无人机穿越复杂环境时的可通行空间分析,代价是内存和计算量随分辨率立方增长。实际系统中常采用“局部体素 + 全局栅格”的分层结构:近处用体素保证三维安全,远处用栅格保证规划效率。

四、选型与使用建议

选择数据表达时,先问三个问题:任务需要几何还是语义?需要二维还是三维?对实时性和内存的约束是什么?若做语义识别,优先图像;若做精确测距与几何避障,优先点云或深度图;若做路径搜索,优先栅格;若做三维空间通行判断,优先体素。多传感器系统中,通常同时维护多种表达,并通过外参和位姿把它们统一到世界坐标系下,形成一致的环境描述。

实践提示:标定外参后,建议用一块已知尺寸的标定板同时被相机和激光雷达观测,检查点云投影到图像边缘的重合误差。若误差超过 2~3 像素,应重新标定或检查时间同步。
注意:坐标系轴向约定必须在全系统中保持一致。若把“前右下”误用为“前左上”,姿态旋转矩阵会整体翻转,导致避障方向完全相反。