Kalibr联合标定Camera-IMU(总结)

    技术2022-07-10  135

    Kalibr联合标定Camera-IMU

    1. Kalibr安装2. 制作标定板3. Camera标定3.1采集数据3.2开始标定3.3标定验证 4. IMU标定5. Camera与IMU联合标定

    1. Kalibr安装

    安装依赖库 sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-indigo-vision-opencv ros-indigo-image-transport-plugins ros-indigo-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev sudo pip install python-igraph --upgrade 创建工作空间 mkdir -p ~/catkin_kalibr/src cd ~/catkin_kalibr/src catkin_init_workspace cd .. catkin_make echo "source ~/catkin_kalibr/devel/setup.bash" >> ~/.bashrc source ~/.bashrc cd ~/catkin_kalibr/src git clone https://github.com/ethz-asl/Kalibr.git cd .. catkin_make

    等待一段时间(20分钟左右),安装编译完成.

    2. 制作标定板

    使用aprilgrid标定板,可以使用kalibr自带工具自定义生成不同大小的标定板,命令行如下:

    kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT] // 例如 kalibr_create_target_pdf --type apriltag --nx 5 --ny 5 --tsize 0.025 --tspace 0.4

    将以上命令生成的标定板PDF格式(例子使用的是A4纸大小),直接无缩放比例打印出来,就可以直接使用。

    可能会出现问题

    No moudule named pyx 译器报错,import不到pyx这个包(pyx这个python包用于产生pdf文件)

    解决方法

    输入一下命令安装即可,pip安装的话,没有效果,依旧存在错误,(很迷)

    sudo apt-get install python-pyx

    3. Camera标定

    3.1采集数据

    设置采样频率,并转换话题

    制作好标定板之后,就可以使用相机对标定板进行拍摄,进行数据采集,相机要从多个角度对标定进行拍摄,这样相机pose要足够多。命令行如下:

    rosrun topic_tools throttle messages /camera/rgb/image_color 5.0 /kinect

    命令行中 topic_tools throttle 为ROS中改变 topic 发布频率的命令,通常设备采集频率为30Hz左右,这会使得标定的图像太多,急剧增加计算量,最好将 ros topic 降到 5hz左右进行数据采集。要确保图像不要模糊,运动不要太快!

    制作rosbag

    数据采集好了之后就可以进行 bag 的制作了,命令行如下:

    rosbag record -O mono_calibra.bag /kinect

    3.2开始标定

    kalibr_calibrate_cameras --bag '/home/guofeng/mono_calibra.bag' --topics /kinect --models pinhole-equi --target april_5x5_25x10mm.yaml

    3.3标定验证

    可以使用calibration validator进行标定结果的验证,原理是对重投影误差进行量化分析。命令行如下:

    kalibr_camera_validator --cam camchain.yaml --target april_5x5_25x10mm.yaml

    命令行中 camchain.yaml 与 target.yaml 分别为上述中 camera 标定的结果以及标定板的 yaml 文件。

    4. IMU标定

    参见另一篇博客:IMU标定及Allan方差分析

    5. Camera与IMU联合标定

    Processed: 0.011, SQL: 10