保姆级教程:在Ubuntu20.04上用Matlab和livox-camera-calib搞定无人机相机雷达联合标定

张开发
2026/4/12 18:21:28 15 分钟阅读

分享文章

保姆级教程:在Ubuntu20.04上用Matlab和livox-camera-calib搞定无人机相机雷达联合标定
无人机多传感器标定实战从Matlab内参标定到Livox雷达-相机外参联合标定在无人机自主导航与三维重建领域相机与激光雷达的联合标定是构建精准感知系统的基石。本文将手把手带您完成Ubuntu 20.04环境下从相机内参标定到Livox雷达-相机外参标定的全流程特别针对PX4开发者与机器人研究者提供避坑指南。1. 环境准备与工具链搭建1.1 基础系统配置推荐使用纯净的Ubuntu 20.04 LTS系统ROS Noetic作为基础框架。以下关键依赖需提前安装# 安装ROS Noetic基础包 sudo apt install ros-noetic-desktop-full # PCL点云库建议1.10版本 sudo apt install libpcl-dev # Eigen线性代数库3.3.7 sudo apt install libeigen3-dev注意若之前安装过其他ROS版本建议新建独立工作空间避免依赖冲突1.2 Ceres Solver编译安装这是livox-camera-calib最易出错的环节。推荐从源码编译最新稳定版2.1.0# 安装依赖项 sudo apt-get install -y cmake libgoogle-glog-dev libgflags-dev # 编译安装 git clone https://ceres-solver.googlesource.com/ceres-solver mkdir ceres-build cd ceres-build cmake ../ceres-solver -DBUILD_TESTINGOFF make -j$(nproc) sudo make install验证安装成功pkg-config --modversion ceres # 应返回版本号2. 相机内参标定实战2.1 数据采集规范使用USB相机采集棋盘格图像时需注意棋盘格尺寸建议8x6角点数7x5拍摄角度应覆盖相机整个视场每个姿态保持2秒以上便于截图最终有效图片数建议30-50张启动采集节点的典型命令roslaunch usb_cam usb_cam_uav2.launch rosrun image_view extract_images _sec_per_frame:0.5 image:/UAV2_usbcam/image_raw2.2 Matlab标定技巧在Matlab Camera Calibrator工具中导入图片后勾选2 Coefficients畸变模型剔除重投影误差0.5像素的异常图片导出参数时注意保存为3x3矩阵形式[fx, 0, cx; 0, fy, cy; 0, 0, 1]3. Livox雷达-相机外参标定3.1 标定环境搭建创建工作空间并编译livox-camera-calibmkdir -p ~/livox_ws/src cd ~/livox_ws/src git clone https://github.com/hku-mars/livox_camera_calib.git cd .. catkin_make -DCMAKE_BUILD_TYPERelease3.2 数据同步采集方案推荐两种数据获取方式方法优点缺点例程数据快速验证与实际设备存在偏差真实采集结果准确需严格时间同步同步采集关键命令# 启动雷达节点 roslaunch livox_ros_driver2 msg_MID3602.launch # 同步录制点云数据 rosbag record /livox/lidar -O calibration.bag3.3 配置文件深度解析以config_outdoor.yaml为例关键参数说明common: image_file: /path/to/calib_image.png # 标定板图像路径 pcd_file: /path/to/pointcloud.pcd # 对应点云文件 result_file: extrinsic.txt # 输出结果路径 camera: camera_matrix: [1364.45, 0, 958.327, 0, 1366.46, 535.074, 0, 0, 1] dist_coeffs: [0.095, -0.198, -0.000147, -0.00043, 0] calib: calib_config_file: config_outdoor.yaml use_rough_calib: true # 初始外参较差时建议开启提示首次标定时建议先用例程数据验证环境配置正确性4. 标定结果验证与优化4.1 结果文件解读成功标定后将生成extrinsic.txt文件包含4x4变换矩阵# 旋转矩阵R和平移向量t [R11 R12 R13 t1 R21 R22 R23 t2 R31 R32 R33 t3 0 0 0 1]4.2 常见问题排查表现象可能原因解决方案点云不可见坐标变换错误检查initial_extrinsic参数标定发散初始值偏差大启用use_rough_calib内存不足点云密度过高使用voxel_grid过滤4.3 精度提升技巧在标定板不同距离1m/3m/5m分别采集数据使用AprilTag等更高精度标定板采用时间同步硬件触发采集多次标定取平均结果完成所有步骤后建议将标定结果集成到PX4的传感器驱动中。实际飞行测试时可以通过比对视觉里程计与激光里程计的位姿差异来验证标定质量。

更多文章