最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于ROS的机器人自主导航系统设计

来源:动视网 责编:小OO 时间:2025-09-30 22:24:15
文档

基于ROS的机器人自主导航系统设计

近年来,关于机器人导航系统的研究越来越多,但这些研究大都集中在底层控制器结构和算法上,对上层控制软件的研究少之又少。本文从解决机器人导航定位的实际问题出发,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS下的工具包move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。1系统结构导航系统由Kinect2双目视觉传感器、主控计算机和TurtleBot3(Burger)机器人开发平台组成。Kinect2是“微软”在2010发布的一款体感外设,它
推荐度:
导读近年来,关于机器人导航系统的研究越来越多,但这些研究大都集中在底层控制器结构和算法上,对上层控制软件的研究少之又少。本文从解决机器人导航定位的实际问题出发,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS下的工具包move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。1系统结构导航系统由Kinect2双目视觉传感器、主控计算机和TurtleBot3(Burger)机器人开发平台组成。Kinect2是“微软”在2010发布的一款体感外设,它
近年来,关于机器人导航系统的研究越来越多,但这些研究大都集中在底层控制器结构和算法上,对上层控制软件的研究少之又少。本文从解决机器人导航定位的实际问题出发,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS 下的工具包move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。

1系统结构

导航系统由Kinect2双目视觉传感器、主控计算机和TurtleBot3(Burger)机器人开发平台组成。Kinect2是“微软”在2010发布的一款体感外设,它是一种双目视觉传感器,主要由红外摄像机、红外深度摄像头、彩色摄像头、麦克风阵列及仰角控制电机组成,借助于“微软”强大的技术力量,它可以完成即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。使用Kinect可以获得三维点云数据,一方面这些数据可以用来创建二维环境地图,另一方面只要对这些数据进行适当处理就能建立描述三维场景的地图。在Kinect 出现之前,只能使用航拍飞行器或者三维扫描激光测距仪获取环境的三维场景图,使导航系统的成本大大增加。而Kinect 中的红外摄像机、红外深度摄像头等传感器的使用将会使机器人导航系统的成本大大下降。主控计算机采用ThinkPadX1笔记本电脑,采用英特尔酷睿i5-8250U处理器,操作系统安装的是Ubuntu14.04,ROS版本选择ROS Indigo版本。通过RS232串口与TurtleBot3搭载的DSP通信,通过USB接口与Kinect2通信。在实际测试中,直接选择安装好相应版本ROS的Ubuntu镜像。TurtleBot3是iRobot公司生产的两轮移动机器人,该机器人作为机器人编程开发的一个基础平台,开发者可以直接使用TurtleBot3自带的软、硬件,根据平台的软、硬件接口即可开发出所需的功能。

ROS是面向机器人的开源操作系统,它能够提供类似传统操作系统的诸多功能,如硬件抽象、底层设备控制、进程间消息传递和程序包管理等。此外,它还提供相关工具和库,用于获取、编译、编辑代码及在多个计算机之间运行程序完成分布式计算。本文选用ROS作为导航系统开发的软件平台。作为一种开源机器人操作系统,它提供了多种工具程序和库,用于编写运行多机整合的程序。ROS的首要设计目标是在机器人开发领域提高代码复用率。ROS是一种分布式处理框架,这种框架名为Nodes。这使得可执行文件可以单独设计,并且在运行时松散耦合。这些过程可以封装到数据包Package 和堆栈Stacks中,以便于共享和分发。ROS还支持代码库的联合系统,使协作也能分发。这种从文件系统级别到社区一级的设计使决定发展和实施工作成为可能。这些功能都由ROS的基础工具来实现。ROS的运行框架是使用一种ROS 通信模块实现模块间P2P的松耦合和网络连接处理架构,它执行若干种类型的通信,包括基于服务的同步RPC(远程过程调用)通信、基于TOPIC的异步数据流通信及参数服务器上的实时性。

2导航系统设计

在设计导航系统时,主要使用到了ROS的3个工具包:move_base、gmapping和amcl。其中,move_base包用于让机器人在指定的框架内移动到目标位置;gmapping包用于从Kinect双目视觉传感器采集到的数据来绘制地图;amcl 包用于在当前地图内定位机器人。

2.1使用move_base包进行路径规划和障碍物躲避

move_base包实现了一个完成指定导航目标的ROS行为,在move_base包中包含了base_local_planner,在为

基于ROS的机器人自主导航系统设计

胡俊立,杨光

(河南工业贸易职业学院,河南郑州451191)

【摘要】导航系统是移动机器人系统中的关键组成部分,主要包括地图构建、定位和路径

规划3个部分。近年来,关于机器人导航系统的研究越来越多,但这些研究大都集中在底层

控制器结构和算法上,对上层控制软件的研究少之又少。文章从解决机器人导航定位的实际

问题出发,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS下的工具包

move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。

【关键词】ROS;路径规划;导航系统

【中图分类号】TP242【文献标识码】A【文章编号】1674-0688(2018)07-0072-02

【作者简介】胡俊立,男,河南郑州人,硕士,河南工业贸易职业学院助教,研究方向:电子信息、工业机器人;杨光,男,河南郑州人,硕士,河南工业贸易职业学院助教,研究方向:电气工程。

72

qiyekejiyufazhan

机器人寻路的时候,base_local_planner结合了从全局和本地地图得到的距离测量数据。基于全局地图的路径规划是在机器人向下一个目的地出发前开始的,这个过程中会考虑到已知的障碍物和被标记成未知的区域,要使机器人实际动起来,本地路径规划模块会监听传回来的传感器数据,并选择合适的线速度和角速度让机器人走完全局路径规划上的当前段。上位机将会显示本地的路径规划模块是如何随着时间推移而不断做出调整的。使用move_base包实现路径规划和障碍物躲避分为两步,即首先指定导航目标。在指定导航目标前,机器人要提供在指定框架下的目标方位,move_base包通过使用MoveBaseActionGoal消息指定目标。接下来需要为路径规划设定参数,在move_base包节点运行前需要4个配置文件,这些文件定义了一系列相关参数,例如越过障碍物的代价、机器人的半径、路径规划时要考虑未来多长的路、机器人移动的速度等。

2.2使用gmapping包创建地图

在ROS中,地图是一张位图,表示网络被占据的情况,其中白色像素代表没有被占据的网格,黑色像素代表障碍物,灰色像素代表未知点,因此可以使用任意的图像处理程序处理该位图。在本系统中,由于配有Kinect双目视觉传感器,所以机器人在其目标范围内行动时可以自己创建地图。为了生成任意具有相同数据的测试地图供以后不同参数的gmapping 使用,系统使用ROS的gmapping实时定位与绘制地图(SLAM)节点,这个节点会把从Kinect传感器中得到的数据整合到一张位图中。运行时让机器人在一个区域内活动,同时记录测量数据并放入rosbag文件中,然后运行SLAM节点生成一张地图。

2.3使用amcl包导航和定位

amcl包用于让机器人在已有的地图里利用从当前机器人视觉传感器中得到的数据进行定位。当amcl包第一次启动时,机器人需要设定一个初始方位,之后amcl包利用该初始方位确定自己的位置。为了设定初始方位,在RViz可视化工具中点击“2D Pose Estimate”,然后在地图上单击机器人的位置,当按下鼠标左键时会出现一个巨大的绿色箭头,移动鼠标使箭头方向和机器人方向一致,最后松开鼠标。机器人初始方位设定好之后,可以使用“2D Nav Goal”按钮为机器人在地图上指出不同的导航目标。必要时,可以使用鼠标滚轮放大或者缩小。在机器人运动时,机器人周围会围绕一堆绿色箭头,这些箭头代表amcl包返回的方位范围。当机器人在这个环境周围活动时,这堆箭头可以缩小并作为额外的扫描数据,让amcl包修正它对机器人方向和位置的估算。

为了验证所涉及的导航系统能够实现在未知环境下的定位与导航功能,笔者对机器人的障碍物躲避能力进行了测试。在距离目标一定距离外启动机器人,在机器人运动路径前方放置障碍物。测试过程中,机器人会按照规划的路径绕过障碍物,然后继续向目标移动。

3结语

本文基于开源机器人操作系统ROS,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS下的工具包move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。本文为机器人导航系统的研究提供了一条切实可行的思路和方案,在此方案的基础上可以进行更复杂的应用研究。

参考文献

[1]蒋浩然,,王虎,等移动机器人自动导航技术研究进展[J]西北农林科技大学学报:自然科学版,2011,39(12):207-213

[2]白亮亮,平雪良,仇恒坦,等分布式室内移动机器人的定位与导航[J]轻工机械,2016,34(4):54-57[3]邓志,黎海超移动机器人的自动导航技术的研究综述[J]科技资讯,2016,14(33):142-144

[4]陈金宝,韩冬,聂宏,等ROS开源机器人控制基础[M]上海:上海交通大学出版社,2016

[责任编辑:钟声贤]

73

qiyekejiyufazhan

文档

基于ROS的机器人自主导航系统设计

近年来,关于机器人导航系统的研究越来越多,但这些研究大都集中在底层控制器结构和算法上,对上层控制软件的研究少之又少。本文从解决机器人导航定位的实际问题出发,利用Kinect双目视觉传感器获得三维点云数据,并使用ROS下的工具包move_base、gmapping和amcl设计了一套机器人导航方案,并在样机上进行了实验测试。1系统结构导航系统由Kinect2双目视觉传感器、主控计算机和TurtleBot3(Burger)机器人开发平台组成。Kinect2是“微软”在2010发布的一款体感外设,它
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top