在ros环境下的RealsenceT265标定以及Vins mono运行

相机标定


作为t265而言,虽然官方提供了标定的出厂内参rs-enumerate-devices -c可以获得,但是我们在vins和orbslam中仍然有可能需要自己标定数据,这里给出教程。


首先我们要明确适用的模型,一般普通相机小孔模型即可,而鱼眼镜头则是适用KB4(Kannala-Brandt Camera Model)或者Mei模型


目前可以用kalibr或者vins-fusion里面的camera-calibration 也可以用basalt。首先我们需要明确basalt必须使用AprilTag,而kalibr则是可以使用AprilTag、Checkerboard、Crilegrid这三种标定板


下面我们将从kalibr 和 basalt来实现标定操作


kalibr


首先安装依赖库


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


接下来安装kalibr


cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/Kalibr.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash


在看其他博客时发现可能会出现python相关的问题,我用的是ubuntu16.04自带的Python 2.7.12版本,在安装过程中没有出现问题。


下载官方给的**april_6x6_80x80cm_A0.pdf**或者其它标定文件。打印或者在屏幕显示,测量实际的尺寸后,在你之前新建的文件夹中新建apriltags.yaml,我的文件内容如下:


target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.16           #size of apriltag, edge to edge [m]
tagSpacing: 0.3125         #ratio of space between tags to tagSize
                         #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]


之后,在你新建的文件夹中打开终端,开启realsenseT265


roslaunch realsense2_camera rs_t265.launch


修改话题发布频率


rosrun topic_tools throttle messages /camera/fisheye2/image_raw 10.0 /fisheye2
rosrun topic_tools throttle messages /camera/fisheye1/image_raw 10.0 /fisheye1


录制文件,注意录制过程中要缓慢移动相机,使其能看到完整清晰的标定文件(可以先在录制前打开rviz,调用image的话题进行观察,判断移动的位置)


rosbag record -O cameras_calibration /fisheye1 /fisheye2


在录制好后使用下面的指令输出


kalibr_calibrate_cameras --target ~/cal/apriltags.yaml --bag  ~/cal/cameras_calibration.bag --models omni-radtan omni-radtan --topics /fisheye1 /fisheye2

basalt_calibrate --dataset-path ~/cal/cameras_calibration.bag --dataset-type bag --aprilgrid ~/cal/apriltags.json --result-path ~/cal/ --cam-types ds ds ds ds


此外可以参考(https://blog.csdn.net/lemonxiaoxiao/article/details/109369181https://blog.csdn.net/HUST_lc/article/details/96144499)这两篇文章。


IMU标定,以及联合标定


上一篇:SLAM本质剖析-Eigen


下一篇:在ROS中实现多Realscene D455数据的读取并发布