移动机器人平台毕业设计

合集下载

机器人毕业设计

机器人毕业设计

1机器人国内外发展概况1.1 机器人定义我国科学家对机器人的定义是:“机器人是一种自动化的机器,所不同的是这种机器具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高度灵活性的自动化机器”。

在研究和开发未知及不确定环境下作业的机器人的过程中,人们逐步认识到机器人技术的本质是感知、决策、行动和交互技术的结合。

随着人们对机器人技术智能化本质认识的加深,机器人技术开始源源不断地向人类活动的各个领域渗透。

结合这些领域的应用特点,人们发展了各式各样的具有感知、决策、行动和交互能力的特种机器人和各种智能机器,如移动机器人、微机器人、水下机器人、医疗机器人、军用机器人、空中空间机器人、娱乐机器人等。

对不同任务和特殊环境的适应性,也是机器人与一般自动化装备的重要区别。

这些机器人从外观上已远远脱离了最初仿人型机器人和工业机器人所具有的形状,更加符合各种不同应用领域的特殊要求,其功能和智能程度也大大增强,从而为机器人技术开辟出更加广阔的发展空间。

1.2机器人国内外发展概况首先介绍一下机器人产生的背景,机器人技术的发展,它应该说是一个科学技术发展共同的一个综合性的结果,同时,为社会经济发展产生了一个重大影响的一门科学技术,它的发展归功于在第二次世界大战中各国加强了经济的投入,就加强了本国的经济的发展。

比如说日本,战后以后开始进行汽车的工业,那么这时候由于它人力的缺乏,它迫切需要一种机器人来进行大批量的制造,提高生产效率降低人的劳动强度,这是从社会发展需求本身的一个需求。

另一方面它也是生产力发展的需求的必然结果,也是人类自身发展的必然结果,那么人类的发展随着人们逐渐的这种社会发展的情况,人们越来越不断探讨自然过程中,在改造自然过程中,认识自然过程中,来需求能够解放人的一种奴隶。

那么这种奴隶就是代替人们去能够从事复杂和繁重的体力劳动,实现人们对不可达世界的认识和改造,这也是人们在科技发展过程中的一个客观需要。

机器人控制系统设计(毕业设计)文献综述

机器人控制系统设计(毕业设计)文献综述

(2)控制系统的硬件结构通过小组初步讨论决定控制计算机使用研华的主机,运动控制卡选用ADT(深圳众为兴),电机选用伺服电机。

(3)控制系统的软件部分主要采用VC进行编程,构建一个控制系统平台,在程序中给定坐标后,实现机械手从一点移动到另一点进行上下料的搬运工作。

之所以使用VC,一方面,ADT 的运动控制卡支持VC进行编程,另一方面,使用VC进行编程比较灵活,易于改进和变化。

(4)电路图部分根据所选的硬件设备,使用Protel进行绘制。

三、作者已进行的准备及资料收集情况在设计之前,翻阅了多篇关于机器人方面的书籍。

对于控制系统的发展及其在机器人上的应用都有了相关的了解,这为建立机器人控制系统的模型做了一些前期准备工作。

在此期间,还自学Protel和Solidworks等软件,为控制系统的电路设计和程序设计做好了准备。

还借了《单片机基础》、《48小时精通Solidworks2014》、《工业机器人》等书籍便于今后设计过程翻阅参考。

四、阶段性计划及预期研究成果1.阶段性计划第1周:阅读相关文献(中文≥10篇,英文≥1篇),提交文献目录及摘要。

第2周:翻译有关中英文文献,完成文献综述、外文翻译,提交外文翻译、文献综述。

第3~6周:控制系统总体设计,提交设计结果。

第7~11周:硬件元器件的选型、I/O口接线图,提交设计结果第,12~14周:软件编程,装配图。

第15周:工程图绘制,工程图。

第16周撰写毕业设计说明书,提交论文,准备答辩。

2.预期的研究成果(1)通过该课题的完成,能让自己对控制系统的开发设计及应用有全面的了解,增强对控制系统的设计能力。

(2)通过该课题的完成,综合考虑无负载条件和有负载条件下的工况要求,通过减少扰动误差来提高系统精度。

五、参考文献1.刘文波,陈白宁,段智敏编著,工业机器人. 东北大学出版社, 2007.12.2.王承义著, 机械手及其应用.机械工业出版社, 1981(TP241/2).3.(苏)尤列维奇著, 新时代出版社,机器人和机械手控制系统. 1985(TP24/1). 4.机械结构《工业机械手》编写组编,工业机械手.上册, 上海科学技术出版社, 1978( TP241/1:1)5.王淑英.电气控制与PLC的应用. 机械工业出版社,2007.6.张奇志,周亚丽编著. 机器人学简明教程. 西安电子科技大学出版社,2013.04(TP242/103)7. Saeed B. Niku著. 机器人学导论:分析、控制及应用:analysis, control, applications (美). 电子工业出版社, 2013(TP24/36).8. 布鲁诺·西西利亚诺, (美) 欧沙玛·哈提卜编辑. 机器人手册(意). 机械工业出版社,2013 (TP242-62/1)9.金广业编译.工业机器人与控制.东北大学出版社,1991.310.周伯英编著.工业机器人设计.机械工业出版社,199511.(俄)索罗门采夫主编.工业机器人图册.机械工业出版社,1993.512. A. Mohammadia, n, M. Tavakoli b, nn, H. J. Marquez b, F. Hashemzadehb.Nonlinear disturbance observer design for robotic manipulators. Control Engineering Practice 21 (2013) 253–267六、指导教师审阅意见签名年月日。

搬运码垛机器人毕业设计

搬运码垛机器人毕业设计

搬运码垛机器人毕业设计标题:搬运码垛机器人设计与实现一、引言随着现代工业生产的迅猛发展,自动化生产已经成为工业生产的主要趋势。

其中,机器人技术的快速发展已经成为自动化生产的重要组成部分。

机器人的广泛应用不仅提高了生产效率,还有效地减少了人力资源的使用,降低了劳动强度,提高了生产质量。

本文以搬运码垛机器人为主题,详细介绍了其设计和实现。

二、设计目标本设计旨在实现一个自动化搬运码垛机器人,具备以下功能:1.实现对不同尺寸、不同重量的货物的搬运和垛码;2.具备自适应能力,能够根据环境变化灵活调整搬运路径;3.具备安全性,能够保证人员和货物安全;4.操作简便,可通过不同设备和方式进行控制。

三、硬件设计1.机械臂:采用多关节机械臂,具备广泛的运动范围和搬运能力;2.轮式底盘:用于机器人的移动和定位,具备良好的稳定性和灵活性;3.传感器:通过安装在机器人上的传感器获取环境信息,如距离、重量、能量等;4.控制系统:包括单片机、驱动电路和输入输出设备,用于控制机器人的运动和操作。

四、软件设计机器人的软件设计主要包括路径规划、自适应调整和安全控制等功能:1.路径规划:通过算法计算最优路径,将搬运过程中的轨迹规划为自动获取到的最短路径;2.自适应调整:通过传感器获取环境信息,根据实时数据进行路径调整,避免障碍物和优化运输效率;3.安全控制:通过设置监控系统和传感器,确保机器人在搬运和垛码过程中不会对人员和物品造成伤害;4.用户界面:设计一个友好的用户界面,可以通过需要搬运或者垛码的货物参数进行设置。

五、实验与验证在设备完成设计后,需要进行实验和验证,确保其具备预期功能和要求。

1.运动测试:通过控制系统测试机器人的各项运动功能,包括前进、转向、抓取和放置等动作;2.环境适应性测试:在不同环境中进行测试,验证机器人是否能够适应各种情况下的运动和搬运;3.安全性测试:测试机器人在操作过程中是否能够实时感知到周围环境并避免碰撞;4.效率测试:测试机器人的搬运速度和准确性,与手工操作进行对比。

基于RobotStudio机器人毕业仿真设计

基于RobotStudio机器人毕业仿真设计

附件:毕业论文(设计)封面格式学生毕业论文(设计)基于RobotStudio工业机器人电机装配工作站虚拟仿真设计教学系(部):XXXXXXX专业.年级: XXXXX_学号:_XXXXXXX学生姓名:XXXXX成绩:_____87____________指导教师:_XXX年月日目录1 设计背景1.1 设计背景1.2 设计意义1.3 设计的主要内容2.设计要求3.机器人选型与工作站布局3.1 设计流程图3.2 机器人选型3.3 总体框架3.2 机器⼈模型选择与使用的模块4 仿真系统的设计4.1 I/O板与机器人信号4.2 Smart 组件设计4.3 示教器程序编写4.4 总流程程序编写5 总结展望5.1 总结5.2 展望参考⼈献基于RobotStudio工业机器人电机装配工作站虚拟仿真设计摘要:在制造企业产品设计和制造的过程中,计算机仿真一直是不可或缺的工具,它在各种电器,汽车配件生产,工厂加工等方面发挥了巨大作用。

制造业竞争的日趋激烈,人们对机器人的设计提出更高的要求:用仿真设计出框架,实现直接装备。

从发展的历程来看,机器人是仿真技术在制造业中应用的新趋势。

本篇主要论述机器人对工作站三个完整工件的装配,需要用到I/O信号、Smart 组件、机器人示教器等;并在仿真设计中提高自己对软件的使用能力,增加专业知识,提高逻辑能力。

1 设计背景与意义1.1 设计背景在许多从事机器人研究的部门都装备有功能较强的机器人仿真软件系统,它们为机器人的研究提供了灵活和方便的工具。

例如,美国Cornell 大学开发了一个通用的交互式机器人图形仿真系统INEFFABELLE,它不是针对某个具体机器人,而是利用它可以很容易建立所需要的机器人及环境的模型,并且具有图形显示和运动的功能。

西德Saarlandes大学开发了一个机器人仿真系统R0BSIM,它能进行机器人系统的分析、综合及离线编程,。

MIT开发了一个机器人CAD软件包OPTARMⅡ,它可用于时间最优轨迹规划的研究。

AGV路径规划设计

AGV路径规划设计
20世纪80年代初,欧洲的技术就开始向美国转移,此时美国的AGV生产厂商从1983年的23家剧增至1985年的74家。美国各公司在欧洲技术的基础上,将AGV发展到更加先进的水平。这一时期,无线导引技术也开始引入到AGV系统中,而且系统也可以在线自动充电,24小时不间断运行,充分表现出AGV系统较好的灵活性、准确性和可靠性。1984年,美国通用汽车公司完成了它的第一个柔性装配系统(FAS),从此该公司就成为当时AGV的最大用户。1986年已达1407台,1987年又新增加1662台。到目前为止,全世界已拥有AGV系统15000多组,约100000辆AGV。AGV的发展主要依赖于经济的发展和科技的进步。AGV是替代高吊的人力劳动的高科技产物。
从20世纪50年代末到60年代初期,计算机技术开始应用到自动化生产线上,出现了最初的计算机控制系统。这一时期就有多种类型的AGV用于工厂和仓库,1960年欧洲就安装了各种形式、不同水平的AGVs220套,使用AGV1300多台。20世纪70年代,由于欧洲的公司对托盘的尺寸和结构进行的标准化,促进了AGV的进一步发展。70年代中期,由于微处理器技术和计算机技术的相结合发展,伺服驱动技术的成功促进了复杂控制系统的改进,并设计出更为灵活的AGV。1973年,瑞典的VOLVO汽车公司和Schindler-Dighton公司就联合研发了多种AGV,并在KALMAR轿车厂的装配线上大量采用了AGV进行计算机控制装配作业,扩大了AGV的使用范围。70年代末,欧洲约装备了520个AGV系统,共有4800台小车。其应用领域分布为:汽车工业(57%),柔性制造系统FMS(8%)和柔性装配系统FAS(44%)。当时,欧洲的AGV的发展很快,已经成为AGV技术研发与运用的中心,为各大企业带来了巨大的经济效益。
2、查阅文献资料,明确研究方向,运用运筹学的相关理论和方法对AGV系统路径优化问题进行分析和研究,构建图论系统模型和路径规划优化方法。

扫地机器人毕业设计

扫地机器人毕业设计

扫地机器人毕业设计简介扫地机器人是一种能够自动执行清扫任务的智能家居设备。

毕业设计将致力于设计、开发和实现一款高效、可靠的扫地机器人,并通过机器学习技术使其能够自主导航、规划清扫路径并完成清扫任务。

系统需求本文档将对扫地机器人毕业设计的系统需求进行详细阐述,包括硬件要求、软件要求和功能要求等。

硬件要求•电机:扫地机器人需要配备强力的直流电机,使其能够在不同地面上灵活移动。

•传感器:扫地机器人需要搭载多种传感器,如超声波传感器、红外线传感器和摄像头等,以实现环境感知和障碍物检测。

•电池:为了满足长时间工作的需求,扫地机器人需要搭载高容量的可充电电池。

•控制系统:扫地机器人需要配备微控制器和电路板等控制系统,以实现各种功能的控制。

•运动部件:扫地机器人需要配备轮子、驱动装置和悬挂系统等运动部件,以保证机器人能够自由移动。

软件要求•操作系统:设计一个基于Linux的嵌入式操作系统,以提供良好的系统管理和资源调度。

•环境感知算法:通过机器学习算法,对传感器获取的环境信息进行处理和分析,以实现障碍物检测和距离计算等功能。

•自主导航算法:设计一种自主导航算法,使扫地机器人能够规划清扫路径并进行智能导航,避免碰撞和卡住。

•清扫算法:优化清扫算法,使扫地机器人能够高效地进行地面清扫,并确保每个区域都得到充分清洁。

功能要求•自主导航:扫地机器人应能够通过环境感知和自主导航算法,实现智能移动和路径规划。

•清扫功能:扫地机器人应能够通过清扫算法,对目标区域进行高效、全面的清扫。

•障碍物避开:扫地机器人应能够通过环境感知和自主导航算法,避免与障碍物碰撞并进行相应的规避动作。

•电量管理:扫地机器人应具备智能的电量管理功能,能够及时返回充电座并充电,以保证长时间工作的能力。

•远程控制:扫地机器人应支持远程控制功能,方便用户对机器人进行操作和指导。

实施计划本章节将详细介绍扫地机器人毕业设计的实施计划,包括项目进度、资源分配和风险管理等。

智能机器人设计毕业论文

智能机器人设计毕业论文

.. 目录第1章. 绪论 (3)1.1智能机器人技术发展的重要意义 (3)1.2国内外机器人的发展史 (3)1.2.1 国外机器人的发展历史 (3)1.2.2 国内机器人的发展历史 (4)1.3服务机器人的特点关键技术 (4)1.4本论文的主要研究内容 (5)1.5本章小结 (5)第2章.物体检测与报警机器人的总体设计 (6)2.1概述 (6)2.2主要组成 (6)2.2.1 头部旋转机构 (6)2.2.2 主体部 (7)2.2.3 电机 (7)2.3主要技术参数 (8)2.4.电机的选型 (8)2.4.1 驱动机构的组成. (8)2.4.2 步进电机的选型比较 (9)2.4.3 步进电机的选型计算 (10)2.5蜗轮蜗杆传动的选型设计 (12)2.6电机的效核..................................... 错误!未定义书签。

2.7轴的较核及联件的选型........................... 错误!未定义书签。

2.7.1. 蜗杆轴的较核. ............................. 错误!未定义书签。

2.7.2. 蜗杆轴上轴承的选型........................ 错误!未定义书签。

2.7.3. 蜗轮轴的较核. ............................. 错误!未定义书签。

2.7.4. 蜗轮轴上轴承的选型........................ 错误!未定义书签。

2.7.5. 键的较核.................................. 错误!未定义书签。

2.7.6. 联轴器的选型.............................. 错误!未定义书签。

2.8本章小结....................................... 错误!未定义书签。

第3章. 驱动机构及其控制方式......................... 错误!未定义书签。

搬运码垛机器人毕业设计

搬运码垛机器人毕业设计

搬运码垛机器人毕业设计1. 引言搬运码垛机器人是一种自动化装卸货物的设备,它可以高效地从一个位置将货物搬运到另一个位置。

本文将介绍一个基于码垛机器人的毕业设计项目。

2. 设计目标本毕业设计的目标是设计和开发一种搬运码垛机器人,能够实现以下功能: - 通过视觉系统识别并定位堆码地点; - 利用机器人臂和夹爪完成货物搬运; - 自动化控制系统实现自主导航和路径规划; - 系统具备高度安全性和可靠性。

3. 毕业设计的硬件系统3.1 机器人底盘机器人底盘是整个系统的基础,它提供了机器人移动的能力。

我们将采用Omni轮底盘,因其具备良好的机动性和灵活性。

3.2 视觉系统视觉系统用于定位和识别堆码的位置。

我们将使用相机和图像处理算法,能够有效地检测和识别货物的位置和状态。

3.3 机械臂和夹爪机械臂和夹爪用于搬运货物。

我们将采用多关节机械臂和可调节夹爪,以适应不同尺寸和形状的货物。

3.4 自动化控制系统自动化控制系统是整个系统的核心,负责控制机器人的移动、机械臂和夹爪的操作,以及路径规划和导航等功能。

我们将使用嵌入式控制器和ROS(机器人操作系统)来实现。

4. 毕业设计的软件系统4.1 路径规划与导航路径规划与导航是搬运码垛机器人的重要功能之一。

我们将使用SLAM(同步定位和地图构建)算法进行环境建模和地图生成,以及A*算法进行路径规划和导航。

4.2 机器视觉算法机器视觉算法包括图像处理和目标识别等技术。

我们将使用OpenCV等开源库进行图像处理,并采用卷积神经网络(CNN)和支持向量机(SVM)等算法进行目标识别。

4.3 控制与通信控制与通信模块包括机器人的控制和与其他设备的通信。

我们将使用嵌入式控制器和ROS进行机器人的控制,以及使用TCP/IP和串口等协议进行通信。

5. 毕业设计的测试与验证为了验证搬运码垛机器人的设计和功能,我们将进行一系列的测试和实验。

首先,我们将进行单元测试来验证各个模块的功能和性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华 中 科 技 大 学 硕 士 学 位 论 文2 移动机器人平台2.1 引言Pioneer是Active Media公司生产的一种移动机器人系列,这个系列有两轮驱动(室内移动机器人),也有四轮驱动的(室外移动机器人)(如图2-1所示)。

这是一类小型移动机器人,其结构是由SRI International公司斯坦福大学的Kurt Konolige博士开发出来的。

图2-1 Pioneer 机器人系列Pioneer Ⅰ是最初的设计型号,它引入了基于西门子68HC II的微控制器和PSOS(Pioneer Server Operating System)软件。

它被设计在室内坚硬平整地面上移动,拥有坚固防滑的橡胶轮胎,还有一个双轮差分可反向驱动的系统,以及一个用于支撑的方向轮。

Pioneer II是Pioneer Ⅰ的改进型,它采用了西门子20MHz高性能的88C166微控制器。

带有精度更高的轮式编码器来定位﹑测距。

它还拥有面向360度范围的声纳环(前面8个,后面8个),基本达到了无缝测量。

软件方面,Pioneer II采用的是P2OS(Pioneer 2 Operating System),它对Pioneer Ⅰ是向下兼容的,华 中 科 技 大 学 硕 士 学 位 论 文扩展了原来的PSOS软件。

2.2 Pioneer II移动机器人硬件平台Pioneer 2-Dx型机器人长44.5cm,宽40cm,高24.5cm ,重9kg,可载重23kg,最大的平移速度为1800mm/sec,最大的旋转速度为360deg/sec[35]。

它提供了一个内嵌的西门子88C166微处理器(20MHz),负责低层次的数据处理和命令执行。

另外,它具有如下基本设备:十六个声纳测距装置、一个激光测距仪、十个避碰传感器、一个Cannon EVI-D30摄像头、一个遵循802.11b规约的无线网卡和两个RS-232串行接口等。

在装满电池的情况下,该移动机器人可以连续运行近8个小时。

这种机器人是即插即用(Plug and Play)的。

除了上面说的这些部件外它还可以挂载其他传感器和一些附件。

这些部件都是由车载微控制器(Onboard microcontroller)和移动机器人服务器端软件来控制管理的。

我们智能与复杂系统实验室使用的是DX型移动机器人,它主要由下列部件构成:控制台,通讯端口,摄像头,激光测量部件,声纳,轮式编码器,避碰传感器,语音系统,电子罗盘以及蓄电池。

2.2.1控制部件Pioneer II控制部件包括微控制器和控制面板。

微控制器就在控制面板下方,主要用于控制传感器,从传感器读取数据。

并根据传感器数据由控制算法得到控制量,从而把控制量施加到驱动设备,完成本次任务。

控制面板一部分是与甲板连在一起的,另外一部分位于机器人的一侧。

如图2-2所示。

它包括一个液晶显示屏LCD,主要用来现实移动机器人的运行状态﹑内部信息以及相应的报警信息,比如说电池电量不足。

在控制面板上还有一个MOTOR和RESET控制按钮以及相应的指示灯,是用来控制移动机器人运动的硬件开关;同时控制面板上还带有一个9针的D型接头串行口。

华 中 科 技 大 学 硕 士 学 位 论 文图2-2 Pioneer Dx 移动机器人外观2.2.2 传感器部件1)Pioneer II带有两个声纳阵列,其中8个安装在移动机器人前面部分,构成一个半圆环(如图2-3所示),用来探测前方和两侧。

另外8个安装在移动机器人后部,也同样构成一个半圆环,用来探测后方和两侧。

在我们的实验中声纳主要目的是探测机器人周围物体位置及距离信息,这些信息用来识别周围环境特征,以及避开障碍物进行导航。

在图2-3中我们可以看到,两列声纳环布置是以20度为间隔的,这样保证了180度的探测范围,从而两个声纳阵列就可以知道周围360度范围的环境信息。

每个声纳发射频率是25Hz,探测范围是10cm~5m,其发射模式可以有软件来控制,在默认情况下前方是从左至右,后方是从右至左的。

同时我们可以调整声纳增益,在小的增益情况下,声纳对外部噪音和错误回声灵敏度相对要小,但降低了检测小物体的能力。

2)Pioneer DX采用了轮式编码器,它是一个高精度的光学积分编码器,每一圈产生9850个滴答(19滴答/毫米)。

在我们实验中它主要用来精确定位,以及检测机器人移动速度。

华 中 科 技 大 学 硕 士 学 位 论 文图2-3 Pioneer DX 声纳位置图2.3 Pioneer II移动机器人仿真平台Pioneer系列移动机器人软件都是由konolige博士开发的。

它主要是一个客户机/服务器(Client/Server)结构,在Pioneer II中,运行在单片机中的P2OS(Pioneer 2 Operating System)是作为服务器端,它通过串行端口与客户端连接。

Pioneer II-DX机器人的软件操作平台是基于Linux的, Linux是unix的一种免费版本,其网络功能强大、安全性能强、代码是开放式的,因此受到用户的欢迎。

同时Activmedia Robotics公司提供了一个软件开发平台Aria。

开发者在Aria平台上用c++或c编写的程序放到移动机器人的本体上。

本地PC机可与机器人组成一个小局域网,通过无线网卡来访问机器人,并且利用Telnet登陆机器人系统来激活程序。

Aria是由c++语言编写,源代码是开放的,因此可以用它集成用户自己的控制软件。

它既支持单线程,也支持多线程,使客户端较容易地控制和管理机器人服务器,以及移动机器人本体上的传感器。

它具有自己强大的类库,来支持对机器人所有硬件以及运动的控制。

它对于机器人控制华 中 科 技 大 学 硕 士 学 位 论 文来说是底层的,主要负责串口通信,包的发送,多线程管理,附件控制等[35]。

Saphira 建立在Aria 之上,内嵌有Aria ,并加入了Colbert 语言。

Saphira 提供了更友好的界面和效率更高的编程语言。

Saphira/Aria 的体系结构如图2-4所示。

Saphira/Aria 客户端体系结构图2-4 Saphira/Aria 的体系结构 图2-5 控制结构图Pioneer II 自主移动机器人完整控制结构如图2-5所示,机器人本体上包括所有的传感器、执行器、电源等附属设备以及一台Siemens 88c166单片机构成下位机,同时还包括一台运行linux 装备无线网卡的PC 机(配置为penitum233,32M 内存)作为上位机,要强调的是上位机和下位机都是装置在机器人本体上的。

上/下位机构成Client/Server 结构,作为下位机的单片机上运行固化在EEPROM 内的微型操作系统P2OS ,作为一个接收请求,提供服务的服务器,负责将机器人执行器件和传感器的信息简单处理之后打包通过RS -232端口发给上位机,同时处理上位机通过RS -232串口发出的控制指令和其它操作请求,具体执行机器人各种硬件设施的操作;作为上位机的Linux 主机在通过串口与下位机建立连接之后,有两种选择,即可以直接利用获得信息控制机器人,也华 中 科 技 大 学 硕 士 学 位 论 文可以通过TCP/IP的连接仿真一个网络上的机器人服务器,这时可以让异地的计算机通过网络连接实现对机器人的控制、对于异地计算机未说,除了连接机器人的方式不是通过串口而是通过Socket连接之外没有任何其他的差别。

总的来说,Saphira/Aria与Pioneer server的结构提供了自上而下的分层控制结构,给用户的分层结构算法提供了较好的实现基础,在软件层面上(就是从Pioneer II串口信息传出之后)可以直接实现对底层的控制,对研究人员对软硬件的充分利用和二次开发提供了一定的便利。

另外一方面,Pioneer II的手册提供了所有串口信息和命令包的协议规程,这也为用户自行设计独立的应用程序提供了较好的基础2.4 Pioneer II移动机器人通讯控制平台搭建我们实验室的机器人软件操作平台是Linux系统,即机器人嵌入式控制平台的上层是Linux系统,它作为通讯的服务器端;而作为通讯的客户端我们使用的也是Linux系统,他主要发送控制指令和监视机器人移动状况。

在这里因为控制命令要求准确无误的发送到移动机器人,因此采用面相连接的,端对端的可靠性高的TCP协议来实现;对于数据量大机器人位置状况及运动情况信息我们要求的是及时发送大量数据,所以在这里采用的是时延性短的广播式协议UDP来实现的。

这里有必要先介绍一下基于socket网络编程。

2.4.1 基于socket的网络编程socket编程的基本模式是Client/Server。

Server端首先调用socket创建一个一定类型的socket,然后通过bind函数将这个socket绑定到一个Client知道的端口上,接着Server调用listen函数设置倾听队列的长度,为接收来自Client端的请求做准备,而后Server调用accept,开始在所绑定的端口倾听来自Client端的连接请求。

如果socket被设置成阻塞方式,accept调用将被阻塞,进程被挂起,直到Server 收到来自Client的请求后,accept才返回。

华 中 科 技 大 学 硕 士 学 位 论 文Client端通过socket调用创建一个一定类型的socket。

然后调用connect函数向Server所在的主机发送连接请求,连接时,需要指定Server所在的主机的IP地址和Server倾听的端口号,连接的报文包含了Client端的初始的序号SYN a和MSS=1460信息(最大数据段的大小)。

正在倾听来自Client的连接请求的Server受到Clientde连接请求后,Server从Client调用中返回。

Server将会向Client端发送Server端初始的序号SYN,Server对Client端的SYN a的确认ACK=a+1,还有本端的最大数据长度MSS。

当Client端接收到Server端的回应时,将发出对Server请求的回应ACK=b+1。

然后Client从connect中返回,返回值是一个打开的sockt的描述符,这个描述符和文件的描述符类似,程序可以像使用文件的描述符一样使用它。

稍后,在Server端收到对其请求的回应时,Server将从accept调用返回,返回值也是一个socket的描述符。

然后双方传输真正的数据。

一方使用write将要发送的数据写到TCP的缓冲区,由TCP层负责写向网络,另一端通过read将数据从TCP缓冲区中读出。

Read 和write系统调用和对文件读写相似。

相关文档
最新文档