一种基于ROS的服务机器人及其室内导航方法与流程

文档序号:11229766阅读:1559来源:国知局
一种基于ROS的服务机器人及其室内导航方法与流程

本发明属于服务机器人技术领域,特别是涉及一种基于ros的服务机器人及其室内导航方法。



背景技术:

近年来,随着科学技术的飞速发展和社会的需要,服务机器人技术也得到了不断的发展,服务机器人已经逐渐进入到家用,商用,导游,医疗,教育,安保等日常生活的各个领域。在人口老龄化加剧,生活压力增大的当今社会,人们需要服务机器人能够提供更加优质的服务。根据目前市场数据显示,在家用服务机器人中,大部分是清洁机器人和除草机器人,他们大多只能按照预先设定的命令完成任务,缺乏解决突发事件的能力,甚至缺少丰富的人机交互功能,此外,目前投入使用的送餐机器人,在送餐过程中需要沿着预先设定的磁性导航条来指引行走,导航过程中自主性较低。针对传统服务机器人的这些不足之处,研发出一款具有丰富的人机交互能力与自主导航能力的服务机器人成为社会发展的必然趋势。

2007年,斯坦福大学人工智能实验室与机器人技术公司willowgarage合作开发出了机器人操作系统,2008年以后由willowgarage推广并更新。至今,已经更新到kinetic版本。ros的中文名称是机器人操作系统,作为一种跨平台的开源的次级操作系统,它能够提供一些常用功能的功能包,同时也提供一些工具程序和库程序。ros的设计目标是提高代码的复用率,能够满足社会各界的研究学者的使用需求,因此,在目前的科技领域发展相当迅速。我们使用ros这个次级的操作系统,主要是因为它点对点的设计,支持多种语言设计,如java,python,c++等,并且自由开源。



技术实现要素:

本发明的目的是加强服务机器人的人机交互功能,在导航过程中实现自主导航,自主避障等功能。因为,现有的服务机器人大多存在人机交互内容匮乏,导航过程中自主性较差,不足以解决突发事件,如室内有移动的人或者新的障碍物等不足。针对这些不足之处,本发明提出了一种基于ros的服务机器人导航方法。

为实现上述目的,本发明解决问题所采取的技术方案是:

一种基于ros的服务机器人,其特征在于,所述服务机器人是一种人形机器人,包含运动底盘、外壳9、支撑架8、客户端pc和底层pc3。其中运动底盘包含有车轮组5,电机11,编码器12,电机控制板1,供电模块4,运动导航模块2,防碰撞模块6,数据采集模块7。外壳上安装有触摸屏显示器10。所述底层pc3通过usb串口分别与所述防碰撞模块6,数据采集模块7,电机控制板1进行通信。供电模块4包含电池和电源转换模块,电池电压通过电源转换模块转换为其他电压,供其他设备使用。

其中,上述所述车轮组5由两个万向轮和两个驱动轮组成,安装在所述服务机器人移动底盘底部。

上述所述防碰撞模块6包含一组超声波传感器,平均的分散在服务机器人底盘的正前方。

上述所述数据采集模块7采用北阳的激光测距仪。供电

上述所述的上层pc和底层pc3均安装有机器人操作系统ros。

上述所述运动导航模块2包含陀螺仪和电子罗盘。

上述所述的基于ros的服务机器人的室内导航方法,包含以下步骤:

(1)初始化:启动服务机器人,数据采集模块7,启动控制模块

(2)所述控制模块控制服务机器人在室内行走,所述数据采集模块7检测室内环境信息

(3)服务机器人运用ros提供的slam_gmapping功能包,利用步骤(2)中的信息,建立室内环境地图

(4)服务机器人在可视化窗口中加载步骤(3)中建立的室内环境地图,

(5)在步骤(4)可视化窗口中的地图中,设置目标位置,即想要去往的位置

(6)服务机器人运用ros开源的acml功能包提供的粒子滤波算法,完成在室内环境的自定位,在步骤(4)的可视化窗口中显示

(7)服务机器人运用ros开源的全局路径规划接口,完成在全局范围内的路径规划,规划出一条从出发点到目标点的安全,无障碍,无碰撞的轨迹

(8)服务机器人运用ros开源的move_base接口,控制服务机器人按照步骤(7)规划的轨迹向目标位置运行

(9)判断服务机器人在导航过程中是否遇到未知障碍物(如行走的人)

(10)当服务机器人没有遇到步骤(3)中地图未知的障碍物时,则按照步骤(7)规划出的轨迹行走,到达目标位置,完成导航,任务结束。

(11)当服务机器人遇到未知的障碍物时,服务机器人运用ros开源的局部路径规划接口,规划出躲避步骤(3)中地图未知障碍物的轨迹,重复步骤(6)到步骤(11)的方法直到服务机器人到达目标位置为止

(12)任务结束。

上述所述基于ros的服务机器人室内导航方法,其特征在于,步骤(7)所述的全局路径规划接口为dijkstra算法。

上述所述基于ros的服务机器人室内导航方法,其特征在于,步骤(10)所述的局部路径规划接口为动态窗口法。

有益效果:本发明与现有技术相比,具有以下优点和有益效果

1、服务机器人采用目前流行的机器人操作系统——ros,由于其本身的开源性,使得机器人软件系统对环境的适应性更强,同时也提高了软件系统的实时性。

2、服务机器人使用激光测距仪检测环境中的障碍物信息,检测精度高,速度快,抗干扰能力强。

3、服务机器人在路径规划中采用了全局路径规划与局部路径规划相结合的方式,能够有效的实现服务机器人在导航过程中自主避障的功能。

4、服务机器人使用了触摸屏显示器,使用者能够随自己的意愿设定想要去往的地方,而不需要设计人员预先设定目标位置,丰富了人机交互的功能。

附图说明

图1为服务机器人结构图

图2为服务机器人导航流程图

图3为dijkstra算法流程图

具体实施方式

下面结合附图,进一步阐述本发明。

本发明涉及一种基于ros的服务机器人及其在室内环境导航方法,所述服务机器人是一种人形机器人,包含移动底盘、外壳9、支撑架8、上层pc和底层pc3,两台pc机同时安装有相同版本的机器人操作系统,并通过wifi连接。启动服务机器人,启动数据采集模块7和控制模块后,利用控制模块控制服务机器人在室内运行,数据采集模块7获取室内环境信息,即室内障碍物信息,利用slam_gmapping功能包创建室内环境地图,接着服务机器人加载创建好的室内地图,在机器人前胸上安装的触摸屏上可以看到一个室内环境的二维地图,我们可以人为的在地图中设置要前往的位置即目标位置,也就是服务机器人路径规划的目标点,服务机器人利用acml功能包提供的粒子滤波算法完成在地图中的自定位,也就是确定服务机器人路径规划的出发点;服务机器人利用ros提供的全局路径规划接口规划出一条从出发点到目标点的轨迹,是的服务机器人可以沿着这条轨迹安全、无碰撞的到达目标位置,但是在实际的情况中,室内的环境信息往往不是一成不变的,会有随时走动的人,或者偶尔移动的桌椅橱柜等,就会导致原来创建的地图不能有效实时的反应出实际的室内环境,因此,我们加入了局部路径规划接口,使得服务机器人在运行过程中能够有效的躲避一些位置的障碍物,安全的到达目标位置。

本发明服务机器人外形如图1所示,包括移动底盘、外壳9、支撑架8、上层pc和底层pc3,其中移动底盘包含有车轮组5,电机11,编码器12,电机控制板1,供电模块4,运动导航模块2,防碰撞模块6,数据采集模块7。外壳9上安装有触摸屏显示器10。车轮组5主要包含两个驱动轮和两个万向轮,安装在服务机器人底盘的底部;防碰撞模块6主要使用了一组超声波传感器,均匀的分布在服务机器人底盘的正前方,用来检测小范围内的障碍物,防止在移动过程中发生碰撞;数据采集模块7主要使用的是北阳的激光测距仪,用来采集室内环境信息;运动导航模块2包含电子罗盘和陀螺仪,用来监测服务机器人的朝向和测量服务机器人运动加速度。底层pc3和上层pc上均安装有相同版本的机器人操作系统ros。底层pc3通过usb串口分别与所述防碰撞模块6,数据采集模块7,电机控制板2进行通信。供电模块4包含电池和电源转换模块,电池电压通过电源转换模块转换为其他电压,供其他设备使用。

如图2所示,本发明的基于ros的服务机器人室内导航方法,步骤如下:

(1)初始化:启动服务机器人,环境探测模块,控制模块

(2)所述控制模块控制服务机器人在室内行走,所述环境探测模块检测室内环境信息

(3)服务机器人运用ros提供的slam_gmapping功能包,利用步骤(2)中的信息,建立室内环境地图

(4)服务机器人在可视化窗口中加载步骤(3)中建立的室内环境地图,

(5)在步骤(4)可视化窗口中的地图中,设置目标位置,即想要去往的位置

(6)服务机器人运用ros开源的acml功能包提供的粒子滤波算法,完成在室内环境的自定位,在步骤(4)的可视化窗口中显示

(7)服务机器人运用ros开源的全局路径规划接口,完成在全局范围内的路径规划,在规划路径的过程中利用global_planner功能包中提供的makeplan接口规划出从start到goal的路径,并通过publishplan接口发布到可视化的窗口中,将这条规划出来的路径真实的展现在可视化窗口中加载的地图中。

(8)服务机器人move_base节点接收到global_planner发布的plan,驱动服务机器人按照步骤(7)规划的路径向目标位置运行,也就是所谓的导航

(9)判断服务机器人在导航过程中是否遇到未知的障碍物,也就是运动的物体或者未知的区域,即步骤(4)的地图中未标识的障碍物(如行走的人等)

(10)当服务机器人没有遇到未知障碍物时,即服务机器人在导航过程中,步骤(4)中创建的地图与当前室内环境完全匹配,此时服务机器人继续按照步骤(7)规划出的路径完成导航,到达目标位置,导航结束。

(11)当服务机器人遇到未知的障碍物时,步骤(7)中规划出来的路径已经不能使得服务机器人由起点安全、无碰撞的运行到终点,也就意味着,服务机器人需要在未知障碍物附近重新规划出一条路径,以躲避障碍物,此时服务机器人运用局部路径规划接口,规划出躲避未知障碍物的路径,然后重复步骤(6)到步骤(11)的方法直到服务机器人到达目标位置为止

(12)结束。

上述所述基于ros的服务机器人室内导航方法,其特征在于,步骤(7)所述的全局路径规划接口为dijkstra算法。如图3所示,包括以下步骤:

设置开启列表为o,关闭列表为c,起点s在关闭列表中,costmap中除起点s外的其他定点均位于开启列表中,d(i,j)表示点i到点j的非负代价,即点i到点j之间的距离,costmap中任意两个定点之间的非负代价值位于d中,为则dijkstra算法步骤如下:

(1)起点s位于关闭列表c中,判断关闭列表是否为空,若为空,则算法结束

(2)关闭列表不为空,则分别计算关闭列表c中各定点到与其相邻的定点之间的非负代价,并从中选择非负代价最小的邻点pnew加入到关闭列表c中,其中pnew表示关闭列表中最新加入的定点

(3)从步骤(2)中选择非负代价最小的邻点pnew加入到关闭列表c中,并从开启列表o中删除,其中pnew表示关闭列表中最新加入的定点

(4)判断关闭列表c中的pnew是否为目标点,若pnew点是目标点,则算法结束

(5)若pnew点不是目标点,则返回步骤(2)继续寻找新的定点pnew。

上述所述基于ros的服务机器人室内导航方法,其特征在于,步骤(10)所述的局部路径规划接口为动态窗口法。动态窗口法是在速度(v,ω)空间中采样多组速度,并模拟服务机器人在这些速度下一定时间(sim_period)内的轨迹,在得到多组轨迹以后,对这些轨迹进行评价,选取最优轨迹所对应的速度来驱动机器人运行。动态窗口法包含以下步骤:

(1)建立运动模型:在动态窗口算法中,要模拟服务机器人的轨迹,就需要建立服务机器人的运动模型。本发明中服务机器人是全向移动的,因此运动模型定义为:

θt+1=θt+ωt*δt

其中服务机器人在当前时刻的位姿为(x,y,θ),t+1时刻的位姿为(xt,yt,θt),服务机器人的速度参数为(vx,vy,ωt),δt为采样周期

(2)采样速度:在服务机器人的速度空间中存在无穷多组速度,因此需要对采样的速度限制在一定的范围内,本发明是根据服务机器人自身速度大小的限制条件:

vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]}

(3)评价函数:在采样的速度组中,有若干条轨迹是可行的,需要在其中找出最优轨迹,采用的评价函数为:

g(v,ω)=α*heading(v,ω)+β*dist(v,ω)+γ*velocity(v,ω)

其中:heading(v,ω)用来评价下一时刻服务机器人朝向目标位置的程度,本发明中heading(v,ω)=180-θ;dist(v,ω)表示服务机器人与障碍物之间的距离,在本发明中,一旦模拟的轨迹上出现障碍物,就舍弃该条轨迹;velocity(v,ω)用来评价当前轨迹的速度。

通过以上三个步骤可以使服务机器人躲开障碍物,向目标行进。

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