【学习记录】Kalibr标定相机与IMU的一点记录

一周更多的时间在搞这个Kalibr的相机与IMU的标定,记录一些问题:

相机重投影误差

相机一定要好好标定,如果重投影误差太大,是优化不出来外参的。好在相机内参,与IMU外参标定,都可以用AprilTag棋盘格标定。重投影误差应该在1px以下才能接受,否则重新标定。

IMU的内参标定

IMU内参标定一开始用的是:imu_utils
后来换成了:allan_variance_ros
因为据说后者没有这些问题:

在这里插入图片描述

详见:https://discourse.ros.org/t/open-source-allan-variance-tool-for-rosbags/23136/6

IMU串口的USB缓存问题

一开始标定出来的结果,IMU和相机外参旋转看起来正确,但平移极其离谱,接近0,在kalibr上还提了一个issue:issue#599
官方指出,IMU和相机的时间offset有问题:我用的是100Hz的IMU,但时间间隔却是0或者30ms,如下图:

在这里插入图片描述
后来发现,是采用 boost::asio::serial_port 读取串口时,时间戳确实有问题:大概过30ms连续读出来3次的IMU数据。最后确定是串口延迟导致,修改方法:每次插入设备后,通过修改 linux 内核,降低串口的延迟。

sudo sh -c 'echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer'

之后这个问题解决,能够做到1ms左右输出一个。这个问题整整调试了一天才发现并解决,在此纪念。

其他问题

如下图,是一次失败的标定。这个原因虽然报错是buffer不够,但本质原因是误差太大。注意看, Gyroscope error 在几百,这显然是不正常的。后来发现原因,gyro 的单位是 rad/s 而不能是 degree,因此量级差太多。修改后一切正常。
在这里插入图片描述

附一个正常的标定结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值