0
点赞
收藏
分享

微信扫一扫

《自动驾驶传感器(激光雷达、摄像头)校准技术手册》

小亦同学321 08-10 09:00 阅读 44

一、传感器校准基础原理

(一)校准核心目标

自动驾驶系统依赖激光雷达(LiDAR)和摄像头的协同感知环境,校准的核心是建立两者之间的空间坐标转换关系,确保同一物理目标在两种传感器数据中的坐标统一。具体包括:

  • 外参校准:求解激光雷达与摄像头之间的旋转矩阵(R)和平移向量(T),实现三维点云与二维图像的坐标映射。
  • 内参校准:针对摄像头,确定焦距、主点坐标、畸变系数等参数;针对激光雷达,修正测距误差、角度偏移等硬件特性。
  • 时间同步:消除传感器数据采集的时间差(通常要求误差 < 1ms),避免运动状态下的时空错位。

(二)坐标系定义

  • 激光雷达坐标系:以激光雷达中心为原点,X 轴向前,Y 轴向左,Z 轴向上(右手坐标系)。
  • 摄像头坐标系:以镜头光学中心为原点,X 轴向右,Y 轴向下,Z 轴向前(遵循图像坐标系惯例)。
  • 世界坐标系:以校准板中心或车辆后轴中心为基准,用于统一多传感器坐标。

二、激光雷达校准技术

(一)内参校准

  1. 测距误差校准
  • 使用高精度测距仪(如激光跟踪仪)在不同距离(5m、10m、50m)测量标准靶标的实际距离,对比激光雷达输出值,建立误差补偿模型(如线性修正:d_corrected = k*d_measured + b)。
  • 环境补偿:记录不同温度(-20℃~60℃)和湿度下的测距偏差,加入温度传感器实现动态校准。
  1. 角度偏差校准
  • 利用多面体校准靶(如正十二面体),通过激光雷达扫描靶面法线方向,计算水平角和垂直角的偏移量,生成角度修正表。
  • 配置示例(激光雷达内参文件):

{  "angle_correction": {    "horizontal": [0.01, 0.02, ..., -0.01],  // 水平角修正值(每线)    "vertical": [-0.03, -0.02, ..., 0.02]   // 垂直角修正值(每线)  },  "distance_correction": {"k": 1.002, "b": -0.05}}

(二)外参校准(与车身坐标系)

  1. 校准工具:平面校准板(带棋盘格或二维码)、高精度全站仪。
  2. 流程
  • 将校准板固定在已知坐标的位置(如(5m, 0, 0)),激光雷达扫描获取点云。
  • 提取校准板平面方程,计算其在激光雷达坐标系中的位置。
  • 通过 3 组以上不同位置的校准数据,求解激光雷达到车身坐标系的转换矩阵。

三、摄像头校准技术

(一)内参校准

  1. 棋盘格校准法
  • 使用打印的棋盘格模板(如 8×6 格,方格边长 20mm),在不同角度(至少 10 组)拍摄图像。
  • 通过 OpenCV 的calibrateCamera函数计算内参矩阵(K)和畸变系数(k1, k2, p1, p2, k3):

import cv2import numpy as npobjpoints = []  # 三维世界坐标imgpoints = []  # 二维图像坐标# 读取棋盘格图像并检测角点(省略)ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(    objpoints, imgpoints, img_size, None, None)# 内参矩阵mtx: [[fx, 0, cx], [0, fy, cy], [0, 0, 1]]

  1. 畸变矫正:使用校准得到的畸变系数对图像进行矫正,消除鱼眼效应或透视变形:

h, w = img.shape[:2]newcameramtx, roi = cv2.getOptimalNewCameraMatrix(mtx, dist, (w, h), 1, (w, h))dst = cv2.undistort(img, mtx, dist, None, newcameramtx)

(二)外参校准(与激光雷达)

  1. 基于校准板的联合校准
  • 将带反光标记的棋盘格置于传感器前方,确保激光雷达可扫描到反光点,摄像头可拍摄到棋盘格。
  • 提取激光雷达坐标系下的反光点三维坐标(P_lidar)和摄像头坐标系下的棋盘格角点二维坐标(P_img)。
  • 通过 PNP(Perspective-n-Point)算法求解转换矩阵:

# 已知3D点和对应2D点,求解旋转和平移retval, rvec, tvec = cv2.solvePnP(    objectPoints=P_lidar,  # 激光雷达3D点    imagePoints=P_img,     # 摄像头2D点    cameraMatrix=mtx,      # 摄像头内参    distCoeffs=dist        # 畸变系数)R, _ = cv2.Rodrigues(rvec)  # 旋转向量转矩阵

  1. 动态校准优化:在车辆行驶过程中,通过匹配路面特征(如车道线、路灯),使用 ICP(迭代最近点)算法优化外参,减少静态校准误差。

四、联合校准与验证

(一)联合校准流程

  1. 硬件准备:确保传感器固定牢固(振动导致的位移需 < 0.1mm),连接时间同步装置(如 PTP 时钟)。
  2. 数据采集
  • 静态场景:采集至少 5 组不同位置的校准板数据。
  • 动态场景:在结构化道路(如停车场)采集包含丰富特征的数据(墙体、柱子、地面标线)。
  1. 参数求解:融合静态校准的初始值和动态优化结果,得到最终外参矩阵。
  2. 结果验证:计算点云投影到图像的重投影误差(需 < 1 像素),误差过大则重新校准。

(二)校准验证方法

  • 可视化验证:将激光雷达点云通过外参投影到摄像头图像,检查点云是否与对应物体边缘对齐(如车辆轮廓、行人轮廓)。
  • 定量指标
  • 重投影误差:error = mean(sqrt((u_proj - u_gt)^2 + (v_proj - v_gt)^2)) < 1.5px
  • 距离一致性:同一目标的激光雷达测距与摄像头三角测距偏差 < 5cm。

五、常见问题与解决方案

(一)校准误差过大

  • 原因:传感器松动、校准板精度不足、特征点提取错误。
  • 解决
  • 使用机械臂固定传感器,确保无位移;
  • 采用工业级校准板(平面度 < 0.1mm);
  • 优化特征点检测算法(如加入亚像素角点 refinement)。

(二)时间同步问题

  • 现象:运动状态下点云与图像不匹配(如车辆行驶中,点云超前图像)。
  • 解决
  • 采用硬件 PTP 同步(精度可达 100ns);
  • 软件补偿:通过时间戳计算延迟Δt,根据车辆速度v修正坐标:x_corrected = x + v*Δt。

(三)温度漂移

  • 现象:校准后随环境温度变化,误差逐渐增大。
  • 解决:在高低温箱中进行多温度点校准,建立温度 - 误差模型,实时补偿。

六、校准周期与维护

(一)校准周期

  • 首次安装:必须进行全参数校准,保存基准参数。
  • 定期校准:每 3 个月或行驶 1 万公里后进行一次验证,误差超限时重新校准。
  • 触发式校准:发生碰撞、传感器拆装、剧烈振动后,强制重新校准。

(二)数据管理

  • 建立校准档案,记录每次校准的参数、环境温度、误差值。
  • 使用版本控制工具管理校准文件,支持参数回溯(如发现新参数异常,可恢复历史有效参数)。

通过严格遵循校准流程、选用高精度工具并定期验证,可确保激光雷达与摄像头的数据一致性,为自动驾驶的环境感知、目标检测和路径规划提供可靠的基础数据支撑。

举报

相关推荐

0 条评论