失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > zed2i相机中imu内参的标定及外参标定

zed2i相机中imu内参的标定及外参标定

时间:2023-08-30 00:32:51

相关推荐

zed2i相机中imu内参的标定及外参标定

zed2i中imu内参的标定

参考:

/weixin_42681311/article/details/126109617

/weixin_43135184/article/details/123444090

值得注意,imu内参的标定其实不是那么重要,大致上给一个值应该影响不大,比如下面是官方给的参数imu-params.yaml,直接拿来用应该也影响不大:

#Accelerometersaccelerometer_noise_density: 1.4e-03 #Noise density (continuous-time)accelerometer_random_walk: 8.0e-05 #Bias random walk#Gyroscopesgyroscope_noise_density:8.6e-05 #Noise density (continuous-time)gyroscope_random_walk: 2.2e-06 #Bias random walkrostopic:/zed2i/zed_node/imu/data_raw#the IMU ROS topicupdate_rate: 400.0#Hz (for discretization of the values above)

值得注意的是,zed2i提供的imu话题有两个,一个是/zed2i/zed_node/imu/data,一个是zed2i/zed_node/imu/data_raw,前者应该是在后者基础上做了一定的滤波处理,我后面采用了前者。

如果自行标定,可以采用imu_utils,项目链接。安装时要先下载code_utils在workspace中,并且先catkin_make完,然后再放入imu_utils,再次catkin_make

1. 录制

找个地方放置相机,保持静止,录制2个多小时。

source ~/桌面/zed/ros/catkin_ws/devel/setup.bashroslaunch zed_wrapper zed2i.launchrosbag record -O /zed2i/zed_node/imu/data /zed2i/zed_node/imu/data

2. 标定

~/桌面/liweidong/imu_utils_ws/src/imu_utils-master/launch下创建文件zed2i.launch,内容如下:

<launch><node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"><param name="imu_topic" type="string" value= "/zed2i/zed_node/imu/data"/><param name="imu_name" type="string" value= "zed2i"/><param name="data_save_path" type="string" value= "$(find imu_utils)/data/zed2i/"/><param name="max_time_min" type="int" value= "120"/><param name="max_cluster" type="int" value= "100"/></node></launch>

其中,需要注意max_time_min是要标定的时间长度(分钟),应当与录制的bag的时间长度一致,或者短一点,切不可比录制时间还长,不然标定会一直卡住。接下来进行标定:

source ~/桌面/liweidong/imu_utils_ws/devel/setup.bashroslaunch imu_utils zed2i.launchrosbag play -r 200 xxx.bag

这里将bag的播放速度加速为200倍。最后得到标定结果如下:

%YAML:1.0---type: IMUname: zed2iGyr:unit: " rad/s"avg-axis:gyr_n: 1.9907361538269255e-03gyr_w: 3.9258772229758955e-05x-axis:gyr_n: 1.7828571086570984e-03gyr_w: 3.7532900901648101e-05y-axis:gyr_n: 2.3517096252728287e-03gyr_w: 4.4818844873917894e-05z-axis:gyr_n: 1.8376417275508495e-03gyr_w: 3.5424570913710870e-05Acc:unit: " m/s^2"avg-axis:acc_n: 2.1014029979335751e-02acc_w: 4.5856543488109373e-04x-axis:acc_n: 2.1554014733711498e-02acc_w: 3.7798512464262918e-04y-axis:acc_n: 2.0157270328875061e-02acc_w: 5.3636489912956887e-04z-axis:acc_n: 2.1330804875420693e-02acc_w: 4.6134628087108308e-04

用得到的数据替换最上边官方给的结果imu_params.yaml

#Accelerometersaccelerometer_noise_density: 2.1014029979335751e-02 #Noise density (continuous-time)accelerometer_random_walk: 4.5856543488109373e-04 #Bias random walk#Gyroscopesgyroscope_noise_density:1.9907361538269255e-03 #Noise density (continuous-time)gyroscope_random_walk: 3.9258772229758955e-05 #Bias random walkrostopic:/zed2i/zed_node/imu/data#the IMU ROS topicupdate_rate: 400.0#Hz (for discretization of the values above)

标定zed2i中cam-imu之间的外参

将相机标定时录制的bag,相机标定得到的结果camchain.yaml、标定板参数文件aprilgrid.yaml和imu标定得到的结果imu-params.yaml放在同个目录下。

执行以下命令对外参进行标定:

rosrun kalibr kalibr_calibrate_imu_camera --bag xxx.bag --cam camchain.yaml --imu imu-params.yaml --target aprilgrid.yaml

需要等几分钟,然后就会得到标定结果

如果觉得《zed2i相机中imu内参的标定及外参标定》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。