一种基于ros的移动机器人室内环境探索系统与控制方法

文档序号:9726819阅读:706来源:国知局
一种基于ros的移动机器人室内环境探索系统与控制方法
【技术领域】
[0001] 本发明涉及的是一种有关移动机器人的控制方法,具体基于R0S (机器人操作系 统,Robot Operating System),探索室内环境的控制方法。
【背景技术】
[0002] 近年来,机器人领域发展迅速,例如灾难探测机器人、家用服务机器人、陪护机器 人、军用机器人等均得到广泛的应用。移动机器人作为一种高度自主的智能体,具有灵活的 运动能力和强大的观察设备,利用机器人的建图功能代替人员深入危险的未知环境进行探 索,已经成为救援工作的有效手段。尽管目前的各种救援机器人可以完成各种各样的任务, 但是救援机器人大部分依靠遥控操作,无法脱离人为控制在未知的复杂空间中移动。而在 灾难环境中,坍塌、烟尘充斥的环境空间是不可预知的,同时操作人员通过摄像机对灾难现 场的探索识别能力并不强,而且很大程度上受操作人员经验的影响。亟需一种可以对灾难 环境进行自主探索的智能移动机器人。
[0003] 同时,机器人也朝着复杂化、通用化以及工作环境不确定化发展,对代码的复用 性、模块化提出了较高的要求。现有的Player、MOOS、CARMEN、YARP、Orocos、微软Robotics Studio等操作系统无法满足实际应用的需求。ROS (Robot Operating System)是一种开 源机器人操作系统,能够提供类似于操作系统的功能,为机器人应用系统提供硬件抽象、底 层驱动、消息传递和包管理,以及一些辅助开发工具,例如建立、编写和运行多机通信系统 整合的程序。R0S操作系统的设计目标就是为了提高代码的复用性,所以采用一种分布式的 进程架构,使得程序具有高度的独立性和低耦合性。
[0004] 考虑上述因素,本发明引入R0S机器人操作系统设计和构建了一种移动机器人平 台,硬件采用了 iRobot差分驱动底盘以及信息采集单元、数据处理单元、运动控制单元和 远程监控单元4个模块。利用R0S分布式的进程框架优势,控制机器人更加方便快速地探 索室内环境,得到室内环境信息的二维地图,达到更加有效地进行机器人灾难救援。

【发明内容】

[0005] 本发明设计了基于R0S的移动机器人室内环境探索系统与控制方法。
[0006] 本发明采用的技术方案为:第一阶段,机器人的改装与基于R0S的程序配置;第二 阶段,激光雷达的环境信息获取与地图拼接匹配;第三阶段,构建机器人与上位机间的无线 通信;第四阶段,通过设置路径规划算法,使机器人自主行驶,并探索室内未知环境。
[0007] 所述的一种基于R0S的移动机器人室内环境探索系统与控制方法,通过以下步骤 实现。
[0008] 步骤一:以美国iRobot公司生产的iRobot Create为移动机器人平台,进行改装 与拓展。
[0009] 步骤二:采用R0S的导航栈(Navigation)来实现导航系统的具体框架,通过设置 TF坐标变换系统、Costmap占有栅格地图来完成导航栈的基本配置。
[0010] 步骤三:通过激光雷达获取地图信息,将激光雷达数据离散化。
[0011] 步骤四:将获取的激光雷达信息进行扫描匹配。
[0012] 步骤五:利用Zigbee协议构建机器人与上位机间的无线通讯,实现上位机对机器 人状态获取与对激光雷达获取的二维图进行实时监控。
[0013] 步骤六:对机器人进行同步定位与建图。
[0014] 步骤七:设置机器人的路径规划算法。
[0015] 步骤八:机器人进行自主行驶,同时探索室内未知环境。
[0016] 下面对各步骤进行具体说明。
[0017] 所述步骤一的iRobot Create移动机器人平台,保留了运动控制器和电源管理系 统,去掉了吸尘功能,并扩展了传感器。所构建的移动机器人系统由四个部分组成,包括信 息采集单元、数据处理单元、运动控制单元和远程监控单元。其系统组成框图如图1所示。 其中,控制核心为基于ATOM凌动N270中央处理器的工控机。
[0018] 所述步骤二的R0S的导航栈的基本思想为:得到里程计和激光雷达数据,同时输 出速度命令给机器人底盘,导航栈配置如图2所示。TF坐标变换系统如图3所示,TF系统 定义两个坐标系:一个坐标系的原点位于机器人的底盘中心,另一个坐标系位于激光雷达 的中心。将位于底盘的坐标系定义为base_link,因为导航栈需要把该TF坐标系放置为移 动机器人的旋转中心。将位于激光雷达的坐标系定义为base_laser。Costmap占有栅格 地图通过完成激光雷达数据离散化处理获得。
[0019] 所述步骤三的在地图获取阶段,首先定义单元栅格的大小。该尺度将确定离散化 的程度。离散化的基本思想为:从机器人当前所在坐标开始,以单元栅格的尺寸向四周扩 散,使得平面内铺满虚拟栅格,然后将激光雷达测距前端落到相应的栅格内,由栅格的占有 概率值来代表所有落到该栅格内的测距前端数据。该算法通过双线性滤波实现。
[0020] 所述步骤四的完成激光雷达数据离散化后,也就得到了局部占有栅格地图。然后 通过扫面匹配阶段对激光雷达数据进行扫描匹配,也就是通过局部地图对移动机器人位姿 进行估计,将局部环境地图融合为全局环境地图。
[0021] 所述步骤五的ZigBee通信协议为上位机和车和机器人之间的通信。包括机器人 的具体行进方向、运行路线等;包括机器人速度设定、启动/停止;包括获取的激光雷达数 据信息形成的环境二维地图。
[0022] 所述步骤六的同步定位与建图为基于Hector SLAM的自主建图算法。Hector为 R0S机器人操作系统的开源导航和建图库,其系统构架如图4所示。
[0023] 所述步骤七的路径规划算法为Di jkstra算法,Di jkstra为改进的广度优先搜索 算法,Di jkstra算法的流程图如图5所示。
[0024] 所述步骤八的探索算法结合了现在常用的两种策略。一种是向离机器人最近的前 端移动可以进行快速的地图获取,扩展未知区域。另一种同时考虑现有地图中前端的大小, 前段较长的地方,这样通过这里能够扩展较大的未知区域。本专利对两个策略取权重进行 加权。
[0025] 本发明的有益效果:移动机器人室内环境探索系统与控制方法基于R0S系统,利 用R0S提高了代码的复用性的优点,可快速遍历整个室内未知区域并进行探索。将未知区 域的二维环境图扫描构建出来并通过ZigBee无线协议传至上位机,实现了整个未知环境 区域的探测与监控。
【附图说明】
[0026] 图1是移动机器人系统构架图。
[0027] 图2是R0S的导航栈系统构架图。
[0028] 图3是TF坐标变换系统图。
[0029] 图4是移动机器人基本平台TF模型图。
[0030] 图5是格地图的双线性滤波。
[0031]图6是占有栅格地图离散化。
[0032] 图7是Hector SLAM系统构架图。
[0033] 图8是Hector mapping系统架构图。
[0034] 图9是Di jkstra算法流程图。
[0035] 图10是Di jkstra算法示例图。
【具体实施方式】
[0036] 下面结合附图对本发明进一步说明。
[0037] 基于R0S的移动机器人室内环境探索系统与控制方法由软、硬件两部分构成。
[0038] 硬件部分包括:iRobot差分驱动底盘以及信息采集单元、数据处理单元、运动控 制单元和远程监控单元4个模块。软件部分包括:R0S导航栈、Hector SLAM的自主建图算 法、上位机界面和程序、路径规划算法。
[0039] 具体实施步骤如下。
[0040] 步骤一:以美国iRobot公司生产的iRobot Create为移动机器人平台,进行改装 与拓展。
[0041] iRobot Create移动机器人平台最大的特点是可以进行编程,根据官方提供的通 信协议,可以控制Create底盘的运动和码盘数据的读取,并且该机器人底盘具有运行稳 定、续航时间长等特点。本专利在原有机器人的基础上进行改装,构建适应所需功能的移动 机器人,由四个部分组成,包括信息采集单元、数据处理单元、运动控制单元和远程监控单 元。数据采集单元主要为激光雷达,系统预留相关接口。运动控制单元中,Create机器人 底盘内建光电编码器,用于记录系统轮子所转过的角度,从而推算机器人的位姿。
[0042] 步骤二:采用R0S的导航栈(Navigation)来实现导航系统的具体框架,通过设置 TF坐标变换系统、Costmap占有栅格地图来完成导航栈的基本配置。
[0043] 栈为功能包的集合,同时栈也是R0S软件发布的主要形式。栈有Manifest文件, 其名字为Stack, xml,用来标识版本信息和功能包集的依赖信息。R0S导航栈需要使用TF 坐标变换系统来发布机器人的坐标变换树。而坐标变化树即系统中不同坐标系之间的偏 移。如图3所示,移动机器人平台拥有移动的底盘和位于底盘上方的激光雷达。在该机器 人上,TF系统定义两个坐标系:一个坐标系的原点位于机器人的底盘中心,另一个坐标系 位于激光雷达的中心。将位于底盘的坐标系定义为base_link,因为导航栈需要把该TF坐 标系放置为移动机器人的旋转中心。将位于激光雷达的坐标系定义为base_laser。本系统 的iRobot Create底盘所使用的TF变换由箭头标识。
[0044] 移动机器人得到从激光雷达采集的距离信息无法直接进行SLAM操作,因为这些 数据是基于激光雷达中心来表示的,即这些数据在basejaser坐标系下。为了能够使用这 些数据,需要进行数据的坐标变换,即从base_laser变换到base_link下。如图3所示的基 本模型中,已知激光雷达测得位于在其正前方0. 3m处有障碍物,而激光雷达安装于底盘前 方0. lm,上方0. 2m处。从而可以获取从base_link到basejaser的坐标变换关系,base_ link坐标系平移(X: 0.1m, y: 0.0m, z: 0.2m)。这样就可以得到障碍物到机器人底盘的 距离。如图4所示,假设base_link为父节点,因为所有
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1