我们进行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
输出结果为相机内参、畸变系数、重投影误差等。
内容
这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。
图片格式是:19位时间(精度为ns,精度不够可以补0).png。
IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度
制作
输入命令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里面为图片:
其内文件结构应是这样:
/cam0/image_raw
/imu0
awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。
参考
https://github.com/ethz-asl/Kalibr/wiki/bag-format
可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)
camchain.yaml:
imu.yaml:
target.yaml:
tagCols 为标定格每行个数
tagRows 为标定格每列个数
tagSize 为标定格二维码边长,单位m
参考: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的延时。
Timeshift表示的就是IMU相对于camera的延时;
重投影误差,大部分在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标定的目的是为了得到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
输出结果为相机内参、畸变系数、重投影误差等。
内容
这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。
图片格式是:19位时间(精度为ns,精度不够可以补0).png。
IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度
制作
输入命令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里面为图片:
其内文件结构应是这样:
/cam0/image_raw
/imu0
awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。
参考
https://github.com/ethz-asl/Kalibr/wiki/bag-format
可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)
camchain.yaml:
imu.yaml:
target.yaml:
tagCols 为标定格每行个数
tagRows 为标定格每列个数
tagSize 为标定格二维码边长,单位m
参考: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的延时。
Timeshift表示的就是IMU相对于camera的延时;
重投影误差,大部分在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标定的目的是为了得到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
输出结果为相机内参、畸变系数、重投影误差等。
内容
这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。
图片格式是:19位时间(精度为ns,精度不够可以补0).png。
IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度
制作
输入命令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里面为图片:
其内文件结构应是这样:
/cam0/image_raw
/imu0
awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。
参考
https://github.com/ethz-asl/Kalibr/wiki/bag-format
可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)
camchain.yaml:
imu.yaml:
target.yaml:
tagCols 为标定格每行个数
tagRows 为标定格每列个数
tagSize 为标定格二维码边长,单位m
参考: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的延时。
Timeshift表示的就是IMU相对于camera的延时;
重投影误差,大部分在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标定的目的是为了得到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
输出结果为相机内参、畸变系数、重投影误差等。
内容
这是在连续时间获得的拍摄标定版的图像和IMU数据包,需要自己采集后再利用kalibr提供的一个工具去转化成.bag包。.bag文件的具体内容是:标定需要的图像以及相对应的imu数据。
图片格式是:19位时间(精度为ns,精度不够可以补0).png。
IMU文件格式是:19位时间戳(精确到ns,精度不够可以补0),角速度,含重力的加速度
制作
输入命令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里面为图片:
其内文件结构应是这样:
/cam0/image_raw
/imu0
awsome.bag 是制作好的bag文件。输出默认在kalibr_bagcreater此时在的目录下。
参考
https://github.com/ethz-asl/Kalibr/wiki/bag-format
可以使用rosbag info XX.bag来查看生成的bag文件情况(包括图片、IMU、时间数据等)
camchain.yaml:
imu.yaml:
target.yaml:
tagCols 为标定格每行个数
tagRows 为标定格每列个数
tagSize 为标定格二维码边长,单位m
参考: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的延时。
Timeshift表示的就是IMU相对于camera的延时;
重投影误差,大部分在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