1. 坐标系和欧拉角
镭神激光雷达坐标系和相机坐标系都为右手坐标系
镭神激光雷达坐标系:原点为激光雷达光学中心,右为X,前为Y,上为Z
相机坐标系:原点为相机光心,右为X,下为Y,前为Z
同时规定欧拉角:绕X轴为俯仰角(pitch),绕Y轴为翻滚角(roll),绕Z轴为偏航(航向)角(heading、yaw)。
此时镭神激光雷达坐标系到相机坐标系,只需绕X轴顺时针旋转90°,即俯仰角(pitch)为90°。
2. 标定过程
先标定相机内参,因为相机的内参为定值,再标定激光雷达到相机的外参。
2.1相机内参
相机内参,具体原理参考计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换,它采用张正友标定法计算,具体标定方式有三种:
2.1.1使用Autoware进行标定
具体过程参考:Autoware进行相机雷达联合标定
2.1.2 使用ROS进行标定
具体过程参考:ROS下采用camera_calibration进行单目相机标定
2.1.3 使用OpenCV进行标定
先用制作标定棋盘格,具体过程参考:相机标定(Camera calibration)Matlab----棋盘格标定原理,流程,建议制作的标定棋盘格稍微大点
标定代码在CalibrationCamera_optimization文件下
其中./CalibrationCamera_optimization/src 中CalibrationChessboard_.cpp负责标定
Undistort_.cpp为去畸变后的图像与原图片对比
2.2 激光雷达到相机的外参
激光雷达坐标系到相机坐标系,由旋转和平移而成。先设想激光雷达坐标系绕X轴顺时针旋转90°,再用尺子测量出激光雷达坐标系原点到相机坐标系原点X、Y、Z轴的距离。写入coninfo.ini中的lidar2CameraTranslationX、lidar2CameraTranslationY、lidar2CameraTranslationZ,注意正负。(物体的位置是绝对的,点云位置是相对的,激光雷达坐标系变化,点云位置随之变化)
然后再调节欧拉角,根据经验lidar2CameraPitch的范围为(85°-95°),lidar2CameraRoll的范围为(-5°-5°),lidar2CameraHeading为(-5°~5°)。
确定距离阈值distThre,即截取0~distThre米的点云投影在图片上。先调节lidar2CameraPitch,使点云中物体的高度与相机中物体的高度一致,轮廓对齐;再调节lidar2CameraHeading,使点云中物体的宽度与相机中物体的宽度一致,轮廓对齐;如果点云Z轴左右两边的物体,一边高一边低,调节lidar2CameraRoll,使点云Z轴左右两边的物体的高度一致。