imu相机标定_相机+imu标定

官方上是跑在ros indigo上的,但是实测用kinetic也没问题,主要就是装依赖的时候改下名字(下面命令行里有写注释)

1 工具箱 Kalibr 安装

安装依赖

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 # 注意把官网的indigo换成kinetic

sudo pip install python-igraph --upgrade # 这个一开始没装,后来使用过程中提示少igraph

新建一个workspace,或者在已存在的workspace中进行

cd src/

git clone https://github.com/ethz-asl/Kalibr.git

build(这步久一点)

cd

catkin build -DCMAKE_BUILD_TYPE=Release -j4

source

source ~/kalibr_workspace/devel/setup.bash

2 使用Kalibr标定

相机标定(以只标定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的联合标定

安装

sudo apt-get install ros-kinetic-camera-calibration

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/my_camera/image camera:=/my_camera

标定过程非常方便直观且较准确

4 也可以直接看相机参数

realsense相机出厂时标定过参数,可以通过以下方法查看:(对于realsense D435)

打开相机

roslaunch realsense2_camera rs_camera.launch

查看相应相机的信息

rostopic echo /camera/color/camera_info

5 相机信息

内参矩阵A:(cx,cy)为主光轴点,一般为图像的中心;fx和fy为焦距

畸变参数向量:[k1,k2,p1,p2]

你可能感兴趣的:(imu相机标定)