相机与imu的标定(Kalibr)

阅读: 评论:0

相机与imu的标定(Kalibr)
www.6711在进⾏vio算法开发前最重要的事是对设备内参外参的标定,其准确性直接决定了算法的有效性.这⾥我将对最著名的kalibr标定⼯具的使⽤步骤进⾏说明,包括安装、相机标定、imu标定、相机与imu联合标定等步骤.
1.
2. 安装依赖
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-indigo-vision-opencv ros-indigo-im age-transport-plugins ros-indigo-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy pyth on-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev
sudo pip install python-igraph --upgrade
3. 创建⼯作空间
mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/indigo/setup.bash
catkin init
catkin config --extend /opt/ros/indigo
catkin config --merge-devel # Necessary for catkin_tools >= 0.4. catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
4. clone源码
cd ~/kalibr_workspace/src
git clone github/ethz-asl/Kalibr.git
5. 源码编译
cd ~/kalibr_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -j4
source ~/kalibr_workspace/devel/setup.bash
相机标定
1. 准备标定板
椅子上有坐下去下载标定板Aprilgrid(建议)对应的pdf和yaml⽂件,其中pdf⽤于标定数据采集,yaml作为标定的配置⽂件.
2. 记录标定数据(假设有两个相机)
启动相机,发布图像话题
相机朝向标定板,并做上下左右晃动
记录晃动过程中的标定数据
rosbag record -o cams_data.bag /image1 /image2
3. 标定
执⾏
cd kalibr_workspace
source devel/setup.bash
kalibr_calibrate_cameras --models omni-radtan pinhole-equi --target aprilgrid.yaml --bag cams_data.bag --topics /image1 /image2
说明
–models 指的是待标定相机的类型
–target 标定板配置信息,即"准备标定板"过程中下载的yaml⽂件
–bag 记录的标定数据
–topics 每个相机标定数据对应的话题名
其中–models、–topics参数后⾯的配置参数数量与相机数量保持⼀致.
验证
kalibr_camera_validator --cam camchain.yaml --target target.yaml
使⽤kalibr⾃带的kalibr_camera_validator验证器就可以验证标定的准确性,原理是分析重投影误差,其中–cam配置参数即上⾯"执⾏"过程标定获得的相机内参,–target是标定板配置信息.
imu标定
双向呼叫
相机与imu联合标定
配置参数准备
相机参数⽂件(camchain.yaml)
通过相机标定过程后按以下格式填⼊对应的参数
cam0:
camera_model: pinhole # 相机模型
intrinsics: [461.629, 460.152, 362.680, 246.049] #内参
distortion_model: radtan #畸变类型
distortion_coeffs: [-0.27695497, 0.06712482, 0.00087538, 0.00011556] #畸变系数
# 相机0与imu之间位姿变换的估计值
T_cam_imu:
- [0.01779318, 0.99967549,-0.01822936, 0.07008565]
- [-0.9998017, 0.01795239, 0.00860714,-0.01771023]
- [0.00893160, 0.01807260, 0.99979678, 0.00399246]
- [0.0, 0.0, 0.0, 1.0]
timeshift_cam_imu: -8.121e-05 # 相机与imu时间戳偏移
rostopic: /image0 # 相机1拍摄的数据话题
resolution: [752, 480] # 拍摄照⽚的分辨率
cam1:
camera_model: omni
微电解填料
intrinsics: [0.80065662, 833.006, 830.345, 373.850, 253.749]
distortion_model: radtan
distortion_coeffs: [-0.33518750, 0.13211436, 0.00055967, 0.00057686]
不锈钢筛网种类T_cn_cnm1:
- [ 0.99998854, 0.00216014, 0.00427195,-0.11003785]
- [-0.00221074, 0.99992702, 0.01187697, 0.00045792]
- [-0.00424598,-0.01188627, 0.99992034,-0.00064487]
- [0.0, 0.0, 0.0, 1.0]
T_cam_imu:
- [ 0.01567142, 0.99978002,-0.01393948,-0.03997419]
- [-0.99966203, 0.01595569, 0.02052137,-0.01735854]
-
[ 0.02073927, 0.01361317, 0.99969223, 0.00326019]
- [0.0, 0.0, 0.0, 1.0]
timeshift_cam_imu: -8.681e-05
rostopic: /image1
resolution: [752, 480]
imu参数⽂件(imu.yaml)
通过imu标定过程后按以下格式填⼊参数
#Accelerometers 加速度计测量噪声密度和偏置随机游⾛噪声密度
accelerometer_noise_density: 1.86e-03  #Noise density (continuous-time)
accelerometer_random_walk:  4.33e-04  #Bias random walk
#Gyroscopes 陀螺仪测量噪声密度和偏置随机游⾛噪声密度
无感电阻器
gyroscope_noise_density:    1.87e-04  #Noise density (continuous-time)
gyroscope_random_walk:      2.66e-05  #Bias random walk
rostopic:                    /imu0      # imu测量数据话题
update_rate:                200.0      # imu更新频率
标定数据录取
rosbag record -o dynamic.bag /imu /image0 /image1
标定
kalibr_calibrate_imu_camera --target april.yaml --cam camchain.yaml --imu imu.yaml --bag dynamic.bag

本文发布于:2023-06-22 03:49:53,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/147975.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:标定   数据   过程   配置   话题   准确性   噪声   参数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图