1.1 自动驾驶工具箱中的坐标系统
自动驾驶工具箱使用这些坐标系:
- 世界坐标系:一个固定的通用坐标系,所有的车辆及其传感器都被放置在这个坐标系中
- 车辆坐标系:锚定在被控车辆上。通常情况下,车辆坐标系放在后轴中点正下方的地面上。
- 传感器坐标系:具体到一个特定的传感器,如相机或雷达。
- 空间:指的是空间。摄像机拍摄的图像空间坐标中的位置以像素为单位表示。
- 图案。棋盘模式坐标系统,通常用于校准摄像机传感器。
这些坐标系适用于整个自动驾驶工具箱功能,从感知到控制再到驾驶场景仿真。
1.1.1世界坐标系
所有的车辆、传感器及其相关的坐标系都放在世界坐标系中。 世界坐标系在全局路径规划、定位、制图和驾驶场景仿真中非常重要。自动驾驶工具箱使用ISO 8855中定义的右手笛卡尔世界坐标系,其中Z轴从地面向上指向。单位为米。
1.1.2 车辆坐标系
自动驾驶工具箱所使用的车辆坐标系(XV、YV、ZV)锚定在被控车辆上。被控车辆指的是包含感知车辆周围环境的传感器的车辆。
- XV轴指向车辆的前方。
- YV轴指向左边,如朝前看。
- ZV轴从地面指向上方,以保持右侧坐标系。
车辆坐标系遵循ISO 8855惯例进行旋转。每个轴在顺时针方向上都是正值,当看该轴的正方向时。
在大多数自动驾驶工具箱功能中,如三维驾驶场景仿真和视觉感知算法中,车辆坐标系的原点在后桥中点下方的地面上。在三维驾驶场景仿真中,原点在车辆纵向和横向中心的下方的地面上。
车辆坐标系中的位置用世界单位表示,通常是米。
由单个传感器返回的值被转换到车辆坐标系中,这样它们就可以被放置在一个统一的参考框架中。
在进行全局路径规划、定位、测绘和驾驶场景仿真时,可以用车辆的姿势来描述车辆的状态。车辆的转向角在逆时针方向为正值。
1.1.3 传感器坐标系
一个自动驾驶系统可以包含位于车辆上或车辆中任何地方的传感器。每个传感器的位置都包含其坐标系的原点。摄像头是自动驾驶系统中经常使用的一种传感器。在摄像机坐标系中表示的点以位于摄像机光学中心的原点来描述。
传感器的横摆、俯仰和侧倾角度遵循ISO惯例。当分别从Z轴、Y轴和X轴的正方向看时,这些角度具有正的顺时针方向。
1.1.4 空间坐标系
空间坐标使能够以比像素坐标更大的粒度来指定图像中的位置。在像素坐标系中,一个像素被视为一个离散的单位,由一个整数行和列对唯一标识。在空间坐标系中,图像中的位置用部分像素来表示。
1.1.5 模式坐标系
为了估计单目相机传感器的参数,常用的技术是使用校准图案的多幅图像来校准相机,如棋盘。在图案坐标系中,(XP,YP),XP轴指向右侧,YP轴指向下方。棋盘原点是棋盘左上角方块的右下角。
每个棋盘角都代表坐标系中的另一个点。例如,原点右边的角是(1,0),原点下方的角是(0,1)。
1.2 校准单目相机
单目摄像头是自动驾驶应用中常用的一种视觉传感器。当安装在被控车辆上时,这种摄像头可以探测物体,探测车道边界,并在场景中跟踪物体。
在使用摄像头之前,必须对其进行校准。摄像机校准是利用校准图案(如棋盘)的图像来估计摄像机的内在和外在参数的过程。估算出内在参数和外在参数后,就可以用它们来配置单眼相机的模型。
1.2.1 估算内在参数
相机的固有参数是相机的属性,如其焦距和光学中心。要估计单目相机的这些参数,请使用ComputerVision Toolbox函数和棋盘图案的图像。
- 如果相机有一个标准镜头,请使用估计CameraParameters函数。
- 如果相机具有鱼眼镜头,则使用估计FisheyeParameters函数。
另外,为了更好地将结果可视化,请使用Camera Calibrator应用程序。
1.2.2 放置外在参数估计的棋盘。
对于安装在车辆上的单目摄像机,外在参数定义了该摄像机的安装位置。这些参数包括摄像机相对于车辆坐标系的旋转角度,以及摄像机离地面的高度。
在估算外在参数之前, 必须从摄像机上捕捉到一个棋盘图案的图像。使用用来估计内在参数的相同棋盘图案。
棋盘使用以图案为中心的坐标系(XP,YP),其中XP轴指向右侧,YP轴指向下方。棋盘原点是棋盘左上角方格的右下角。
当将棋盘图案与车辆相对放置时,XP轴和YP轴必须与车辆的XV轴和YV轴对齐。在车辆坐标系中,XV轴指向车辆的正前方,YV轴指向左侧,如朝前看。原点在路面上,摄像机中心的正下方(摄像机的焦点)。
图案的方向可以是水平或垂直
水平方向
在水平方向上,棋盘图案在地面上,与地面平行。可以将图案放置在车辆前方、车辆后方或车辆的左侧或右侧。
垂直方向
在垂直方向,棋盘图案与地面垂直。可以将图案放置在车辆前方、车辆后方或车辆右侧的左侧。
1.2.3 估计外在参数
在将棋盘放置在想要的位置后,用单目相机捕捉它的图像。然后,使用估计MonoCameraParameters函数来估计外在参数。要使用该函数,必须指定以下内容:
- 摄像机的固有参数
- 在图像中探测到的关键点,在这种情况下,棋盘方块的角。
- 棋牌的世界积分
- 棋盘图案的原点离地面的高度。
例如,对于图像I和固有参数intrinsics,以下代码估计了外在参数。默认情况下,估计MonoCameraParameters假设相机朝向前方,并且棋盘图案具有水平方向。
[imagePoints,boardSize] = detectCheckerboardPoints(I);
squareSize = 0.029; % Square size in meters
worldPoints =generateCheckerboardPoints(boardSize,squareSize);
patternOriginHeight = 0; % Pattern is on ground
[pitch,yaw,roll,height] =estimateMonoCameraParameters(intrinsics,...
imagePoints,worldPoints,patternOriginHeight);
为了提高这些参数的估计精度,要采集多幅图像,并对图像点的值进行平均。
1.2.4 使用内在和外在参数配置摄像机
一旦获得了估计的内在和外在参数,就可以使用 monoCamera 对象来配置摄像机的模型。下面的示例代码显示了如何使用参数 intrinsics、高度、俯仰、横摆和侧倾来配置摄像机。
monoCam= monoCamera(intrinsics,height,'Pitch',pitch,'Yaw',yaw,'Roll',roll);
原文标题 : 基于MATLAB&SIMULINK开发自动驾驶系统第一讲之传感器配置和坐标系转换