基于光电传感器的避障四足爬行机器人设计与制作大学论文.doc
重庆工业职业技术学院 毕业设计(论文)课题 基于光电传感器的避障四足爬行机器人 设计与制作 (起止日期 2016 年 11 月 01 日 2017 年 4 月 30 日) 自 动 化 学院 机电一体化 专业 303 班 学生姓名 唐 真 学号 201440430321 指导教师 毛 臣 健 职称 教 授 教研室主任 毛 臣 健 重庆工业职业技术学院毕业设计(论文)任务书院 部: 自 动 化 专 业 班 级: 14机电303 学 生 姓 名: 唐 真 二O一六 年 十一 月45重庆工业职业技术学院毕业设计(论文)任务书课题名称 基于光电传感器的四足爬行避障机器人设计与制作课题简介技术指标工作量要求课题简介:现代工业生产中能代替人做某些危险、恶劣环境下的作业,重复的长时间作业因此,结合传感器搭建具有避障行走功能的机器人,具有重要的实用价值。本课题依托博创机器人套件“创意之星” 利用光电传感器以及基本结构组件搭建机器人,合理设计四足避障机器人的复合行走机构,根据感知提供的信息,完成机器人行走、障碍判断、行走机构变形等功能设计。通过图形化编程工具或C语言编写程序,最终实现四足爬行机器人避障。技术指标机器人可以实现向前爬行、向左爬行、向后爬行、向后爬行等动作。机器人可以避开路径外的障碍。工作量要求根据要求合理设计整个课题的实现功能,完成总体设计;搭建完整的四足爬行避障机器人;利用图形化语言或C语言编写控制程序;撰写符合要求的毕业论文。进度计划起止时间工作内容2016.11.012016.11.302016.12.012016.12.312017.01.012017.01.302017.02.012017.02.282017.03.012017.03.312017.04.012017.04.30熟悉毕业设计方案,查阅相关资料;熟悉“创意之星”,完成方案的初步设计;根据课题要求涉及机器人的主体,并利用套件进行搭建;掌握图形化编程工具的编程方法,熟练运用;机器人流程控制程序的编写及总体调试;编写毕业论文及修改,并为毕业答辩做准备。参考文献1 刘乐喜.微机计算机接口技术及应用M.华中科技大学出版社.2005.082 丘柳东. 机器人设计与制作M.四川:西南交通大学出版社,20153 姚宪华. 模块化机器人创新设计与竞赛M.北京:北京航空航天大学出版社,2010.课题组成员无说明:任务书由指导教师完成。重庆工业职业技术学院毕业设计(论文)指导纪要院 部: 自 动 化 专 业 班 级: 14机电303 指 导 教 师: 毛 臣 健 二O一七 年 四 月重庆工业职业技术学院毕业设计(论文)指导及阶段工作情况检查表指导记录阶段检查记录日期指导内容日期按要求完成任务情况学生签字 年 月 日指导教师签字 年 月 日说明:1此表由指导教师手工填写; 2“完成任务情况”一栏按学生是否按计划进度完成任务的情况填写。摘要现代工业生产中能代替人做某些危险、恶劣环境下的作业,或者单调、频繁和重复的长时间作业,例如在灾区抢险探测、未知地域探索、危险化学物品转移。如救生、有毒等一些人员或机动车无法抵达的区域。频繁、重复的简单路径的小件物品转移搬运,以及在原子能工业等部门中,完成对人体有害物料的搬运。机器人是自动执行工作的机器装置。它既可以接受人类的指挥,又可以运行预先编排的程序,也可以根据一人工智能技术制定的原则纲领行动。它的任务是协助或取代人类的工作。 此次设计智能避障爬行机器人模拟在危险对人体有害的环境通过光电传感器作为检测反馈原件完成运动前的检测工作,通过CDS5516舵机的使用与博创模块套件的结合拼装能灵活运动的执行机构,使用图形化编程软件完成机器人的自动规避障碍物动作程序的编写,完成四足爬行避障机器人的制作,实现避障功能,它将代替人工进行危险地域勘察探索,小件有害物搬运转移,这将大大减轻某些工作的危险及对未知地域的恐怖性,完成一些人类不能完成的工作,解放人类劳动、提高工作效率。关键词 :四足爬行机器人 智能控制 图形化编程目录摘 要61课题设计背景和目的10 1.1 设计背景10 1.2 设计目的112四足机器人总设计11 2.1 四足避障机器人设计要求11 2.2 四足避障机器人总体设计思路123硬件系统的组成13 3.1 创意之星博创模块化机器人套件14 3.2 控制部分15 3.2.1 控制器选用要求15 3.2.2 MultiF2 LEX2控制器简介15 3.2.3 控制器底盘选用要求16 3.3 执行机构16 3.3.1 机器人舵机选用要求16 3.3.2 CDS5516舵机简介16 3.3.3 运动执行套件18 3.3.4 舵机连接件18 3.3.5 其他连接件19 3.4 检测部分19 3.4.1 传感器选用要求19 3.4.2 传感器简介20 3.5 四足避障机器人的搭建204 软件系统设计22 4.1 软件总设计22 4.2 编程语言和软件的选用22 4.2.1 编程语言选择22 4.2.2 RNorthSTAR软件介绍22 4.2.3 UP-Debugger 多功能调试器介绍23 4.2.4 Robot Servo Terminal 软件介绍23 4.3 软件实现24 4.3.1 使用函数与模块简介24 4.3.2 四足避障机器人动作分解26 4.3 3 NorthR STAR软件编程实现385四足避障机器人的完成与测试40 5.1 四足避障机器人设计实体40 5.2 四足避障机器人测试功能40结束语41致谢43参考文献431课题设计背景和目的1.1 设计背景机器人近一个世纪以来飞速发展的高技术领域,自十九世纪六十年代美国推出第一台工业机器人以来,机器人领域便得到了迅猛的发展,它被广泛的应用于各部门包括医疗、娱乐、服务、卫生以及工业等许多方面,对人类的生产生活产生了极其巨大的影响。机器人技术是多学科交叉渗透的结果,其中涉及到计算机科学、信息处理、控制工程、人工智能、机构运动学、精密机械、动力学、传感器技术、仿生学等多个学科领域。机器人的出现使得传统工业生产的发生了本质的变化,人类的生产方式从手工作业、机械化、自动化跨入了智能化的新时代。在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直接到达的地域的探险,这就需要用机器人来完成。而机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能。因此,自动避障系统的研发就应运而生。21 世纪的今天,随着科技的发展,对于未知空间和人类所不能达到的地域探索逐步成为热门,这就使得自动避障有了重大意义。科技飞速的发展,带动中国经济的发展,机械的自动化将有力地推动了社会生产力的发展和保证产品的质量, 同时也将使现代产品性能有进一步保障,产品更新换代的节奏也越来越快。现代生产越来越重视安全和高效率,各种智能机器人应运而生。此次四足避障机器人就是一种拥有运动机能的机器人。 四足避障机器人是自动执行工作的机器装置,是靠自身动力和控制能力来实现各种功能的一种机器。现代的机器人还可以根据人工智能技术制定的原则纲领行动。我们的四足避障机器人就是自动避障机器人中的一类。自动四足避障机器人可以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物。到了21世纪,现代机器人技术众多生活服务等众多领域获得了越来越普遍的应用,21 世纪将是一个更为广泛的开发和应用机器人技术的时代, 计算机技术的不断进步和发展使机器人技术的发展一次次达到一个新水平,机器人技术已拓展到全球经济发展的诸多领域,成为高科技中极为重要的组成部分,人类文明的发展,科技的进步已和机器人的研究,应用产生了密不可分的关系,人类社会的发展已离不开机器人技术,而机器人技术的进步又对推动科技发展起着不可替代的作用。 军事侦查与环境探测.探测危险与排除危情,在战场上或工程中,常常会遇到各种各样的意外。这时,智能化四足避障机器人就会发挥很好的作用。智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要体现多功能爬行机器人的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时四足爬行机器人可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的 弥补,实现经济收益,形成商业价值。1.2 设计目的在一些特殊环境,例如在崎岖的山路上,路面并不是很平整,采用智能爬行机器人进行小物质运送、环境探测等,例如火灾现场,由于火势太大,指挥人员对着火地点的内部情况并不清楚时,可能就会延误救援,造成生命财产的巨大损失,但要是采用这种智能避障爬行机器人,只需在爬行机器人上面搭载相关的摄像设备,让其进入火势区自动行驶来勘察情况,指挥人员就可获的现场实际情况,从而更有效的指挥救援。例如在原子能工业等部门中,完成对人体有害物料的搬运或工艺操作。正常的生产中一些工厂的重复乏味劳动对一线工人的心理会造成一定影响, 车间里的有毒有害物质则直接影响到了工作人员的身体健康, 高温高强度的恶劣工作环境甚至能给操作人员带来生命危险,为此工业机器人的发明和使用显得尤为重要。它将在实际生活中取代人手,使人在工作中得到解放,有充分的自由服务其他。本次课题设计避障爬行机器人模拟在标准化的危险场所通过检测反馈原来完成简单的避障运行工作,如果成功代替人工进行对未知地域的探索勘查,这将大大减轻探索人员遇到危险的系数。这种爬行机器人可以避开障碍物,实现智能化。最终设计的更全面时实现无人自动避障行驶,爬行机器人是一个集环境感知、动态决策与规划、运动控制与执行等多种功能于一体的综合系统。它是机器人学中的一个重要的分支。它的研究领域涉及传感器、多传感器信息融合技术、计算机视觉、自动控制、人工智能、模式识别等技术。它集中体现了科学技术的最新成果,和固定机器人比较来看它的应用范围和功能更宽广、可靠和优越。它也成为了国内外研究的热点。而且此智能避障爬行机器人所需的模块构造简单常见,原材料市场来源丰富,成本低廉,很有市场前景。2四足避障机器人总设计2.1 四足避障机器人设计要求该智能爬行机器人可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、控制器、执行部分。机器人要实现自动避障功能,最主要的是光电传感器的安装,按设计要求,前面两个传感器,左右各一个传感器。基于上述要求,传感器的检测也是检测与障碍物间的距离,只要求粗略感知即可,考虑使用价廉物美的红外反射式传感器来充当。智能四足爬行机器人的执行部分,是舵机来充当的,选用必须满足避障爬行机器人运动时时力矩输出、运动控制的要求,完成避障机器人的避障动作。工业中存在着需要人手进行现场勘查检测,进入危险场所,易燃易爆,有毒气体等危险场所,从一个地方搬运到另外一个地方的简单重复性工作,这加大了工厂的负担和加重了工人的劳动强度。项目模拟一个在障碍物之间的运行的机器人,在实验环境中设置两边封闭的通道,以此来模拟实际环境中的障碍物基本要求:1、爬行机器人能正常的向前爬行;2、爬行机器人只能在只能在设置好的专用范围类移动;3、爬行机器人能通过光电检测障碍物,不能碰撞任何障碍物;且能完成预定线路的行进;4、爬行机器人在运行时是完全自动的,无需人为手动控制;5、整个过程按照安全原则进行。此次设计的避障爬行机器人模拟的是危险场所及人类未知领域上通过检测反馈原理进行勘察探索,在未来探测地形智能化进程中,必将得到广泛应用。未来探测机器人的智能化是探测发展必然的,在这种情况下研究光电传感器在智能机器人避障上的应用具有深远意义。本次设计完成避障机器人硬件与软件设计,且让硬件与软件实现良好的结合使得避障顺利完成避障工作。2.2 四足避障机器人总体设计思路在科学探索和危险地域中经常会遇到对与一些危险或人类不能直接到达的地域的探测,这些就需要用爬行机器人来完成。爬行机器人设计的基本思路是:不断检测前方以及左右的水平面内的物体,根据反馈的距离和方位信息确定前方的地形是开阔还是多障碍。然后根据这些信息通过设计好的程序确认是前进还是向左或右爬行。爬行机器人的基本功能是识别前方还有左右方有无障碍并根据光电传感器传回来的数据进行程序上的判断,自动避开障碍物,能够在空旷区直线爬行,为科学探索和危险地域提供服务。避障机器人的三个传感器分别安装在四足爬行机器人的前方、左方、右方,在前方安装了两个传感器,右边的传感器接收距离比左边的要远一些,当右边传感器发现有障碍物时,避障爬行机器人自动停止并向后退,若前方两个传感器都接收到信号的时候,机器人就立即停止了,若左方传感器发现有障碍,避障机器人自动向右方爬行,右方有障碍物被检测到就向左方爬行,如此循环往复。通过三个传感器的同时工作使避障机器人能顺利安全快速的躲避障碍物,继续前进完成工作。 根据设计思路做以下四足爬行避障机器人设计结构如下。图2.1 硬件设计图3硬件系统的组成3.1 创意之星博创模块化机器人套件创意之星平台是一种简单易学的、图形化设计界面的、开放源代码的、面向中小学学生的机器人教学的开发平台。它是由北京博创兴盛科技公司开发的一套用于开展机器人教育教学的模块化机器人套件。创意之星机器人套件具备各种零件,这些零件都很容易互相拼接、组装,而且是通用、可重组的,各种零件之间有统一的连接方式,零件之间可以自由组合,从而搭建出各种发挥想象力的机器人,并可为自己搭建出的机器人编程。它具有模块化、积木式的特点,组装、编程都很方便,非常适合创作、设计各种各样的机器人,是机器人课程和创新训练的最佳平台,适合中小学学生的机器人创作和机器人相关实践活动。创意之星具有如下特点:(1)多种开发方式创意之星这个平台针对不同水平的人提供了不同的开发方式。一方面对于初学者创意之星平台提供了NorthStar图形化编程软件来进行编程,NorthStar图形化编程软件是本平台软件设计的一大特色,它使得学生在设计程序时不需要了解任何的编程语言规范,也不需要编写任何程序代码,只需拖放各种功能图标形成流程图,直接编译运行即可实现。这使得中小学学生更容易学习和使用创意之星开发平台,避免了学习高级编程语言的尴尬;另一方面对于高级用户,创意之星平台提供了C语言作为程序的开发和运行环境,学生可以通过编写C语言程序代码来实现有关机器人的功能。(2)硬件平台完全开放将硬件平台进行完全的开放是创意之星平台的一个特点,用户在使用这个平台时也可以重新搭建这个平台。开发和设计这个教学机器人平台的目的就是要让学生自己动手,充分发挥学生的想象空间,以培养学生的动手实践能力、创新能力、合作能力为主要目的。(3)硬件平台和机械平台完全分离创意之星将硬件平台和机械平台完全分离,硬件平台和械平台都是独立设计的,这样不仅可以任意地搭建机械平台,而且也不会损坏硬件平台。最后只要将硬件平台的控制器等固定在机械平台的框架上即可。(4)强大的硬件资源创意之星机器人套件提供了多种多样的结构零部件,这些零件都具有相同的接口,可以搭建出无数种机器人的组合。创意之星机器人套件还提供了颜色、温度、光强、碰撞等多种传感器和机器人控制器等,机器人无需连接电缆即可独立运行。3.2 控制部分3.2.1 控制器选用要求需要测试控制器要用到的各个接口是否工作正常,可以实现与避障机器人的运动执行机构和传感器的连线,完成避障机器人的控制。3.2.2 MultiF2 LEX2控制器简介控制器是机器人的核心部分,相当于机器人的大脑,适合作为智能机器人的主控制器。本文采用的是MultiFLEX2控制器,所以对其做详细的介绍。MultiFLEX2 控制器是一款专为智能机器人和小型智能设备设计的多功能控制器,适合作为为智能机器人的主控制器。它具备以下功能:1、具备520MHz、32 位的高性能嵌入式处理器和 Linux 操作系统,运算处理能力强大,而功耗只有2瓦,尺寸只有11厘米X7厘米,重不到250克;2、控制直流电机(须配合BDMC系列伺服驱动器),控制舵机(包括所有的传统航模舵机、博创的机器人舵机、韩国 AX12+等机器人舵机);调速、位置控制、力矩控制,可控制多达64路电机/舵机;3、连接各种传感器。通过20数字/模拟量的输入/输出端口,可以连接数百种传感器,采集传感器数据并处理、决策;4、可连接摄像头,实现人脸识别、颜色识别、形状识别等智能特性;可实现中文语音识别和语音合成,非常适合家庭服务机器人、教育娱乐机器人和特种服务机器人使用;5、具备 RS422 总线、USB 总线、CAN 总线和无线以太网(WiFi) ,市场上的各种功能模块,例如U盘、网络、视频监控系统、电子罗盘、GPS等设备,均可以直接连接到这款控制器上。图 3.1 MultiFLEX2 控制器由于 MultiFLEX2 控制器提供的各个接口适合连线,可以实现与爬行机器人的8个舵机和传感器的连线,所以使用该控制器作为机器人的控制部分。3.2.3 控制器底盘选用要求图 3.2 控制器底盘本次选用的机器人结构件的须符合小巧,承重量大,套件的所提供的六边形底盘恰好合适,采用此底盘作为机器人底盘。它将与机器人控制器连接成为固定的控制部分。3.3 执行机构3.3.1 机器人舵机选用要求舵机选用必须满足四足避障机器人运动时时力矩输出、运动控制的要求,完成四足避障机器人的避障动作。3.3.2 CDS5516舵机简介舵机具有控制简单、标准统一和价格较低等特点。当舵机接受一个控制指令后就可以自动转动到一个比较精确的角度,所以适合在关节型机器人上使用。CDS5516系列机器人舵机属于一种集电机、伺服驱动、总线式通讯接口为一体的集成伺服单元,CDS5516舵机可以工作在舵机模式和电机模式下,舵机模式时,可以在0°300°的范围内摆动;电机模式时,可以在0°360°范围内摆动,CDS5516舵机既具备舵机的性能,又具备电机的性能,不仅可以用于机器人的关节也可以作为轮子。然而每个舵机都有自己单独的ID号,在搭建机器人时需要对舵机的ID号进行设置。机器人舵机的概念起源于对“航模舵机”的改进。 长期在各种教育娱乐机器人上大量使用的“航模 舵机”可以实现位置伺服的功能;由于它具有高度集成、标准统一、控制简单、价格较低等特点,因此广泛使用在各类教育娱乐机器人上。博创科技开发的 pro系列机器人舵机,解决了传统舵机用在机器人上的各种问题,同时继承了传统舵机的各种优势。CDS5516 机器人舵机的主要特色(与航模舵机对比)1、控制精度高。位置伺服控制分辨率可达 0.35 度。2、响应速度快。响应时间可达 2ms,而传统航模舵机为 20ms。3、通过串行总线控制,可最多连接数百个单元;每个单元均具有位置、速度、力矩等反馈,用 CDS 系列舵机搭建的机器人可以用人工示教来设定动作;即用户用手调 整机器人的各个关节姿态,机器人舵机能够自动记录位置、速度等参数,并由用户播放。不再需要一个关节一个关节地设置参数,不再需要设置参数后再观察关节是 否到位、参数是否合适。多关节机械手的优点是:动作灵活、运动惯性小、通用性强、能抓取靠近机座的工件,并能绕过机体和工作机械之间的障碍物进行工作.随着生产的需要,对多关节手臂的灵活性,定位精度及作业空间等提出越来越高的要求。多关节手臂也突破了传统的概念,其关节数量可以从三个到十几个甚至更多,其外形也不局限于像人的手臂,而根据不同的场合有所变化,多关节手臂的优良性能是单关节机械手所不能比拟的。四足机器人的舵机作为机器人的执行机构,此次课题设计采用的是舵机型号为 CDS5516。由于此舵机出色的性能,满足避障机器人运动并顺利避障时力矩输出、运动控制的要求,所以选用此舵机。图 3.3 CDS5516 舵机3.3.3 运动执行套件作为连接件的大小要实现舵机控制,运动速度快慢要符合避障机器人的总体设计要求。提供抓地设计防止运动打滑。套件中的机械夹取构件满足此要求,并提供连接件与舵机接合。图3.4 CDS55运动执行机构3.3.4 舵机连接件在结构件中选择矩形构件作为舵机外壳,它的结合性好,两面镂空,符合舵机要求,外有锯齿形孔,方便与其他构件连接。图 3.5 舵机插槽3.3.5 其他连接件对其他连接件必须与舵机底盘、 夹取机构形成良好的接合, 不再使用中脱落,套件中提供的锯齿与其他构件有良好的接合性,故选用套件提供的连接件。图 3.6 连接件3.4 检测部分3.4.1 传感器选用要求本次设计的四足避障机器人作为模拟实际情况判断运动区域是否有障碍物存在,使用的传感器在遮挡时回馈一个高电平信号,无物体遮挡时为低电平信号,完成检测反馈工作。3.4.2 传感器简介传感器是一种检测装置,能感受到被测量的信息, 并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。本次采用型号 E18-D80NK 光电传感器。这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测 80 厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近) 。检测障碍物的距离可以根据要求通过尾部的电位器旋钮进行调节。该传感器具有探测距离远、受可见光干扰小、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。本次设计的四足避障机器人作为模拟实际情况判断运动区域是否有障碍物存在,使用红外光电传感器在遮挡时回馈一个高电平信号,无物体遮挡时为低电平信号,满足检测判断需要,所以选用红外光电传感器作为检测元件,并且与实际生产生活中运动机构机构联合控制,增加了避障工作的准确性。图 3.7 红外光电传感器3.5 四足避障机器人的搭建 图3.8 连接件1 图3.9连接件2 图3.10连接件3图3.11检测部分图3.12机器人底板搭建4 软件系统设计4.1 软件总设计依据硬件设计图设置三个光电传感器,分别判断前方、左方、右方有无障碍物,避障机器人在运动过程中判断有无障碍物以及障碍物的距离。当障碍物距离达到前方设定距离时,避障机器人自动转变方向,红外光电传感器返回信号经过控制器分析改变运动方向,控制四足爬行避障机器人的运动执行机构运动避开障碍,避障机器人的左方和右方的传感器分别判断两个方向的情况,传感器检测到有障碍时,避障机器人向相反的方向运动,达到避障的目的,当发现的障碍被顺利避开之后,无其它其他障碍在设定范围内时,爬行机器人呈直线向前爬行。然后机器人自动恢复到初始运动方式继续扫描障碍物,如此往复进行。4.2 编程语言和软件的选用4.2.1 编程语言选择此次软件编程采用的是C语言,作为一个高级语言,功能齐全,适用范围大,文件由数据序列组成符合设计需要。C语言的优点:1、简洁紧凑、灵活方便;2、运算符丰富;3、数据类型丰富;4、表达方式灵活实用;5、允许直接访问物理地址,对硬件进行操作;6、生成目标代码质量高,程序执行效率高;7、可移植性好,表达力强。根据 C 语言的特性和优点选用它完成搬运机器人控制的编程。4.2.2 RNO软件介绍为了简化C语言编程流程,我们将机器人的运动相关函数集成为图形化模块。该机器人的设计使用Northstar软件开发环境。它是一个图形化模块编程软件,图形化模块编程方便简洁,因其精简的模块更有利于编程者理解和使用。 在当前机器人硬件标准不统一的阶段,博创科技为降低机器人软件开发难度,推出了Northstar图形化机器人开发环境。包括以下三个部分的功能:1、用图形化、可视化的方式给机器人编程,同步生成 C 语言代码,在后台编译、并下载到机器人控制器上执行;2、集成 3D 仿真、可进行动作仿真、步态及路径规划等。仿真数据能输入图形化编程环境;3、集成实时、可视化数据采集与显示。由于上文优势可以实现了对 MultiFLEX2控制器的程序分析和调用的需要,完成了对搬运机器人软件设计。4.2.3 UP-Debugger 多功能调试器介绍通过功能选择按键可以让调试器的工作模式在RS232、AVRISP、数字舵机调试器之间相互切换。可以对AVR控制器进行串口调试和程序下载,可以对proMotionCDS5516数字舵机进行调试和控制。具体功能及接口如图4.1所示: 图 4.1 多功能调试器4.2.4 Robot Servo Terminal 软件介绍Robot Servo Terminal 具备一下功能:a、 线上的舵机ID搜索;b、设置参数,如ID 、波特率、加速度以及位置参数等参数;c、查看舵机状态,如舵机当前温度、位置、载荷、电压等;d、速度、位置、负载等关键参数动态曲线观测;e、 舵机固件升级;f、 舵机性能显示;软件界面如图4.2所示:图 4.2 Robot Servo Terminal软件界面4.3 软件实现4.3.1 使用函数与模块简介1 、使用函数与集成模块a、MFI功能:初始化系统;在主函数的开始部分调用。变量模块:对变量进行设置,如图4.3所示。图 4.3 变量模块b、MFS功能:设置舵机目标位置。适用于舵机模式。舵机模块:对舵机模式进行设置,如图4.4所示。图 4.4 舵机模块c、Del(int)功能:毫秒延时函数。延时模块:对延长时间进行设置,如图4.5所示。图 4.5 延时模块d、MFG功能:读取传感器输入值。传感器数据读入模块:对连接的数字式传感器进行设置,如图4.6所示。图 4.6 传感器数据读入模块e、while功能:使函数循环。条件循环模块:对整个函数的循环进行设置,如图4.7所示。f、 if ();else;功能:使函数进行判断。条件判断模块:对函数的选择进行设置,如图4.8所示。 图4.7 while循环模块图 图4.8 条件判断模块图g、开始和结束;功能:函数的开始和结束。开始和结束模块:对函数的开头和结尾进行设置,如图4.9所示。图4.9开始和结束模块图2 、 其他相关函数以下函数是在建立工程初始化时应用的相关函数。a、MFI功能:给舵机编号。b、MFS功能:设置输入端口的方向。c、MFS(int,int);功能:设置舵机工作模式。4.3.2 四足避障机器人动作分解四足避障机器人运行步骤分析: 四足避障机器人向前走:由于8个舵机的摆放位置的不同,舵机位置图如下所示: 图4.10 四足爬行避障机器人舵机位置本次我们分别设置8个舵机初始位置为(1,512)、(2,512)、(3,512)、(4,512)、(5,512)、(6,512)、(7,512)、(8,512)然后我们写四足机器人向前爬行的程序,但是由于实际舵机的转动情况与理想情况有偏差,误差是无法完全消除的,但是为了让避障四足爬行机器人行进为直线,就得多调试舵机参数。四足爬行机器人的行走方式分为两种:一种是动态平衡方式,另一种是静态平衡方式。以动态平衡的方式行走时,身体一侧的前足和另一侧的后足总是同时抬起然后向前迈出,另外两个则后蹬,使身体的重心向前移动,在身体倾覆之前,迈出的两足已经触地了,成为支撑足,当在某个时间点停止时,而有些状态是会翻倒的。静态平衡的行走方式在四足爬行机器人身上比较常见,在前进过程中,总有至少三个足接触地面,而重心的投影总在以这三个支撑足为顶点的三角形区域内,在任何一个时刻,自身都是平衡的,即使在某个时间点停止行走,也不会翻倒,对于四足爬行机器人来说静态平衡的行走方式具有很明显的优势,在调试过程中机器人不会翻倒,所以选择静态平衡的行走方式。(1)机器人的前进步态在设计步态之前必须满足以下两个条件:四足爬行机器人在任意时刻必须有不少于3个支撑足。四足爬行机器人的重心投影必须在3或4个支撑点所围成的多边形内。避障四足爬行机器人向前行走,根据图4.11得到向前行走的图形化模块。图4.11 避障四足爬行机器人向前走模块图表4.1 避障四足爬行机器人向前走程序代码 if (W=1)&&(X=1) MFSetServoPos(1,640,400); MFSetServoPos(2,512,400); MFSetServoPos(3,374,400); MFSetServoPos(4,800,400); MFSetServoPos(5,640,400); MFSetServoPos(6,800,400); MFSetServoPos(7,640,400); MFSetServoPos(8,800,400); MFServoAction(); DelayMS(500); MFSetServoPos(1,800,400); MFSetServoPos(2,800,400); MFSetServoPos(3,374,400); MFSetServoPos(4,800,400); MFSetServoPos(5,374,400); MFSetServoPos(6,800,400); MFSetServoPos(7,374,400); MFSetServoPos(8,800,400); MFServoAction(); DelayMS(500); MFSetServoPos(1,640,400); MFSetServoPos(2,800,400); MFSetServoPos(3,374,400); MFSetServoPos(4,512,400); MFSetServoPos(5,374,400); MFSetServoPos(6,800,400); MFSetServoPos(7,374,400); MFSetServoPos(8,800,400); MFServoAction(); DelayMS(500); MFSetServoPos(1,640,400); MFSetServoPos(2,800,400); MFSetServoPos(3,224,400); MFSetServoPos(4,800,400); MFSetServoPos(5,640,400); MFSetServoPos(6,800,400); MFSetServoPos(7,640,400); MFSetServoPos(8,800,400); MFServoAction(); DelayMS(500); (2)避障四足爬行机器人向左横向爬行,根据图4.12得到向左横向爬行的图形化模块。图4.12避障四足爬行机器人向左爬行模块图表4.2 避障四足爬行机器人向左爬行程序代码 i