一种基于数据融合的机器人定位方法与流程

文档序号:15702742发布日期:2018-10-19 20:08阅读:246来源:国知局

本发明涉及移动机器人定位技术领域,尤其涉及一种基于数据融合的机器人定位方法。



背景技术:

在移动机器人的应用中,导航定位是机器人系统的关键功能。导航是指移动机器人通过传感器获得环境信息和自身位姿状态,实现在障碍物的环境中自主运动到目的地。导航的关键和前提是定位,定位是指实时确定机器人自身在环境中的位置和姿态。

目前较为常见的机器人定位技术主要是根据先验的环境信息,结合当前机器人位置信息和传感器获取的信息确定机器人位姿状态。定位技术主要分为绝对定位和相对定位;绝对定位常用的有卫星gps定位、导航路标、地图匹配等,相对定位通过计算相对于初始位姿的位姿变化来确定当前的位姿状态,常见的有里程计、惯性导航系统。定位技术如果只靠单一传感器会有很大的误差。gps定位误差较大,且容易受电磁干扰;导航路标定位需要建立导航路标改变已有环境,费时费力;而已有的地图匹配算法需要手动创建环境地图或者自主创建的地图精度不高无法形成闭环等;而里程计、惯性导航系统等长时间或大尺度下累积误差较大,定位精度较差。现有的导航定位方法存在的各种问题,无法准确、省力地为机器人提供位姿信息。

因此,如何提供一种准确的机器人的定位方法成为本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,提供一种基于数据融合的机器人定位方法,以解决现有技术中的问题。

作为本发明的一个方面,提供一种基于数据融合的机器人定位方法,其中,所述基于数据融合的机器人定位方法包括:

将里程计记录的机器人在二维平面上的第一运动数据转换到全局坐标系;

将惯性导航系统记录的机器人的第二运动数据转换到全局坐标系;

将所述全局坐标系中的所述第一运动数据与所述第二运动数据通过卡尔曼算法进行融合,得到融合数据;

输出所述融合数据;

根据所述融合数据获取机器人的定位信息。

优选地,所述第一运动数据包括机器人的前进距离和机器人的旋转角度。

优选地,所述将里程计记录的机器人在二维平面上的第一运动数据转换到全局坐标系包括:

将机器人的前进距离以及机器人的旋转角度转换到全局坐标系,得到机器人的所述第一运动数据在全局坐标系下的表示。

优选地,所述第二运动数据包括机器人当前的航向角和加速度。

优选地,所述将惯性导航系统记录的机器人的第二运动数据转换到全局坐标系包括:

将机器人当前的航向角和加速度转换到全局坐标系,得到机器人的所述第二运动数据在全局坐标系下的表示。

优选地,所述将所述全局坐标系中的所述第一运动数据与所述第二运动数据通过卡尔曼算法进行融合,得到融合数据包括:

设定状态变量;

将所述里程计记录的所述第一运动作为扩展卡尔曼滤波器中与所述状态变量对应的运动更新状态量;

将所述惯性导航系统记录的所述第二运动数据作为校正变量;

根据卡尔曼算法将所述运动更新状量与所述校正变量进行叠加得到融合数据。

优选地,所述状态变量的个数根据需要设定,且所述状态变量的个数不大于15个。

本发明提供的基于数据融合的机器人定位方法,通过将里程计记录的机器人的运动数据与惯性导航系统记录的机器人的运动数据进行融合,解决了现有技术中的导航定位存在的误差大、定位精度差的问题,从而提高了机器人定位的准确性。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1为本发明提供的基于数据融合的机器人定位方法的流程图。

图2为本发明提供的基于数据融合的机器人定位方法的具体实施方式流程图。

图3为本发明提供的数据融合的流程图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

作为本发明的一个方面,提供基于数据融合的机器人定位方法,其中,如图1所示,所述基于数据融合的机器人定位方法包括:

s110、将里程计记录的机器人在二维平面上的第一运动数据转换到全局坐标系;

s120、将惯性导航系统记录的机器人的第二运动数据转换到全局坐标系;

s130、将所述全局坐标系中的所述第一运动数据与所述第二运动数据通过卡尔曼算法进行融合,得到融合数据;

s140、输出所述融合数据;

s150、根据所述融合数据获取机器人的定位信息。

本发明提供的基于数据融合的机器人定位方法,通过将里程计记录的机器人的运动数据与惯性导航系统记录的机器人的运动数据进行融合,解决了现有技术中的导航定位存在的误差大、定位精度差的问题,从而提高了机器人定位的准确性。

具体地,所述第一运动数据包括机器人的前进距离和机器人的旋转角度。

进一步具体地,所述将里程计记录的机器人在二维平面上的第一运动数据转换到全局坐标系包括:

将机器人的前进距离以及机器人的旋转角度转换到全局坐标系,得到机器人的所述第一运动数据在全局坐标系下的表示。

具体地,所述第二运动数据包括机器人当前的航向角和加速度。

进一步具体地,所述将惯性导航系统记录的机器人的第二运动数据转换到全局坐标系包括:

将机器人当前的航向角和加速度转换到全局坐标系,得到机器人的所述第二运动数据在全局坐标系下的表示。

具体地,所述将所述全局坐标系中的所述第一运动数据与所述第二运动数据通过卡尔曼算法进行融合,得到融合数据包括:

设定状态变量;

将所述里程计记录的所述第一运动作为扩展卡尔曼滤波器中与所述状态变量对应的运动更新状态量;

将所述惯性导航系统记录的所述第二运动数据作为校正变量;

根据卡尔曼算法将所述运动更新状量与所述校正变量进行叠加得到融合数据。

优选地,所述状态变量的个数根据需要设定,且所述状态变量的个数不大于15个。

下面结合图2和图3对本发明提供的基于数据融合的机器人定位方法进行详细说明。

1)先设置起点位姿(x0,y0,theta0),并以此作为全局坐标系的坐标原点,并以右手法则确定x轴,y轴和z轴正方向。

2)机器人在二维平面上运动,机器人所载里程计从起点位置(x0,y0,theta0)开始计算机器人运动信息,包括(delta_x,delta_y,delta_theta)。delta_x记录的是机器人前进的距离,delta_theta记录的是机器人的旋转角度。需要使用ros平台的tf库将里程计数据转换到全局坐标系。

3)惯性导航系统不断的输出机器人当前的航位信息,包括航向角yaw,加速度acc_x和acc_y。并使用ros平台的tf库将惯性导航数据转换到全局坐标系。

4)使用扩展卡尔曼算法进行融合,设状态变量为(x,y,theta),使用里程计数据(delta_x,delta_y,delta_theta)作为扩展卡尔曼滤波器的运动更新状态量,并使用惯性导航输出数据做为校正变量进行里程计数据与惯性导航数据融合。

需要说明的是,里程计数据(delta_x,delta_y,delta_theta)在起始位置(x0,y0,theta0)迭代计算后分别对应着扩展卡尔曼滤波器的状态变量(x,y,theta)。惯性导航数据加速度acc_x和acc_y的两次积分可得到x和y方向上的运动信息(x,y),而惯性导航数据的航向角yaw则是状态变量的theta。

5)将扩展卡尔曼滤波器输出的数据标准化为ros平台下里程计的标准数据nav_msgs/odometry.msg。

6)在ros平台发布话题/odom_fusion。

通过融合里程计数据和惯性导航数据,可以提高机器人的定位精度。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1