hku-mars / IKFoM

A computationally efficient and convenient toolkit of iterated Kalman filter.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

用于融合定位

DingFeng9313 opened this issue · comments

在机器人定位过程中,往往激光处理需要0.1~0.2秒时间t,激光定位的结果就存在时延。

我想在激光定位结果出现之前可以用ikfom接收里程计和imu的预测结果,等激光定位结果出来之后,根据激光定位的结果再修正。

IKFom我看了代码目前没有处理不同时间戳的部分。在建图项目里,比如fast-lio里是通过提前同步数据来解决这个问题的。

我想请教一下,想达成这个效果有什么办法比较好呢?

可以具体表述下,不同时间戳是指两个测量的时间度量没有同步,还是指两个测量被度量在同一个时间轴上,但是时刻不同?后者IKFoM是能够自然兼容的。

我之前对kalman滤波理解不深,现在我明白了。因为predict都是预测到sync_packages()函数里的激光数据时间戳,然后更新也是更新这一个激光数据时刻的状态。

我想把它用于多传感器融合定位,但是这个input好像只能是一个类型,如果输入有来自不同时间戳的imu数据以及里程计数据。
那输入是不是先得构造一个统一的input类型,比如(vel, acc, rot_vel)。 但是里程计只有vel数据,imu只有acc和rot_vel数据。这时候是不是应该通过设置cov无穷大来使统一后的input区分出有意义的数据和无意义的数据。

谢谢详细迅速的解答。

我用的IMU频率应该在300HZ, 里程计也有大概50HZ,激光数据10HZ,所以每两帧激光数据之间会有很多IMU数据和里程计数据。那么两个predict函数会交替调用。请问这种不同来源的input交替进入kf系统该如何处理?

好办法,我尝试一下

可以按照下面这样做,按照imu的频率进行predict,每次predict都需要对imu和里程计这两个input同时做predict,直到下一个激光测量到来时,进行一次update。其中因为里程计的频率比imu低,所以在里程计测量没来时,用上一个测量到的里程计的值做predict,直到新的里程计测量来了之后再替换成新的值。上述过程只需要一个predict函数。 寄件者: DingFeng9313 @.> 寄件日期: 2022年9月27日 下午 05:33 收件者: hku-mars/IKFoM @.> 副本: He Dongjiao @.>; Comment @.> 主旨: Re: [hku-mars/IKFoM] 用于融合定位 (Issue #9) 谢谢详细迅速的解答。 我用的IMU频率应该在300HZ, 里程计也有大概50HZ,激光数据10HZ,所以每两帧激光数据之间会有很多IMU数据和里程计数据。那么两个predict函数会交替调用。请问这种不同来源的input交替进入kf系统该如何处理? ― Reply to this email directly, view it on GitHub<#9 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANJUIXWVBCBM6ZOPAEQ5JELWAK5ORANCNFSM6AAAAAAQMDJWBE. You are receiving this because you commented.Message ID: @.***>

@Joanna-HE 似乎是不是做两次update比较好,里程计和激光来了,分别做udpate?