记录:ubuntu18下使用karlibr标定zed双目相机

一 karlibr的安装

1)安装依赖

sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-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

2)创建工作区间

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --merge-devel # Required for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

3)安装kalibr

cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/Kalibr.git

进行编译

cd ~/kalibr_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -j4

source一下

source ~/kalibr_workspace/devel/setup.bash

到这里第一步kalibr安装完成

二 下载标定板

官网上的试过很多次,无法下载,所以选择自己创建标定版
1)创建二维码格式的棋盘

kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.088 --tspace 0.3

这一步运行完会生成标定板图片 .pdf格式。

2)需要自己创建标定板的yaml参数文件

touch aprilgrid.yaml
参数文件内容如下
target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.088           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

3)将标定板图片打印出来后,用尺子测量一下图中二维码的边长,对aprilgrid.yaml 文件进行修改。
二维码的边长对应tagsize,我这里测出来的二维码边长是2.45cm,即0.024m。
小方格的边长是0.75cm。
tagSpacing=0.75/2.45=0.3
修改参数文件名april_6x6.yaml,和内容:

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.024           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

三 开始进行录制数据

1)启动zed相机节点 没什么好说的

roslaunch zed_wrapper zed.launch

2)zed相机通常以60Hz左右的频率进行录制,而kalibr标定又要求频率不能过高,所以进行降帧,频率设为4hz

rosrun topic_tools throttle messages /zed/zed_node/left/image_rect_color 4.0 /zedl 
rosrun topic_tools throttle messages /zed/zed_node/right/image_rect_color 4.0 /zedr

3)录制数据之前,推荐打开rviz,加入image,可以确保标定板始终在相机视野内

rosrun rviz rviz

4)开始录制标定bag文件

rosbag record -O zedlr1.bag /zedl /zedr

这里通过官网上的介绍,应该是按照pyr三个轴进行旋转,包括左右上下平移,录制时长我是保持在接近两分钟的样子。

5)查看录制的文件

rosbag info zedlr1.bag

显示以下信息:

lijing@lijing:~/kalibr_workspace$ rosbag info zedlr1.bag 
path:        zedlr1.bag
version:     2.0
duration:    1:52s (112s)
start:       Apr 30 2022 17:16:28.10 (1651310188.10)
end:         Apr 30 2022 17:18:20.97 (1651310300.97)
size:        2.9 GB
messages:    848
compression: none [848/848 chunks]
types:       sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics:      /zedl   424 msgs    : sensor_msgs/Image
             /zedr   424 msgs    : sensor_msgs/Image

四 开始进行双目标定

利用kalibr进行相机标定

rosrun kalibr kalibr_calibrate_cameras --bag zedlr1.bag --topics /zedl /zedr --models pinhole-radtan pinhole-radtan --target april_6x6.yaml

显示以下信息则说明标定完成:

All views have been processed.

Starting final outlier filtering...
  Progress 96 / 96 	 Time remaining:                      

..................................................................

Calibration complete.

标定完成后,会产生3个文件:
作用:

.yaml  主要作用为了后期IMU+相机联合标定
.pdf   以图的方式显示效果
.txt   含有相机的内参以及重投影误差

总结:其实zed相机自带标定程序,标定后的结果在usr/local/zed/settings中,但是为了后期联合imu进行标定,kalibr 工具还是得会应用。
参考的帖子有:
ZED2相机标定–双目、IMU、联合标定
Kalibr 标定双目内外参数以及 IMU 外参数
学习Kalibr工具–Camera标定过程
VIO测试准备——使用imu_utils和kalibr进行相机与IMU标定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徽州SLAM李

如果觉得不错,打赏一下哦,嘻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值