Kalibr标定camera-IMU详细步骤

Kalibr标定相机和IMU

——Camera-IMU Calibration

基本情况

目的

我们进行camera-IMU标定的目的是为了得到IMU和相机坐标系的相对位姿矩阵T和相对时间延时t_shift(t_imu=t_cam + t_shift)。

需要的文件

1、.bag:包含有图片信息和IMU数据的ROS包
2、camchain.yaml: 包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵;
3、IMU.yaml: 包含IMU的噪声密度、随机游走;

4、target.yaml:标定目标板的参数

所以在进行camera-IMU 标定前,我们分别要对camera内参和IMU进行标定得到相应的camchain.yaml和IMU.yaml文件

输出的结果

IMU和相机坐标系的相对位姿矩阵T和重投影误差(或者像素误差,Pixel Error(像素误差)指的是the standard deviation of the reprojection error (in Pixel) in both x and y directions respectivly(在x和y方向上以像素为单位的重投影误差的标准差。根据优化的准则我们知道重投影误差越小,就说相机标定的精度越高)。

  准备工作

提前准备好camchain.yaml(包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵)、IMU.yaml(包含IMU的噪声密度、随机游走)、target.yaml(标定目标板的参数),并制作.bag文件。

相机内参标定

可以直接使用matlab的视觉工具箱进行标定,输入文件为20张及以上对标定板在不同角度拍摄的照片和标定板尺寸,具体步骤可以参考:

https://www.cnblogs.com/li-yao7758258/p/5929145.html

    输出结果为相机内参、畸变系数、重投影误差等。

.bag文件

内容

这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。

图片格式是:19位时间(精度为ns,精度不够可以补0).png。

Kalibr标定camera-IMU详细步骤_第1张图片

IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度

Kalibr标定camera-IMU详细步骤_第2张图片

制作

输入命令kalibr_bagcreater--folder dataset-dir --output-bag awsome.bag

dataset-dir是数据输入路径:

kalibr_bagcreater--folder kalibr_workspace/renamed/E_up/. --output-bag E_up.bag

注意要在dataset-dir后加上/.,在根目录运行这个命令即可(在文件目录下输出会生成一个很小的bag文件),输出的bag文件就在根目录下。E_up文件夹结构如下,cam0里面为图片:

Kalibr标定camera-IMU详细步骤_第3张图片

其内文件结构应是这样:

/cam0/image_raw

/imu0

awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。

参考

https://github.com/ethz-asl/Kalibr/wiki/bag-format

可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)

yaml文件信息

camchain.yaml:

Kalibr标定camera-IMU详细步骤_第4张图片

Kalibr标定camera-IMU详细步骤_第5张图片

imu.yaml:

Kalibr标定camera-IMU详细步骤_第6张图片

target.yaml:

Kalibr标定camera-IMU详细步骤_第7张图片

tagCols 为标定格每行个数

tagRows 为标定格每列个数

tagSize 为标定格二维码边长,单位m

Kalibr标定camera-IMU详细步骤_第8张图片

参考:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

标定步骤

将标定板打印出来,置于平稳,光照充足的地方,注意要保持平整。使得相机与IMU位置相对固定,移动camera-IMU系统让IMU三个轴都被激活(不能只有转动,最好在转动的同时移动,确保加速度计也有输出)采集数据。参考:

https://github.com/ethz-asl/kalibr

当需要的四个文件都有时,使用命令: 

     kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml –imu xx/imu.yaml –bag xx/xx.bag –bag-from-to 5 45

即可完成标定。(5-45表示取的标定数据长度,开始部分数据和结束部分可能会有晃动,把它去除)在背后加上--time—calibration可以标定IMU相对于camera的延时。

标定结果

Kalibr标定camera-IMU详细步骤_第9张图片

Timeshift表示的就是IMU相对于camera的延时;

Kalibr标定camera-IMU详细步骤_第10张图片

重投影误差,大部分在1说明很准确。一个数值代表差一个像素点。

参考文献

相机-IMU标定

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

matlab相机内参标定

https://www.cnblogs.com/li-yao7758258/p/5929145.html

yaml文件参数

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

.bag制作

https://blog.csdn.net/w492751512/article/details/81218618

——Camera-IMU Calibration

基本情况

目的

我们进行camera-IMU标定的目的是为了得到IMU和相机坐标系的相对位姿矩阵T和相对时间延时t_shift(t_imu=t_cam + t_shift)。

需要的文件

1、.bag:包含有图片信息和IMU数据的ROS包
2、camchain.yaml: 包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵;
3、IMU.yaml: 包含IMU的噪声密度、随机游走;

4、target.yaml:标定目标板的参数

所以在进行camera-IMU 标定前,我们分别要对camera内参和IMU进行标定得到相应的camchain.yaml和IMU.yaml文件

输出的结果

IMU和相机坐标系的相对位姿矩阵T和重投影误差(或者像素误差,Pixel Error(像素误差)指的是the standard deviation of the reprojection error (in Pixel) in both x and y directions respectivly(在x和y方向上以像素为单位的重投影误差的标准差。根据优化的准则我们知道重投影误差越小,就说相机标定的精度越高)。

  准备工作

提前准备好camchain.yaml(包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵)、IMU.yaml(包含IMU的噪声密度、随机游走)、target.yaml(标定目标板的参数),并制作.bag文件。

相机内参标定

可以直接使用matlab的视觉工具箱进行标定,输入文件为20张及以上对标定板在不同角度拍摄的照片和标定板尺寸,具体步骤可以参考:

https://www.cnblogs.com/li-yao7758258/p/5929145.html

    输出结果为相机内参、畸变系数、重投影误差等。

.bag文件

内容

这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。

图片格式是:19位时间(精度为ns,精度不够可以补0).png。

Kalibr标定camera-IMU详细步骤_第11张图片

IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度

Kalibr标定camera-IMU详细步骤_第12张图片

制作

输入命令kalibr_bagcreater--folder dataset-dir --output-bag awsome.bag

dataset-dir是数据输入路径:

kalibr_bagcreater--folder kalibr_workspace/renamed/E_up/. --output-bag E_up.bag

注意要在dataset-dir后加上/.,在根目录运行这个命令即可(在文件目录下输出会生成一个很小的bag文件),输出的bag文件就在根目录下。E_up文件夹结构如下,cam0里面为图片:

Kalibr标定camera-IMU详细步骤_第13张图片

其内文件结构应是这样:

/cam0/image_raw

/imu0

awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。

参考

https://github.com/ethz-asl/Kalibr/wiki/bag-format

可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)

yaml文件信息

camchain.yaml:

Kalibr标定camera-IMU详细步骤_第14张图片

Kalibr标定camera-IMU详细步骤_第15张图片

imu.yaml:

Kalibr标定camera-IMU详细步骤_第16张图片

target.yaml:

Kalibr标定camera-IMU详细步骤_第17张图片

tagCols 为标定格每行个数

tagRows 为标定格每列个数

tagSize 为标定格二维码边长,单位m

Kalibr标定camera-IMU详细步骤_第18张图片

参考:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

标定步骤

将标定板打印出来,置于平稳,光照充足的地方,注意要保持平整。使得相机与IMU位置相对固定,移动camera-IMU系统让IMU三个轴都被激活(不能只有转动,最好在转动的同时移动,确保加速度计也有输出)采集数据。参考:

https://github.com/ethz-asl/kalibr

当需要的四个文件都有时,使用命令: 

     kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml –imu xx/imu.yaml –bag xx/xx.bag –bag-from-to 5 45

即可完成标定。(5-45表示取的标定数据长度,开始部分数据和结束部分可能会有晃动,把它去除)在背后加上--time—calibration可以标定IMU相对于camera的延时。

标定结果

Kalibr标定camera-IMU详细步骤_第19张图片

Timeshift表示的就是IMU相对于camera的延时;

Kalibr标定camera-IMU详细步骤_第20张图片

重投影误差,大部分在1说明很准确。一个数值代表差一个像素点。

参考文献

相机-IMU标定

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

matlab相机内参标定

https://www.cnblogs.com/li-yao7758258/p/5929145.html

yaml文件参数

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

.bag制作

https://blog.csdn.net/w492751512/article/details/81218618

Kalibr标定相机和IMU

——Camera-IMU Calibration

基本情况

目的

我们进行camera-IMU标定的目的是为了得到IMU和相机坐标系的相对位姿矩阵T和相对时间延时t_shift(t_imu=t_cam + t_shift)。

需要的文件

1、.bag:包含有图片信息和IMU数据的ROS包
2、camchain.yaml: 包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵;
3、IMU.yaml: 包含IMU的噪声密度、随机游走;

4、target.yaml:标定目标板的参数

所以在进行camera-IMU 标定前,我们分别要对camera内参和IMU进行标定得到相应的camchain.yaml和IMU.yaml文件

输出的结果

IMU和相机坐标系的相对位姿矩阵T和重投影误差(或者像素误差,Pixel Error(像素误差)指的是the standard deviation of the reprojection error (in Pixel) in both x and y directions respectivly(在x和y方向上以像素为单位的重投影误差的标准差。根据优化的准则我们知道重投影误差越小,就说相机标定的精度越高)。

  准备工作

提前准备好camchain.yaml(包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵)、IMU.yaml(包含IMU的噪声密度、随机游走)、target.yaml(标定目标板的参数),并制作.bag文件。

相机内参标定

可以直接使用matlab的视觉工具箱进行标定,输入文件为20张及以上对标定板在不同角度拍摄的照片和标定板尺寸,具体步骤可以参考:

https://www.cnblogs.com/li-yao7758258/p/5929145.html

    输出结果为相机内参、畸变系数、重投影误差等。

.bag文件

内容

这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。

图片格式是:19位时间(精度为ns,精度不够可以补0).png。

Kalibr标定camera-IMU详细步骤_第21张图片

IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度

Kalibr标定camera-IMU详细步骤_第22张图片

制作

输入命令kalibr_bagcreater--folder dataset-dir --output-bag awsome.bag

dataset-dir是数据输入路径:

kalibr_bagcreater--folder kalibr_workspace/renamed/E_up/. --output-bag E_up.bag

注意要在dataset-dir后加上/.,在根目录运行这个命令即可(在文件目录下输出会生成一个很小的bag文件),输出的bag文件就在根目录下。E_up文件夹结构如下,cam0里面为图片:

Kalibr标定camera-IMU详细步骤_第23张图片

其内文件结构应是这样:

/cam0/image_raw

/imu0

awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。

参考

https://github.com/ethz-asl/Kalibr/wiki/bag-format

可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)

yaml文件信息

camchain.yaml:

Kalibr标定camera-IMU详细步骤_第24张图片

Kalibr标定camera-IMU详细步骤_第25张图片

imu.yaml:

Kalibr标定camera-IMU详细步骤_第26张图片

target.yaml:

Kalibr标定camera-IMU详细步骤_第27张图片

tagCols 为标定格每行个数

tagRows 为标定格每列个数

tagSize 为标定格二维码边长,单位m

Kalibr标定camera-IMU详细步骤_第28张图片

参考:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

标定步骤

将标定板打印出来,置于平稳,光照充足的地方,注意要保持平整。使得相机与IMU位置相对固定,移动camera-IMU系统让IMU三个轴都被激活(不能只有转动,最好在转动的同时移动,确保加速度计也有输出)采集数据。参考:

https://github.com/ethz-asl/kalibr

当需要的四个文件都有时,使用命令: 

     kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml –imu xx/imu.yaml –bag xx/xx.bag –bag-from-to 5 45

即可完成标定。(5-45表示取的标定数据长度,开始部分数据和结束部分可能会有晃动,把它去除)在背后加上--time—calibration可以标定IMU相对于camera的延时。

标定结果

Kalibr标定camera-IMU详细步骤_第29张图片

Timeshift表示的就是IMU相对于camera的延时;

Kalibr标定camera-IMU详细步骤_第30张图片

重投影误差,大部分在1说明很准确。一个数值代表差一个像素点。

参考文献

相机-IMU标定

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

matlab相机内参标定

https://www.cnblogs.com/li-yao7758258/p/5929145.html

yaml文件参数

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

.bag制作

https://blog.csdn.net/w492751512/article/details/81218618

Kalibr标定相机和IMU

——Camera-IMU Calibration

基本情况

目的

我们进行camera-IMU标定的目的是为了得到IMU和相机坐标系的相对位姿矩阵T和相对时间延时t_shift(t_imu=t_cam + t_shift)。

需要的文件

1、.bag:包含有图片信息和IMU数据的ROS包
2、camchain.yaml: 包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵;
3、IMU.yaml: 包含IMU的噪声密度、随机游走;

4、target.yaml:标定目标板的参数

所以在进行camera-IMU 标定前,我们分别要对camera内参和IMU进行标定得到相应的camchain.yaml和IMU.yaml文件

输出的结果

IMU和相机坐标系的相对位姿矩阵T和重投影误差(或者像素误差,Pixel Error(像素误差)指的是the standard deviation of the reprojection error (in Pixel) in both x and y directions respectivly(在x和y方向上以像素为单位的重投影误差的标准差。根据优化的准则我们知道重投影误差越小,就说相机标定的精度越高)。

  准备工作

提前准备好camchain.yaml(包含相机的内参、畸变参数的文件,如果是双目的话,还包含两个相机的位置转换矩阵)、IMU.yaml(包含IMU的噪声密度、随机游走)、target.yaml(标定目标板的参数),并制作.bag文件。

相机内参标定

可以直接使用matlab的视觉工具箱进行标定,输入文件为20张及以上对标定板在不同角度拍摄的照片和标定板尺寸,具体步骤可以参考:

https://www.cnblogs.com/li-yao7758258/p/5929145.html

    输出结果为相机内参、畸变系数、重投影误差等。

.bag文件

内容

这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。

图片格式是:19位时间(精度为ns,精度不够可以补0).png。

Kalibr标定camera-IMU详细步骤_第31张图片

IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度

Kalibr标定camera-IMU详细步骤_第32张图片

制作

输入命令kalibr_bagcreater--folder dataset-dir --output-bag awsome.bag

dataset-dir是数据输入路径:

kalibr_bagcreater--folder kalibr_workspace/renamed/E_up/. --output-bag E_up.bag

注意要在dataset-dir后加上/.,在根目录运行这个命令即可(在文件目录下输出会生成一个很小的bag文件),输出的bag文件就在根目录下。E_up文件夹结构如下,cam0里面为图片:

Kalibr标定camera-IMU详细步骤_第33张图片

其内文件结构应是这样:

/cam0/image_raw

/imu0

awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。

参考

https://github.com/ethz-asl/Kalibr/wiki/bag-format

可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)

yaml文件信息

camchain.yaml:

Kalibr标定camera-IMU详细步骤_第34张图片

Kalibr标定camera-IMU详细步骤_第35张图片

imu.yaml:

Kalibr标定camera-IMU详细步骤_第36张图片

target.yaml:

Kalibr标定camera-IMU详细步骤_第37张图片

tagCols 为标定格每行个数

tagRows 为标定格每列个数

tagSize 为标定格二维码边长,单位m

Kalibr标定camera-IMU详细步骤_第38张图片

参考:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

标定步骤

将标定板打印出来,置于平稳,光照充足的地方,注意要保持平整。使得相机与IMU位置相对固定,移动camera-IMU系统让IMU三个轴都被激活(不能只有转动,最好在转动的同时移动,确保加速度计也有输出)采集数据。参考:

https://github.com/ethz-asl/kalibr

当需要的四个文件都有时,使用命令: 

     kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml –imu xx/imu.yaml –bag xx/xx.bag –bag-from-to 5 45

即可完成标定。(5-45表示取的标定数据长度,开始部分数据和结束部分可能会有晃动,把它去除)在背后加上--time—calibration可以标定IMU相对于camera的延时。

标定结果

Kalibr标定camera-IMU详细步骤_第39张图片

Timeshift表示的就是IMU相对于camera的延时;

Kalibr标定camera-IMU详细步骤_第40张图片

重投影误差,大部分在1说明很准确。一个数值代表差一个像素点。

参考文献

相机-IMU标定

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

matlab相机内参标定

https://www.cnblogs.com/li-yao7758258/p/5929145.html

yaml文件参数

https://blog.csdn.net/zhubaohua_bupt/article/details/80222321

.bag制作

https://blog.csdn.net/w492751512/article/details/81218618

 

 

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