參考:
雙目相機與IMU camera IMU 聯(lián)合標定工具箱使用方法——Kalibr
官方推薦教程:DIY Indoor Autonomous Drone! - Part 2 (Kalibr & Calibration) (需要自行FQ)
官方上是跑在ros indigo上的,但是實測用kinetic也沒問題,主要就是裝依賴的時候改下名字(下面命令行里有寫注釋)
1 工具箱 Kalibr 安裝
官網(wǎng):https://github.com/ethz-asl/kalibr
安裝官網(wǎng):https://github.com/ethz-asl/kalibr/wiki/installation
采用第二種——原碼編譯的方式安裝
- 安裝依賴
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev 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 # 注意把官網(wǎng)的indigo換成kinetic
sudo pip install python-igraph --upgrade # 這個一開始沒裝,后來使用過程中提示少igraph
- 新建一個workspace,或者在已存在的workspace中進行
cd src/
git clone https://github.com/ethz-asl/Kalibr.git
- build(這步久一點)
cd <workspace>
catkin build -DCMAKE_BUILD_TYPE=Release -j4
- source
source ~/kalibr_workspace/devel/setup.bash
2 使用Kalibr標定
以https://github.com/ethz-asl/kalibr/wiki/downloads的Sample datasets中IMU-camera calibration為例(需要自行FQ下載,當然也可以不跑這個example,只是為了熟悉流程查看效果):
- 相機標定(以只標定1個camera為例)
kalibr_calibrate_cameras --target april_6x6.yaml --bag dynamic.bag --models pinhole-equi --topics /cam0/image_raw
- imu+相機(可以只用上面生成的1個camera信息,壓縮包里自帶的是2個cam的信息)
kalibr_calibrate_imu_camera --target april_6x6.yaml --bag dynamic.bag --cam camchain-dynamic.yaml --imu imu_adis16448.yaml
自己使用時:
(要先打印好april tag,并更改april、imu的yaml文件,并確定好自己需要的topic名稱,打開相機和imu)
- 錄制rosbag
# 可以只錄制需要的topics(在這里是/camera/color/image_raw和/imu),并命名為topics.bag
rosbag record -O topics /camera/color/image_raw /imu
# 若錄制全部topics
rosbag record -a
- 可以查看錄制的topics.bag
rosbag play topics.bag
然后用rosrun rivz rviz、rostopic echo /imu等方式查看錄制的rosbag
- 相機標定 及 imu+相機標定 見上面,改成自己的文件即可
3 另一種相機標定方法:camera_calibration
此方法只用于標定相機,而kalibr可用于相機和imu的聯(lián)合標定
- 安裝
sudo apt-get install ros-kinetic-camera-calibration
- 使用
官網(wǎng)http://wiki.ros.org/camera_calibration/上例子:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/my_camera/image camera:=/my_camera
標定過程非常方便直觀且較準確
4 也可以直接看相機參數(shù)
realsense相機出廠時標定過參數(shù),可以通過以下方法查看:(對于realsense D435)
- 打開相機
roslaunch realsense2_camera rs_camera.launch
- 查看相應相機的信息
rostopic echo /camera/color/camera_info
5 相機信息
-
內(nèi)參矩陣A:(cx,cy)為主光軸點,一般為圖像的中心;fx和fy為焦距
- 畸變參數(shù)向量:[k1,k2,p1,p2]
