Robot_pose_ekf源码笔记

本文详细解读ROS包Robot_pose_ekf的源码,介绍如何利用扩展卡尔曼滤波融合轮式里程计、IMU、GPS和视觉里程计数据,输出机器人位姿。内容涵盖系统模型建立、传感器数据处理、滤波器更新以及输出机制。通过源码分析,探讨了滤波器更新参数的不同以及时间同步策略。
摘要由CSDN通过智能技术生成

        Robot_pose_ekf是ROS中实现多传感器融合输出机器人位姿的程序包。其基本原理是利用扩展卡尔曼滤波,利用多种传感器实现机器人位姿的最优估计。目前支持轮式里程计、IMU、GPS和视觉里程计4种传感器。官方说明文档:robot_pose_ekf - ROS Wiki

        以下是源码的一些笔记,其中有些不懂的地方也找学长交流过,有的问题解决了,有的还是不太清楚,也都在笔记中标记出来了,欢迎大家一起交流、批评指正!

0、对于整体算法流程的理解

      假设系统在时刻t-1的融合滤波输出为,在时刻t接收到了不同传感器的数据设这些传感器的观测矩阵依次为协方差矩阵依次为那么,按照卡尔曼滤波的步骤,首先执行状态预测:

之后利用第一种传感器进行测量更新:

在得到yt(1)和Σt(1)的基础上,以相同的步骤利用第二种传感器再进行一次测量更新:

之后再融合剩下的第三种、第四种传感器,步骤与之前相同。

    Robot_pose_ekf可以处理4种传感器:轮式里程计、惯性元件(IMU)、视觉里程计和GPS。其中里程计的融合滤波过程会比其他传感器稍微复杂一些,因为程序是取里程计每一个时间段内的相对变化值,而并不是直接将里程计输出的绝对观测量进行测量更新。这一部分在下文里程计的部分会说明。

    不过值得注意的是Robot_pose_ekf虽然确实用到了扩展卡尔曼滤波,但是它对系统的预测模型作出了很大的简化,所以完全可以仅用卡尔曼滤波的思路去理解整个程序。这一部分将在下文的建立系统模型部分会做详细说明。

1、建立模型:

a.建立系统模型

设机器人的空间坐标为,机器人的姿态用欧拉角来描述,机器人线速度为,角速度为。则系统状态变量选择为

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值