相机与IMU的标定

1.准备工作

        使用v4l2来查看摄像头支持哪些参数的设置,在采集之前进行设置

2.单目相机/双目相机的单独标定

        使用opencv和kalibr,opencv进行图像的采集,保存为yuv文件或者其他raw图,保存后的图像专程png,使用

rosrun kalibr kalibr_bagcreater --folder dataPath --output-bag filename.bag

        将采集的png图像转化为rosbag,使用rosbag info可以查看bag文件的属性信息。

        使用下面的命令进行标定,有几个摄像头就写几个pinhole-radtan,完成后会生成.txt,.pdf和yaml文件。

rosrun kalibr kalibr_calibrate_cameras \
                --models pinhole-radtan pinhole-radtan \
                --bag bagpath/filename.bag \
                --topics /cam0/image_raw /cam1/image_raw \
                --target yamlpath/april_8x6.yaml \
                --bag-from-to 5 25 \
                --show-extraction

3.IMU的标定

        采集至少2个小时的静止数据,CSV文件,时间戳,加速度计,陀螺仪共7个列。

        将CSV文件可以转换为bag文件,可以参考https://blog.csdn.net/weixin_45432823/article/details/131351554

        标定直接参考https://github.com/ori-drs/allan_variance_ros,注意有坑,按照ros的工作空间直接来。

#在~目录下执行以下操作
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
cd src
git clone https://github.com/ori-drs/allan_variance_ros
cd ..
catkin_make
pwd
#记得每次新开终端时要艘source或者写入到~/.bashrc中
source 自定义空间名词/build/setup.bash
#将csv文件转换的文件作为输入,输出在制定的路径下
rosrun allan_variance_ros cookbag.py --input BAGPATH/**.bag --output YOURPATH/name.bag

#注意后面的path_to_config_file是一个yaml文件,可以参考allan_variance_ros/config下的.yaml
#imu_topic: '/imu0'
#imu_rate: 200
#measure_rate: 200 # Rate to which imu data is subsampled
#sequence_time: 7200 # 2 hours in seconds
#path_to_folder_containing_bag是包的路径,运行时有可能会遇到numpy版本不兼容
#pip3 install numpy==1.21可以解决
rosrun allan_variance_ros allan_variance [path_to_folder_containing_bag] [path_to_config_file]

#可视化绘图并获取参数
rosrun allan_variance_ros analysis.py --data PATH/NAME.csv

#生成的imu.yaml要进行修改topic和update_rate

  4.IMU和摄像头的联合标定

        参考链接

        http://github.com/ethz-asl/kalibr/wiki/bag-format

        文件结构,以双目相机为例。  

+-- dataset-dir
    +-- cam0
    │   +-- 1385030208726607500.png
    │   +--      ...
    │   \-- 1385030212176607500.png
    +-- cam1
    │   +-- 1385030208726607500.png
    │   +--      ...
    │   \-- 1385030212176607500.png
    \-- imu0.csv

 输入命令,这样就得到了联合bag文件

rosrun kalibr kalibr_bagcreater --folder dataset-dir/. --output-bag cam_imu.bag

联合标定

rosrun kalibr kalibr_calibrate_imu_camera --bag YOURCAM_IMU.bag --cam YOURcamera-camchain.yaml --imu YOURimu.yaml --target 标定板.yaml --show-extraction --bag-from-to start_sec stop_sec

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值