基于MATLAB和ROS的移动机器人运动控制Word下载.docx

上传人:聆听****声音 文档编号:3670472 上传时间:2023-05-02 格式:DOCX 页数:32 大小:3.74MB
下载 相关 举报
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第1页
第1页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第2页
第2页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第3页
第3页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第4页
第4页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第5页
第5页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第6页
第6页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第7页
第7页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第8页
第8页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第9页
第9页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第10页
第10页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第11页
第11页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第12页
第12页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第13页
第13页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第14页
第14页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第15页
第15页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第16页
第16页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第17页
第17页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第18页
第18页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第19页
第19页 / 共32页
基于MATLAB和ROS的移动机器人运动控制Word下载.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB和ROS的移动机器人运动控制Word下载.docx

《基于MATLAB和ROS的移动机器人运动控制Word下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB和ROS的移动机器人运动控制Word下载.docx(32页珍藏版)》请在冰点文库上搜索。

基于MATLAB和ROS的移动机器人运动控制Word下载.docx

指导教师:

关于南开大学本科生毕业论文(设计)的声明

本人郑重声明:

所呈交的学位论文,是本人在指导教师指导下,进行研究工作所取得的成果。

除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、以公开发表或没有公开发表的作品内容。

对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。

本学位论文原创性声明的法律责任由本人承担。

学位论文作者签名:

年月日

本人声明:

该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。

学位论文指导教师签名:

摘要

机器人操作系统(RobotOperatingSystem,ROS)的开源性和对硬件的强兼容性简化了机器人平台的搭建工作,而MATLAB作为一款强大的科学计算软件,则可以提高各种算法的开发效率,并在控制系统设计、机器视觉等移动机器人领域相关方向提供了大量的应用支持。

但是,这两个平台之间并不友好兼容。

本论文致力于统合ROS和MATLAB两大平台的优势,为移动机器人的开发建立一个友好强大的架构。

该文基于ROS和MATLAB两大通用工作平台,实现了这两个平台之间数据和控制命令的传输,从而为提高控制算法的开发效率、加快软硬件之间的整合工作建立了基础。

进而,搭建了以运行Linux环境下ROS和Windows下MATLAB的运算平台作为控制系统、以iRobotCreate为运动底盘、搭载Kinect传感器的一种通用移动机器人系统架构,由KinectRGB-D传感器获取移动机器人周围环境的图像和深度信息。

通过MATLAB进行点云数据处理、障碍物判别和运动规划,由ROS进行移动底盘的运动控制。

通过避障这一基本的运动控制任务,测试了平台的性能,验证了这一系统架构的实用性、通用性和稳定性。

该文提出的基于MATLAB和ROS的控制系统架构,能够兼容相当数量的驱动器和传感器类型,能够在此平台上深入开展机器人领域的相关工作,从而可以为机器人系统的硬件集成和算法设计实现,提高开发效率。

关键词:

移动机器人MATLAB机器人操作系统(ROS)运动控制避障

Abstract

Theopen-sourceRobotOperatingSystem(ROS)hasstronghardwarecompatibilityandprovidesplentyofalgorithms,andthuscangreatlysimplifytheconstructionprocessofroboticsystems.Ontheotherhand,MATLAB,asapowerfulscientificcalculation,simulationandcontrolplatform,canimprovedevelopmentefficiencyofdataprocessingandcontrolalgorithms.Strongfunctionalityandmassiveapplicationsinthefieldofmobilerobots,suchascontrolalgorithmdesignandcomputervision,areavailableinMATLAB.However,thesetwoplatformsdonotworkwellwitheachotheryet.ThisthesisfocusesonthefusionofthestrengthofROSandMATLAB,andestablishafriendlyandpowerfularchitecturefordevelopmentofroboticsystems.

Firstofall,communicationandtransmissionofdataandcontrolcommandsarerealizedbetweenROSandMATLAB,establishingthefoundationforseamlessintegrationofhardwareandalgorithmsthataresupportedbyeitherplatform.Then,amobilerobotplatformisdesignedandrealized,withaportablecomputerrunningROSinLinuxandMATLABinWindowsasthecentralcontrolsystem,theiRobotCreateasthemovementchassisandtheKinectRGB-Dsensortodetectenvironmentinformation.MATLABprocessesthepointclouddatafromKinect,identifiesobstacleandcalculatesthedesignedmotion.ThemotioncommandsaresenttoROSandexecutedbytheiRobotCreatechassis.Experimentalresultswithsuccessfulobstacleavoidancehaveverifiedthefeasibilityofthesystemarchitecture,speciallytheseamlessintegrationofalgorithmimplementationwithROSandMATLAB.

TheproposedcontrolsystemarchitecturewithROSandMATLAB,supportsconsiderablenumberofactuatorandsensortypes,andprovidesstrongflexibilityforfurtherroboticresearch,andthus,cangreatlyacceleratehardwareintegrationandimprovethedevelopmentefficiencyofsoftwaredesignandimplementationofroboticsystems.

KeyWords:

MobileRobot,MATLAB,RobotOperatingSystem(ROS),

MotionControl,ObstacleAvoidance

目录

摘要 I

Abstract II

目录 IV

第一章 绪论 1

1.1课题背景、目的及意义 1

1.2国内外研究现状 2

1.3论文的主要内容 4

第二章 移动机器人硬件和软件平台的搭建与整合 5

2.1移动机器人运动模型和平台介绍 5

2.2Kinect传感器 7

2.3ROS及其应用程序 9

2.4MATLAB平台及其Kinect、ROS应用 12

2.5本章小结 14

第三章 基于点云的移动机器人运动控制与避障 15

3.1基于点云数据和地面线性模型的障碍物判别 15

3.2移动机器人的运动控制与避障 17

3.3本章小结 18

第四章 实验与结果分析 19

4.1障碍物判别效果分析 19

4.2避障任务效果分析 20

4.3工作总结 21

第五章 总结与展望 22

5.1论文工作总结 22

5.2研究方向展望 22

参考文献 23

致谢 25

第一章绪论

1.1课题背景、目的及意义

移动机器人涉及到多个学科领域,包括控制理论、机器视觉、传感器与测控技术、系统工程等研究方向,多学科领域的知识融合对移动机器人的实验平台构建与维护造成了相当时间和资源上的消耗,而对移动机器人软硬件高度集成支持的平台极大地为研究人员提供便利,并能够提高系统的容错率,使系统更容易在新的平台上复现,进一步促进研究工作、知识和理念的推广与传播。

MATLAB作为一款强大的科学计算软件,极大地提高了控制算法的开发效率,而且在控制系统设计、机器视觉等移动机器人领域相关方向均有大量的应用支持。

但MATLAB对硬件,如传感器、驱动器的支持不够广泛,大多数情况仍需要用户自行编写驱动程序。

ROS的开源性质和对硬件驱动的强兼容性缩短了平台的搭建时间,并将硬件信息应用于机器人的控制处理模块中,但需要用户在LINUX环境下使用C++开发控制算法,相比MATLAB的一键调试执行,消耗更多的时间。

本课题的目的在于通过MATLAB这一易用性强、兼容性好的科学计算软件,ROS减少繁杂的实验平台搭建工作,构建兼容Kinect、iRobotCreate等设备的移动机器人运动控制平台。

本平台不需要在LINUX环境下调试复杂的C++程序,而只需在处理从Kinect获取的点云信息的基础上,通过ROS的消息收发机制,在MATLAB平台下编写与ROS通信的脚本,即可达到在室内环境实时控制移动机器人避障的目的。

本课题的研究涉及移动机器人的运动控制,在LINUX环境下的ROS基础机制和相关应用配置,面向对象的MATLAB程序设计,MATLAB与ROS通信技术,Kinect设备及点云应用等多方面的知识,对了解、掌握机器视觉以及移动机器人的运动控制方式具有十分重要的意义。

同时,了解不同平台在移动机器人领域的应用场景,为我今后学习、研究工作提供了充分的素材,从中获得大量的经验与全新的研究视角。

1.2国内外研究现状

在移动机器人领域,对MATLAB和ROS平台进行整合,并应用于移动机器人运动控制的国内外研究进展情况如下:

拉瓦尔大学的Yannick等学者利用MATLAB对多用户调度的灵活处理,控制算法的易用性和ROS对不同型号传感器的通用性支持,将两大平台整合成名为ros4mat的编程界面,应用于机器人教育领域,如采用乐高机器人讲解机器人部件的组成,应用Turtlebot进行多机调度作业[1]。

图1.1拉瓦尔大学应用ros4mat的移动机器人平台[1]

宾夕法尼亚大学的Mellinger等学者采用MATLAB和ROS的整合软件平台,在MATLAB对无人机建模,并开发控制算法进行虚拟仿真和实际应用[2],最终控制使用ROS管理硬件信息的无人机进行编队飞行[3]。

图1.2宾夕法尼亚大学的无人机平台[2,3]

哈尔滨工程大学采用ROS的gazebo应用进行肢体的3D建模,设计了以“触及”运动为基本动作的任务训练场景,并在虚拟上肢各自由度处设置运动控制器,取得较好的同步运动跟随效果,方便用户在训练交互过程中随时调整场景组成及观察视角,从而更好地掌握患肢的实时运动情况。

利用MATLAB科学计算引擎进行运动映射计算,采用Kinect获取肢体运动信息,集成为视觉运动辨识的虚拟环境,作为上肢康复训练平台[4]。

图1.3哈尔滨工程大学的上肢康复训练平台[4]

Prats等学者在ROS平台下发布了面向海洋机器人学仿真的UWSim应用,用于构建水下3D虚拟环境,使用MATLAB平台与UWSim通信,进行虚拟潜艇的动力学仿真[5]。

UWSim能够进行机械臂的控制与操作的模拟工作,并从运动数据中复现实际场景的完整工作过程。

图1.4面向海洋机器人学仿真的UWSim应用[5]

ETH的Hutter等学者采用ROS平台管理柔性四足机器人的硬件信息,并使用MATLAB平台实时求解机器人的动力学方程,进行控制算法的应用,实现了四足机器人在不同环境下快速、高效的移动效果[6]。

图1.5ETH的柔性四足机器人[6]

1.3论文的主要内容

本论文以对MATLAB和ROS的协同应用为研究基础,在对两大平台进行整合的基础上,使用Kinect作为移动机器人获取环境信息的传感器,在iRobotCreate移动机器人平台上进行了移动机器人运动控制和避障实验。

本文共分为五章,主要的内容如下:

第一章介绍了课题背景和意义,国内外的研究现状,以及主要研究方向。

第二章阐述了实验使用的移动机器人运动模型,对实验所用软硬件平台iRobotCreate、Kinect、ROS和MATLAB做了介绍,并给出了整个控制系统的架构和实现方法。

第三章针对移动机器人避障这一具体的运动控制任务,在整合后的移动机器人平台上进行基本的运动控制,并利用Kinect点云数据和地面线性模型给出了障碍物判别方法,最终实现避障任务。

第四章通过实验测试对移动机器人的运动控制、基于点云数据的障碍物判别和最终避障任务效果作出了评价,结果体现出了整合系统在避障任务上的稳定性、便利性和准确性。

第五章对整个毕业设计进行总结,指出不足以及收获,并介绍了后续的研究方向。

第二章移动机器人硬件和软件平台的搭建与整合

2.1 移动机器人运动模型和平台介绍

移动机器人的运动模型和机械结构的选择需要符合三大特征:

机动性、可控性和稳定性。

在实验室环境下,本文采用的移动机器人运动模型为双轮差速运动模型,对应的机械结构在前端有1个全向的无动力轮,在后端有2个独立驱动轮,如图2.1所示。

在整个建模过程中,机器人可视作轮子上的一个刚体,运行在水平面上,忽略机器人和它的轮子间内在的关联和自由度[7]。

图2.1双轮差速运动模型及iRobotCreate底盘

以逆时针方向为正方向,此处选取和分别为右轮和左轮的角速度。

按照运动的可叠加性,将情况分解为:

以右轮单独向前转动,对移动机器人产生逆时针转动;

以左轮单独向前转动,对移动机器人产生顺时针转动。

两种运动的叠加可以得出移动机器人的双轮差速运动模型:

(2.1)

(2.2)

根据上述的移动机器人运动模型,为了确定机器人在水平面中的位置,建立平面全局坐标系和机器人局部坐标系之间的关系,即移动机器人的空间表达,如图2.2所示。

轴和将平面上任意一个惯性基定义为从某原点开始的全局坐标系。

为了确定机器人的位置,选取机器人底盘上的一个点作为它的位置参考点,这里一般选取机器人的重心。

定义了机器人底盘上相对于的横向和纵向,从而确定了机器人的局部坐标系。

在水平面上该机器人底盘的总维数为3个:

2个为平面中距离坐标原点的相对位置,由坐标确定;

1个为全局坐标系和局部坐标系的夹角,表示姿态,这里由给定。

因此,机器人的位姿可以由向量唯一地确定,采用下标表示该位姿向量的基为全局坐标系[7]。

图2.2移动机器人的空间表达

美国iRobot公司于2007年推出了面向机器人学研究与开发的iRobotCreate移动机器人,如图2.3所示,在同价格的移动机器人中具有较高的性价比。

图2.3iRobotCreate

iRobotCreate机器人重量为2.92kg,直径为34cm,高7cm,最大速度为0.5m/s,驱动方式为双轮差分驱动,持续运行时间为2小时,充电时间为3小时。

iRobotCreate的硬件结构如图2.4,接口包括7头Mini-DIN和位于负载舱的DB-25接口,用于连接机器人的电子设备来处理传感器和驱动器,并支持串口转接头来通过PC串口控制移动机器人[8]。

图2.4iRobotCreate的硬件结构[8]

2.2 Kinect传感器

微软公司于2010年6月发布了适配XBOX360体感游戏机和XBOXOne主机的体感传感器Kinect,这款设备是微软研究院的成果之一,内部集成了微软的人体骨架识别库,可以达到实时识别人体、拟合人体框架模型和捕获人体运动的效果。

同时这台设备也是出色的3D摄像机,相对于激光摄影机、云台所需的高昂费用,Kinect能够以相对低廉的成本为使用者同时提供视觉图像(RGB)与深度图像(Depth),正因为如此很多研究人员都开始推广使用Kinect并将其积极应用于游戏之外的领域,微软在2011年也正式发布了在搭载了Windows系统的个人计算机上使用的SDK,以方便研究和开发人员使用。

在2012年2月,微软正式发布专为个人计算机使用的Kinect版本。

光编码技术(lightcoding)是Kinect测距所使用的方法,即使用特殊的光源对待测量的空间进行编码:

Kinect采用激光散斑这种光源照射待测量的空间,激光散斑的实质是光的随机衍射斑点,由激光照射到粗糙物体、毛玻璃等散射介质或在自由空间传播所产生。

而这种斑点在具有高度的随机性的同时,还会因距离的差异而产生图案的变化,从而待测量的任意两处空间的散图案都不可能相同。

通过对空间照射具有这种性质的结构光,就能对整个待测量空间进行标记,每个物体都有自己的散斑图案,因而能够确定物体的位置[9]。

首要的准备工作是对空间的散斑图案进行记录,换言之,也就是光源的标定。

以色列公司PrimeSense给出了如下方法:

对空间以一定间距截取成等分的参考平面,将平面的散斑图案进行记录。

Kinect的可测量距离为0.8米到4.0米,作为规定的用户空间,假设每隔10cm取一个参考平面,经过标定工作后得到32幅散斑图像[10]。

在测量的过程中,取当前拍摄的散斑图像和先前存储的32幅参考图像依次做互相关运算,得到32幅相关度图像。

若空间中某一位置有物体存在,对应的相关度图像上就会产生峰值。

将这些峰值一层层叠在一起,并进行插值处理等方法,就完成了整个场景三维形状的构建。

需要说明的是,这些工作已经集成在Kinect内部,并不需要用户来管理操作,用户只需要将Kinect通过USB接口连接到个人计算机上,另外为Kinect配备电源,并安装相应驱动就能进行研究工作。

Kinect的硬件结构如图2.5,其红外光源和深度图像传感器共同构成深度图像,而彩色图像传感器直接产生彩色图像,并集成了麦克风用于语音辨识功能的开发。

此外,Kinect的视角可以由位于Kinect底座的直流电机调整,只需根据开发手册生成相应的数字信号,即可实时控制。

Kinect的图像传输速率为30FPS(每秒帧数),深度分辨率和图像分辨率均为640*480(VGA),声音格式为16位(PCM),16KHz[11]。

图2.5Kinect的硬件结构

Kinect所采用的空间坐标系如图2.6所示,为右手坐标系,z轴表示深度,而x轴和y轴正交构成成像平面。

图2.6Kinect的空间坐标系

2.3 ROS及其应用程序

ROS(机器人操作系统,RobotOperatingSystem)是由斯坦福大学人工智能实验室(SAIL)面向机器人软件开发工作,设计的一套机器人专用开源系统,现由WillowGarage公司进行日常的维护与版本更新。

ROS提供类似于操作系统的服务,包括对硬件的抽象描述、程序间消息传递、底层驱动程序管理与控制、共用功能的执行、进程管理、程序发行包管理等,它也提供机器人开发所需的通用工具和函数库,用于获取、建立、编写和执行多设备信息融合的程序,能够很好地提高机器人研发的代码复用率。

ROS系统中的基础概念包括:

节点(nodes),消息(message),主题(topic),服务(service)。

这些概念构成了ROS的运行工作,而且在ROS平台上的开发工作也必须遵守这些概念所制定的标准[12]。

节点是ROS最基本的计算单元,节点在运行时以消息的形式和其他节点相互通信。

节点是可交互的软件模块,降低了单个计算单元的实现难度,节点的概念是ROS点对点通信概念的直接体现。

消息是面向节点通信需求而严格定义的数据类型,既可以是bool,int,float等基本的数据类型,也可以是类、模板等自定义数据类型,而且数据类型的深度可以任意指定和嵌套。

通过数据类型的指定解决了数据通信的格式问题,只需要根据消息的数据类型,在节点填充数据就可以完成数据封装,在同一协议的支持下,接收端节点就能直接读取消息获得需要的数据。

ROS建立工程时会自动生成代码,实现消息的封装和解析,从而避免了应用层软件开发的冗余代码和复杂度。

主题是消息发布(publish)和订阅(subscribe)的识别标志。

节点通过发布消息到一个特定的主题,而接收消息的节点通过订阅特定主题来获得消息数据,节点之间仅通过消息相互通信,节点发布消息和节点接收消息不存在耦合关系。

同样的,发布消息的节点和订阅消息的节点之间相互独立,不构成耦合关系。

基于上述ROS的基础概念,ROS的通讯系统可以组织成图状结构,从而各个节点进程之间可以自由的接收和发布各种消息,有效的降低模块间的耦合性。

服务是针对基于主题的发布订阅模型中存在的缺陷而设计的,基于RPC协议,类似于web服务的模型。

当客户机发起请求时,服务器一定会响应请求,返回消息给客户机。

ROS的环境特性可以概括为五个部分:

点对点通信,工具集成化,幵源,多语言,轻量代码构建[13]。

环境特性体现在ROS平台的系统设计和具体实现方面:

点对点通信:

点对点通信通过在ROS中由主机(master)中的roscore进程的名字服务来完成查询工作,保证各个进程在运行时依然能正常通信,避免在大规模的分布式系统中,计算机之间通过无线局域网相互通信时导致的通信堵塞。

工具集成化:

ROS提供了常用机器人开发、研究的工具组件,如消息、主题数据的捕捉调试视窗和图形化工具,节点间通信和消息、主题、服务的拓扑结构图,源码树查看器,机器人应用如导航、SLAM的可视化界面等,这些工具构成了在ROS下机器人应用研发过程中的调试工作。

开源:

ROS的系统基础架构是基于BSD的开源软件许可协议,并兼容多种开源协议,同时允许商业应用开发和非商业的研究项目,因此在机器人应用与研究领域获得了快速的发展。

多语言:

ROS在开源思想的指导下对编程语言持中立态度,目前其支持的编程语言包括C++、Python、Lisp、Octave,且描述文件支持XML。

ROS使用了接口定义语言IDL描述在不同模块之间传递消息的机制,从而建立了跨语言的开发环境。

IDL占用少量的文本文件容量即

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2