版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动巡逻机器人模拟 论文(设计)题目自动巡逻机器人模拟摘要随着人工智能的发展,机器人技术在我们日常生活中应用得越来越广泛,机器人不仅可以替人们完成很多繁重且高危险性的劳务,还可以替人们完成重复性强并且繁琐无聊的劳务。在繁重且高危险性的劳务中,使用机器人可以很大程度地减少企业的用工成本,让企业可以更好的盈利;而在重复性强并且繁琐无聊的劳务中,使用机器人可以很好的提高企业的生产效率和产品质量。这些都使机器人应用技术有很大的发展空间去供人们开发和研究。在将来的社会中,机械化和自动化是各领域发展的方向和目标,因为机械化和自动化不仅使各领域的效率得到很大提高,还很大程度的解放了人们的休闲时间,让人们有更多的时间去学习和娱乐。巡逻机器人设计涉及到机械工程、计算机、传感器技术、自动控制、机器视觉等诸多科学技术的综合应用,要求其在巡逻过程中可以完成障碍物检测、避障、行人检测、白天巡逻、夜间巡逻、导航、定位等功能。目前在机器人+安防中应用中出场最多的是巡逻机器人,从目前行业中重点厂商的产品来看,绝大多数产品都具备自主巡航、自动避障、视频监控、人脸识别系统、实时定位以及红外热像功能,另外根据产品应用不同还具备载人设施、抛投装置等。可以说安保巡逻机器人集成了全景视频监控、环境感知及智能分析等功能,可实现多机协同,亦可辅助甚至代替安保人员执行巡逻任务。其具备的全景拍摄及24小时运行等优点可极大的节省人力投入,可广泛应用于工业园、工厂等环境。关键字:巡逻机器人;传感器技术;自动控制;障碍物检测;行人检测;导航;避障AbstractWiththedevelopmentofartificialintelligence,roboticstechnologyismoreandmorewidelyusedinourdailylife.Robotscannotonlyperformmanyheavyanddangerousservicesforpeople,butalsoperformrepetitiveandtedioustasksforpeople.Intheheavyandhigh-risklaborservices,theuseofrobotscangreatlyreducethecostofenterpriselabor,sothatenterprisescanmakebetterprofits;andintherepetitiveandtediouslabor,theuseofrobotscanimprovetheproductionefficiencyandproductqualityofenterprises.Allthesemaketherobotapplicationtechnologyhaveagreatdevelopmentspaceforpeopletodevelopandresearch.Inthefuturesociety,mechanizationandautomationarethedirectionandgoalofthedevelopmentofvariousfields,becausemechanizationandautomationnotonlyimprovetheefficiencyofvariousfields,butalsoliberatepeople'sleisuretimetoagreatextent,sothatpeoplehavemoretimetostudyandentertainment.Patrolrobotdesigninvolvesthecomprehensiveapplicationofmanyscienceandtechnology,suchasmechanicalengineering,computer,sensortechnology,automaticcontrol,machinevision,etc.Itisrequiredthatitcancompleteobstacledetection,obstacleavoidance,pedestriandetection,daypatrol,nightpatrol,navigation,positioningandotherfunctionsinthepatrolprocess.Atpresent,patrolrobotsarethemostwidelyusedintheapplicationofrobotsandsecurity.Accordingtotheproductsofkeymanufacturersintheindustry,mostoftheproductshavethefunctionsofautonomouscruise,automaticobstacleavoidance,videosurveillance,facerecognitionsystem,real-timepositioningandinfraredthermalimaging.Inaddition,accordingtothedifferentapplicationsofproducts,theyalsohavemannedfacilities,throwingdevicesandsoon.Itcanbesaidthatthesecuritypatrolrobotintegratesthefunctionsofpanoramicvideosurveillance,environmentalawarenessandintelligentanalysis,whichcanrealizemulti-machinecooperation,andcanalsoassistorevenreplacesecuritypersonnelincarryingoutpatroltasks.Ithastheadvantagesofpanoramicphotographyand24-houroperation,whichcangreatlysavemanpowerinvestment,andcanbewidelyusedinindustrialparks,factoriesandotherenvironments.Keywords:PatrolRobot;SensorTechnology;AutomaticControl;ObstacleDetection;PedestrianDetection;Navigation;ObstacleAvoidance目录第一章巡逻机器人介绍 第一章巡逻机器人介绍1.1巡逻机器人背景机器人综合应用了人工智能、物联网、云计算、大数据等高新技术。近几年随着这些技术的进步,机器人的发展也十分迅速,在各个行业都有很多应用。国内的警用安保巡逻机器人的发展也十分迅速。尤其在《中国制造2025》《机器人产业发展规划(2016-2020年)》和《新一代人工智能发展规划》等政策的出台后,国家对于以机器人为代表的许多智能高端制造产业给予了极大的关注与支持。高校、研究所、公司紧密合作,形成了产学研一体化的机器人生态链。以公安部为主导,在发挥自己公安专长的基础上,多家企业深入合作,相继推出了多款警用安保巡逻机器人。随着人脸抓拍、语音交互、身份识别等功能的不断发展,在安防体系中警用安保巡逻机器人的角色日趋重要,逐渐成为公共安全领域的重要装备。警用安保巡逻机器人按其工作场景大致可分为室内和室外应用。室内主要适用于展厅、广场、车站候车厅等地势较为平坦的区域,行驶速度较慢,转向较为灵活的场景。室外要求安保巡逻机器人有较强的运动能力,可稳定通过一般的坑洼路面、陡坡以及微小裂缝带等路况环境。同时,还必须有在雷电雨雪特殊天气下的安全运行的能力,能够适应野外工作的高低温环境。野外安保巡逻机器人常规采用四轮小车结构,转弯半径大,一般尺寸较大,不适合狭小空间使用,需要架设专用的网络中转站,保证机器人和后台之间的通信。以“小智”为代表的室内安保巡逻机器人,外形亲和可爱,具有自主巡逻、自主充电、主动避障、语音交互、视频通话等功能,适用于警务大厅、广场、商场、候车大厅等公共场所,可以协助维持秩序,提供公安业务问询、远程报警等便民服务。图1.1巡逻机器人1.2巡逻机器人的优势警用安保巡逻机器人可实现全方位、无死角视频监控,具有采集多维信息、全天无休工作、适应复杂环境等优点,不但具有传统监控系统和人力巡逻的优点,而且还克服了两种安保方案的不足,警用安保巡逻机器人不仅减轻了警员负担,还提高了警察战斗力。巡逻机器人具备红外感知和夜视功能,所以可以全天无休的工作,这使得其在解放警力的同时,方便人民的生活,提高人民的安全感和幸福感。同室内安保巡逻机器人一样,室外安保巡逻机器人发展也十分迅速。室外安保巡逻机器人功能更加丰富,应用场景更加多样。除自主巡逻的基础功能外,还具备环境监测、移动广播、火灾隐患排查、异常音量采集、人脸抓拍等功能,可实现大范围的智能安防。尤其在重要场所、重大活动的安保工作中,可以实现对重点人员的决速甄别与定位,不但解放了警力,还极大地提高了安防效率。警用安保巡逻机器人在协助民警执勤、智能安防、便民服务等方面作用突出。区别于普通移动机器人,除具备自主导航的功能外,还可以进行人脸抓拍、身份识别、语音交互,主要应用包括协助执勤、自主安防、提供便民服务,不仅减轻了警员工作压力,还提高了警察队伍战斗力。1.3巡逻机器人功能巡逻机器人在巡逻过程中可通过自身所装传感器对周围的环境进行行人检测和障碍物检测并主动规避障碍物,除此之外还具备自主巡逻、自主导航、环境监测、火灾隐患排查、异常音量采集、红外感知和夜视等功能。1.4巡逻机器人关键技术●自主导航自主导航是巡逻机器人的关键技术之一,也是警用安保巡逻机器人自主巡逻的基础,目前常用的导航方式有激光导航和视觉导航两种。对于不同的应用环境,两种导航方式都存在不同程度的局限性。视觉导航相对于激光导航来说,对环境的依赖性较大,要求外界环境的变化不可以太大.尤其对光线条件要求比较高。视觉导航更适合于光线条件好的应用场景。激光导航对环境的适应性比视觉导航强,较小的环境变化并不影响导航效果。激光导航分为2D激光导航和3D激光导航,两种导航方式的主要区别是激光雷达的扫描维度不同。2D激光导航简单快速,导航精度和稳定性相对较差,成本较低。3D激光导航精度较高,成本也比较高,但是实时性相对较低。激光导航在外部环境发生较大变化时导航效果会受影响。比如在人群密集区、空旷地带等特殊情况,自主导航能力会受很大影响。复杂环境下自主导航性能还不够稳定是警用安保巡逻机器人目前存在较突出的问题。由于巡逻机器人的工作环境较为复杂,所以导航稳定性是首要解决的问题。●远距离安全无线通信的流畅性警用安保巡逻机器人的工作全部由服务平台进行指挥控制。服务平台对机器人采集的信息进行实时分析、判断。在执行特殊任务时,有时需要人工参与,技术人员通过遥控终端对机器人进行控制,这对通信的实时性、安全性、稳定性有较高要求。机器人信息传输要求高速、安全,视频传输要求高清无卡顿。安保巡逻机器人作为一种智能移动设备,线控的方式很大程度降低了机器人的灵活性和巡逻半径,这就要求机器人与机器人之间、机器人与后台之间实现无线通信。现有的主要无线通信方式是WIFI和4G网络。WIFI通信需要在机器人工作范围内架设基站,但是各基站间切换配置复杂,而且存在安全隐患。4G网络不用自己架设基站,但运营商会对网络服务收费,尤其在进行高清视频传输时,流量耗费巨大,成本代价高。因此,现有的通信方式还无法满足高速、安全、远距离的无线通信。即将普及的5G网络可以有效地改善这一问题。●密集人群中自主识别追踪的智能性警用安保巡逻机器人的一个重要功能就是对流动人群进行甄别排查。实现这一功能的前提是对人员的自主识别与追踪。自主识别指的是安保巡逻机器人可以智能识别人或者物的行为和特征,现在人脸识别和车牌识别技术较为成熟,然而,巡逻的目的是预判和发现异常情况,例如,人群聚集、恐慌、抢劫、斗殴、放火、攀爬、跌倒和追逐等情况。这些异常情况常发生在一些复杂的环境中,存在大量人物、建筑、树木、车辆、道路等复杂背景,这使得巡逻机器人对目标检测受到较大干扰。同时,摄像机随着机器人的移动导致目标场景中背景发生变化,增加目标检测难度。自主追踪是指机器人在识别出可疑目标后,能对目标进行主动追踪。现有的追踪方法对于运动有规律的目标能够实现有效追踪,但是对于运动无规律、形变量大的目标追踪效果很差。现实应用中,目标物的运动大都不规律,且存在遮挡和光线变化等问题,因此,自主追踪的效果现阶段还无法满足实际需求。第二章巡逻机器人材料准备2.1电源选择2.1.1电池选择移动机器人自身装载电源,甩掉牵引电缆,这不仅提高了机器人的性能,还很大程度上改进了移动性能。因此,一般采用电池作为移动机器人的电源。电池分为一次性电池和蓄电池。一次性电池虽然价格低廉,但随着放电时间的加长,电压呈S形曲线下降,放电初期和后期,电流下降的斜率很大,且电流越大下降越快。总的来说,一次性电池无法提供过大的输出电流,对电机的速度和电压的限制非常大,且放电一段时间后电压和电流下降,可能发生CPU清除复位,机器人速度下降等情况。蓄电池可反复充电,反复使用,且蓄电池随着使用时间的加长,电压下降幅度很小,基本不会影响CPU工作。综合比较,蓄电池有着一次性电池不可比拟的优势,因此选择蓄电池作为巡逻机器人电源。2.1.2充电器/放电器以镍镉电池的充放电为例。镍镉电池充电器本身附带放电器,应当先放电再充电以克服电池的“记忆”问题。单节电池的电压低于1.0V就可视为达到完全放电而排除了“记忆”的影响。镍镉电池一般用0.1C的电流,充电16h,充入160%的电量(即完全充电),才可以输出电池100%的容量。充电方式有以下几种。1标准稳定电流充电方式这是镍镉电池的标准充电方式。在直流电源与电池之间接入电阻,得到0.1C的稳定充电电流。此时电池不发热,也不需控制电流的大小,经1516h即可完成充电过程。充电器结构简单,价格便宜。2定时充电方式按照时间的进程充电。开始以0.2C大小的电流充电,由IC计时器控制直至相当于120%电量的时间,然后切换成0.05C的小电流充电。整个过程约需爱6-8h。这种充电器结构比较简单,成本低康。3-ΔV控制充电方式这是最常用的快速充电方式。以0.5-1C大小的恒定电流充电,电池电压将随充电进程升高并在结束期(约120%电量)达到峰值,其后电池电压反呈下降趋势。这个峰值特性不受放电量、环境温度等因素影响。-ΔV控制充电方式就是基于这一现象,若检测发现出现-ΔV,即表明电池电压已经越过峰值下降,充电过程可以结束。这一方法是实现充电过程控制、判断充电结束的有效手段。-ΔV控制充电方式所需的充电时间一般为1-2h,充电电流的大小请勿超过1C。否则电池内部可能产生大量气体,增高电池内部的压力,造成电池破裂,碱液外泄等危险状况。另一个注意事项是选用的充电器应与电池配套。通过三种充电方式进行比较,选择第三种充电方式可以很大程度的减少充电时间,因此选择第三种充电方式。2.1.3CPU电源选择机器人一般需要准备两种电源。一种供给数字IC、单片机、传感器工作,通常为+5V,约数十至数百mA。另一种为电机(如DC电机)驱动电源,根据电机不同,电压为3至24V,电流在数百mA至数A之间。两类电源虽然可以分别供电,但是并不经济,且可能存在安装空间上的困难。用一组电池时,5V电源可经三端子稳压器件变换后获得。图2.1中输入电压为14.4V,电源芯µPC24M12HF和µPC24A05HF分别从电池处取得12V和5V两路电压输出。其中,5V电压的供电最好选用µPC24A05HF,而非TA78005AP。区别在于前者最小输人电压是6V,后者是7V。当电机启动或电机大电流导致内阻压降增加而使驱动电源本身电压下降时,前者受输入电压回落的影响比较小,有利于避免逻辑电路因为电压降过大而出现误动作。µPC24M12HF和µPC24A05HF的输出电流为2A。1010µF1µF2µPC24M12HFµPC24A05HF1312V5V1231µF10µF电池组14.4V图2.1三端子稳压器件原理2.2传动方案选择传动方案选择由舵机驱动轮子实现巡逻机器人的移动。2.2.1舵机结构及工作原理舵机是为轮船、飞机等的舵面提供动力与运动的机器。在制作巡逻机器人时,通常不必自己去开发它,可以直接从小型航空、航海、飞机模型制造商处购得现成的舵机。图2.2为舵机的基本结构,主要包括直流电机、减速齿轮、位置反喷电位器和控制电路板。控制电路板接收到来自信号线的控制信号后,控制电机转动,电机带动内轮组,经减速后传动至输出轴。舵机的输出轴与位置反馈电位器相连,输出轴转动时,电位器输出一个电压信号至控制电路板,进行位置反馈,然后控制电路板根据机器人所在位置决定电机的转动方向和速度,达到目标位置时停止。舵机的输人线共有三根:一根电源线,一根地线,另外一根线是控制信号线。电源线和地线给舵机提供电源,电源线接收来自控制器的PWM信号。航机的PWM信号周期为20ms,脉冲宽度为0.5-2.5ms,其中舵机转角的大小与脉宽的对应关系如图2.3所示。图2.2舵机的基本结构时间t时间t角度θ0°90°180°0.5ms1.5ms2.5ms图2.3舵机转角的大小与脉宽的对应关系2.2.2舵机的驱动电路这里介绍一种用于驱动舵机的功率驱动模块。该模块使用大功率MOS管作为功率器件。按线如图2.4所示。该驱动板是为通过PWM方式进行直流电机调速而设计的,适用于小型直流电机,最大输人电压12V,最大输出电流6A。CTRL是前级控制信号输人端口,该端口上两条线的相对电平决定了输出端OUT上输出电压的正负。驱动板的核心是由四个大功率场效应管(IRF530、IRF9530)构成的桥式电路。前级由光电耦合器TLP521-4配合下拉电阻R₃、R₄、R₅、R₆驱动。光电耦合器左端四路分两组分别经限流电阻R₁、R₂与CTRL的两端相连。使同一桥臂上两个场效应管的通道分开,避免同一桥臂同时导通。6AL04是大功率二极(100V,6A),作用是降低IRF530的漏极电位,使其能够正常导通。IN是电源输人,输人电压范围为5-12V。OUT接点机。功率驱动模块在12V下正常工作,但是使用中发现在24V电源电压下不能正常工作。原因是IRF530和IRF0530的UGS必须小于20V。此时需要进行改装,利用LM2575T-5产生5V电压对MOS管进行控制。改装后增加了驱动板的适用范围,甚至在30V以下也可工作。图2.4功率驱动模块2.2.3舵机的控制电路舵机的控制由舵机伺服模块实现。伺服模块把接收机发来的信号与电位器上的信号进行比较,在直流电机的输出端输出一个PWM信号。舵机功率较小时,可以从伺服模块将此输出引出来直接驱动直流电机;当功率较大时,就需要对驱动模块的输出进行功率放大。2.3传感器选择2.3.1开关巡逻机器人中常用的开关有按钮开关、数字开关和接触开关几种,接触开关在机器调试阶段可以方便地提供人工输人。数字开关一股用于CPU的输人选择,如速度等级、行走模式、格斗策略等,通常是8个为一组,接触开关则用来检测是否触碰,检测的对象有对方机器人、场地界线和场地上的道具等,一般用微动开关即可。2.3.2巡线传感器巡线是指在带白色或黑色引导条带的深色场地(或相反)环境下,沿引导条带指示的路径实现跟踪运动的过程。其基本原理是采用光电传感器,通过反射信号的有无来控制移动载体的运动。在模拟巡逻场地粘贴白色或黑色的引导条带(宽20-50mm),与场地的底色(绿色、浅绿色、黑色、棕色等)形成反差,以便将场地划分成若干区域,易于识别,引导机器人行进。巡线光电传感器就是基于对场地及线路反时光的处理结果来识别路线的一类光电传感器。根据巡线采用的光电传感器原理不同,可分为红外光电反射式传感器和辩色传感器两种类型。1.红外光电反射式传感器这种传感器通过反射光强度巡线。由一个发射光源和一个接收器(光敏二极管)组成。基于线条颜色与场地底色反射光强的差异,导致输出电压不同,从而识别线条。2.辩色传感器在条带与场地底色的反射性能区别不明显时,根据反射光强识别线路的效果并不是很好,这时可以通过颜色识别来巡线。巡逻机器人对巡线传感器的要求大致如下。(1)抗干扰性好:模拟巡逻场地可能存在各种形式的强光干扰、电磁干扰,颜色干扰,必须有较好的抗干扰能力。(2)可调性:辩色传感器须留有调节各种参数的环节,这可使得传感器工作在最佳状态。(3)稳定性和快速性好:传感器一旦移动到引导条带边缘,应当及时、快速、稳定地触发,不应有状态的抖动,否则会导致机器人的摇晃。(4)成本低廉:对于巡逻机器人,价格是一个重要的因素。2.3.2.1红外光电反射式传感器1.原理红外线的波长为0.76-1000µm。一般红外光电反射式传感器都选择工作在0.76-25µm段内。大多数发光器件为880nm、930nm两个系列。880nm易受到外界光的干扰。红外发光管的材料一般为砷化钾半导体。发光波长范围0.75-1.5µm。小功率(小于100mW)的管压降为1.0-1.3V,平均工作电流为20-50mA。红外发光管有指向角、光轴、波长、辉度等性能指标。常用的光敏器件是光电二极管和光电三极管,均为红外线接收管。它们在接收到光的变化之后转变成电流的变化,再经信号放大及相关处理,用于各种控制目的。光电二极管是常用的光-电转换器件,当光照到PN结上时,它能接收光能并将之转换为电能。它有两种工作状态:(1)加反向电压时,光照强度越大,二极管中的电流反向电流越大。(2)不加电压时,PN结在光照作用下,产生正向电压,可充当微型光电池。在无光照情况下,光电二极管的正向电阻约为l0kΩ,反向电阻为∞;有光照时,反向电阻随光照强度的增加而减小,阻值可达几kΩ以下。无反压时,正向电压与光照强度成比例,一般可达0.2-0.4V。光电三极管也是由光的照射量来控制电流的器件,可等效为一个光电二极管与一只晶体三极管的结合,具有放大作用。2.基于反射光强度测量的红外光电反射式传感器电路大多数光电传感器电路都是基于反射光强度测量原理工作的。具体的应用场合有距离、平面倾斜度、反射率和透射率参数的测量等。图2.5给出了一种简单的巡线光电传感器电路。光电二极管工作在反压下,在无反射光照射或光照较弱时,电阻为∞,此时三极管工作在放大区,输出电压很小;当在反射光照射使电阻下降到几kΩ时,三极管输出电压接近于5V。调节电阻R₂可以得到更好的效果。市面上所出售的光电传感器的电路基本与此相同,由于其简单、容易购得,因此在简单机器人中应用广泛。图2.6是另外一种使用光电三极管的简单光电传感器电路,它采用带运算放大器的放大电路,稳定性、线性度及增益误差等均比晶体管放大电路好。图2.7给出了一种使用运算放大器的放大电路,在光电二极管下方连接了一个接地的电阻,有利于清除暗电流的影响,但是采用电容耦合,不可对直流成分放大。RR₃10kΩR₂100kΩR₁10kΩD₂LEDD₁PHOTOT₁OUT+5V图2.5简单光电传感器电路(一)D1D1LEDR₂1kΩ+5V+5VQ₁NPN₋PHOTOU1OUTNOTR₁100kΩ图2.6简单光电传感器电路(二)VccVccOPAMPRbRLRfv。CPHOTORb=Rf图2.7运算放大器电路3.调制型光电传感器电路光电传感器抗外界干扰的能力强弱保证机器人能否正常可靠地工作,为此可附加调制电路来抑制传感器中暗电流(无照电流)的变化。使用调制型的反射式光电传感器时,使得光电传感器抗干扰的能力变强。图2.8给出了一种比较实用的调制型光电传感器的电路。(1)电路的基本原理:发射部分采用一块四与非门集成电路CD1011,构成一个振荡频率可微调的多谐振荡器(RP1),并对脉冲进行整形放大,然后接到三极管9013上驱动红外发射管。接收部分由红外接收管VDZ和运放LM393、LM567组成。VDZ接收红外控制信号并进行光电转换后,由C₂耦合到运放LM393作电压放大。运放输出的信号由C₃耦合至LM567进行音频译码(选频)。RP3及C₆决定LM567的谐振频率。当LM567的引脚3输入与其自身的振荡频率相同的信号时,引脚8输出低电平,否则输出高电平。LM393的另一个运放用来构成施密特比较器,将LM567的引脚8的信号接入比较器比较后输出。图2.8一种调制型光电传感器(2)元件选用及调试:红外发射管接收管型号不限(如PGK125型光电发射接收管)但是性能(波长范围等)等应该一致。电路安装好以后使传感器对着白纸,调节RP1或RP3,使输出为高即可。RP1用来调整传思器的功率,调节RP3可以改变工作频率。(3)传感器的特点如下。∙抗干扰性好:由于通过脉冲发光,仅仅读出光的变化部分,所以不受外部光干扰。此外,LM567为锁相解调器,灵敏度高,抗干扰性强,只对捕捉带内的有用信号发生响应,对于捕捉带外的信号,即使其强度再大也不会响应。所以,它具有很好的抗外部干扰性能,甚至可以在阳光下正常工作。再次是抗电磁干扰性能好,不受电机工作影响,如果加电磁屏蔽可以更放心地使用。∙可调性好:利用调整环节可以方便地调节功率及工作频率,适应不同的场地环境和不同的工作要求。∙稳定快速性好:施密特比较器具有回差滞后特性,即使处在线条的边缘,传感器信号也不抖动,再利用加速电容C₇,可使状态转换加快。∙价格便宜:该传感器的平均成本为十几元人民币。2.3.2.2辨色传感器辨色传感器由三个光电二极管和三种颜色的滤光器组成。三个光电二极管上分别装有红(R)、绿(G)、蓝(B)滤色器,将来自物体的反射光分解为三种颜色。色信号经过放大电路处理,根据不同组合进行逻辑处理后得到实际的颜色输出。图2.9和图2.10分别为色信号放大电路和一个辨色电路实例。更为精确的颜色识别方法是三基色测量方法。其原理是根据三基色的波长特性(波长、峰值、位置各不相同),借助峰值波长滤色器和硅光电二极管(光谱灵敏度覆盖整个可见光域),将输出经过多级放大井进行A/D转换得到最终结果。在辩色传感器的实际使用中,最重要的问题是照明电源和聚光系统,且辩色元件的面积应尽可小,以便有效地在物体上形成照明点。用白炽灯作光源最为方便。至于聚光系统,则必须注意聚光镜的焦距以及照明点的直径。图2.9色信号放大电路2.10辨色电路2.3.3超声波传感器1.原理声波是在空气、水或固体中传播的机械振动。人耳能听到频率范围在20Hz-4okHz的声波,称之为可听声波。超声波指人不能听到的高频声波。超声波传感器由发射器件和接收器件组成,基本所有的超声波传感器的发射器件和接收器件都是基于压电效应制成的。发射器件将外加电场施于压电晶片产生压电逆效应,而接收器件是在晶片上施加外力产生变形时,在晶片的两极产生与应变量相应的电荷(压电正效应)。若应变的方向相反则产生电荷的极性也相反。利用超声波可以实现对远处物体的非接触式探测。机器人超声探测是借助超声波反射测量空间物体的距离和位置。超声波距离传感器的检测方式有脉冲回波式和FM-CW(频率调制-连续波式)两种。脉冲回波式的检测原理如图2.11所示。将调制后的超声波脉冲发射出去,若能检测到被测物体反射回来的超声波回波延迟时间,便可计算出被测物体的距离。超声波换能器超声波换能器R功率放大器前置放大器振荡器检波电路时间差检测电路发射脉冲产生电路距离信息被测对象时间/s2时间/s21.510.5Δt幅值发射波接收波检波输出图2.11脉冲回收式传感器的检测R=ν*Δt/2(式2.1)式中,R表示距离,单位为m;ν为超声波在介质中传播的速度,如果空气湿度为T(℃),则声速ν=(331.5+0.607T)m/s,常温20℃下大气中的声速ν=340m/s;Δt表示渡越时间,单位为s。FM-CW方式采用连续波对超声信号进行调制。该方式的电路比较复杂,在实际中应用不多。超声波发射、接收器件的材料一般采用压电陶瓷,图2.12介绍了日本陶瓷公司的产品T40-16(发射)和R40-16(接收),电路如图2.13所示,其性能规格分别列于表2.1和表2.2.发射器件由40kHz的发射电路、ON-OFF控制器和驱动器组成。接收器件由放大器、比较器和积分电路组成。可调电阻R₃用来调节发振频率,与接收端的共振点匹配。R₅调节比较电压,以改变灵敏度。1.21.210.012.29.213.016.2图2.12T40-16及R40-16的外形1010µF1µF2µPC24M12HFµPC24A05HF1312V5V1231µF10µF电池组14.4V图2.13超声波传感器电路表2.1超声波发射器件性能规格项目T40-16T40-18AT40-24A中心谐振频率/kHz40±140±140±1升压(中心频率处)(0dB=0.002µbar)115dBMin115dBMin带宽/(kHz/10²dB)6.0Min(103dB)6.0Min(103dB)6.0Min(103dB)静电容量/pF2400(1±25%)2400(1±25%)2400(1±25%)超声波距离传感器的测量范围宽分辨率低,不受被测物体的透明度、颜色、电导率的影响,但不适合测量海绵或棉织物等吸音材料。他的响应速度在毫秒级,属于高速型传感器。表2.2超声波接收器件性能规格项目T40-16T40-18AT40-24A中心谐振频率/kHz40±140±140±1灵敏度(中心频率处)/(dB·µbar)-64Min.-64Min.-64Min.带宽/(kHz/10²dB)6.0Min(-71dB)6.0Min(-71dB)6.0Min(-71dB)静电容量/pF2400(1±25%)2400(1±25%)2400(1±25%)2.超声波传感器的应用超声波距离传感器在移动机器人研究中被广泛使用。特别是在移动机器人需要进行环境探测和导航避障时,常常使用超声波距离传感器作为信息来源。单个超声波距离传感器在环境识别中的缺点是不易辨别物体的方位信息。在实际应用中,常常将多个传感器配置在空间呈环状、排状或层状分布,以获得较准确的障碍物的立体信息,分辨是墙、柱还是墙角。超声波传感器的应用注意事项如下。(1)测距精度。如以ms为单位来测量声波的往返时间,则测距的分辨率为Δ=1但是这并不代表测量的绝对精度。决定绝对精度的因素有温度、气压、风等,以温度的影响最大。综合各种因素,声速的变动范围最大可达5%左右。此外还有超声波的反射波性和反射强度。总之,超声波传感器的绝对精度随远近不同,大约为mm至cm的量级。(2)最大测距范围。超声波在空气中的衰减与频率的平方成反比。所以频率高的超声波传不远。最大测距范围与发射波强度、被测物体大小尺度、对超声波的反射率、接收器的灵敏度及噪声水平有关,一般在10m以内。(3)方位分辨率。超声波经换能器发射后有指向特性。频率越高,波束的指向越集中。一般能以波束幅宽的精度测出物体在各方位上的取向和形状。(4)被测物体对超声波的反射特性。只要不是所谓的吸音体,就有反射波。问题在于反射的方向与材料表面的凹凸程度。仅有垂直入射波才能正对入射方向反射。因此,声呐图往往“失真”,需要修复后方能利用。(5)测距所需的时间。将一周扫描分成256个方向进行,设待测物体的距离为5m,总共需要75s的时间。因此可知,与图像输入方式比较,超声波传感器获取数据的时间长,而处理数据的时间较短。有人将超声波传感器与视觉传感器进行信息融合,以获取更多的环境信息。图2.14为HC-SR04超声波,其主要技术参数见表2.3。图2.14HC-SR04超声波使用电压DC5V静态电流小于2mA电平输出高5V|低0V感应角度不大于15度探测距离2cm-450cm高精度可达0.3cm表2.3HC-SR04超声波参数2.4Arduino竞赛板Arduino竞赛板是本次巡逻机器人设计的控制中心,竞赛扩展板提供了Arduinomega2560的PWM接口、模拟量接口、数字量接口、和8路5V、GND接口,方便用户扩展功能。以及提供了超声波传感器接口和五路巡线接口、多功能接口、步进电机驱动。还提供了红外要开、蜂鸣器和RGB多彩灯用于各种情况的警报和提示。以及一个按键,方便加入多种控制切换和程序开始等。还有4个Ukit舵机接口。与Arduinomega2560配合使用,可以控制Ukit的舵机实现轮模式和舵机模式、板载提供蜂鸣器、RGB多彩灯、按钮和各种丰富的扩展接口。其形状与接口类型分别如下图2.15和图2.16:图2.15竞赛扩展板&ArduinoMega2560图2.16竞赛板接口分布竞赛板接口与Arduino连接情况如下图2.17:图2.17竞赛板接口情况2.5其它材料优必选进阶级﹑中级教具包各小零件若干。2.5巡逻小车模型第三章巡逻机器人功能设计3.1巡逻开发Arduino2560竞赛板,需要下载ArduinoIDE。ArduinoIDE是Arduino的默认开发环境,其简单明了,包含了开发Arduino所需的核心功能。你可以通过Arduino官方网站下载ArduinoIDE。本次设计软件版本为arduino-1.8.1。3.1.1巡逻机器人舵机与arduino通讯代码#include"Arduino.h"#include"UkitMotor.h"//>舵机与arduino通讯函数无需理解<//UkitMotor::UkitMotor(){route_node=1;start=1;pinMode(redPin,OUTPUT);pinMode(greenPin,OUTPUT);pinMode(bluePin,OUTPUT);digitalWrite(redPin,HIGH);digitalWrite(greenPin,HIGH);digitalWrite(bluePin,HIGH);pinMode(23,INPUT);//左1的循迹传感器pinMode(25,INPUT);//左2的循迹传感器pinMode(27,INPUT);//中间的循迹传感器pinMode(29,INPUT);//右2的循迹传感器pinMode(31,INPUT);//右1的循迹传感器}unsignedcharUkitMotor::Cheak_Sum(unsignedcharlen,unsignedchar*buf){unsignedchari,sum=0;if(len>254)return0;for(i=0;i<len;i++){sum+=buf[i];}return(uint8_t)(sum);}unsignedlongUkitMotor::Servo_Tx(unsignedcharHead,unsignedcharServoNO,unsignedcharlen,unsignedcharCMD,unsignedchar*Data){unsignedlongtRet=0;unsignedchartCnt=0;unsignedlongtemp=2;//2ms发完unsignedcharbuf[40];unsignedcharlength=9;//9+1unsignedcharUsart3_Rx_Ack_Len=0;memset((void*)Usart3_Rx_Buf,0,sizeof(Usart3_Rx_Buf));memset((void*)buf,0,sizeof(buf));Usart3_Rx_Ack_Len=10;//应答消息长度buf[0]=Head;//填充协议头buf[1]=swab8(Head);if(Head>=0xFA){buf[2]=ServoNO;//舵机好}elseif(Head>0x00)//变长协议{length=len+5;//长度buf[2]=length;}buf[3]=CMD;memcpy((void*)&buf[4],(void*)Data,len);buf[length-1]=Cheak_Sum((length-3),(u8*)&buf[2]);buf[length]=0xED;if(Head==0xFA){if(CMD==1){if(ServoNO==0){memset((void*)&gsSave_Angle,Data[0],sizeof(gsSave_Angle));//保存所有角度}else{if(Data[0]==gsSave_Angle.Angle[ServoNO-1])return0;//不发送,直接返回else{gsSave_Angle.Angle[ServoNO-1]=Data[0];//保存单个角度,以后可能双字节角度}}Usart3_Rx_Ack_Len=1;//1,4命令只应答一个字节}elseif(CMD==4)Usart3_Rx_Ack_Len=1;//1,4命令只应答一个字节}Retry_Servo:temp=(Usart3_Rx_Ack_Len+5);//接收消息长度,用于计算接收时间,1个字节0.087ms,预留5个空闲,10%误差Serial3.begin(115200);//uart3Serial3.setTimeout(temp*87*110/100/400);//设置超时msSerial2.begin(115200);//设置波特率Serial2.write(buf,length+1);//发送消息Serial2.end();//关闭串口2,否则会影响接收消息tRet=Serial3.readBytes(Usart3_Rx_Buf,Usart3_Rx_Ack_Len+10);//接收应答Serial3.end();//关闭串口3,否则会影响接收消息if(tRet>RXD_OFFSET)//打印返回消息{//Serial.write(Usart3_Rx_Buf+RXD_OFFSET,tRet-RXD_OFFSET);//Serial.print("\r\n");}if(tRet==0)//没有接收到消息{if(tCnt<2){tCnt++;//重试gotoRetry_Servo;}}else//接收到消息{Usart3_Rx_Buf_count=tRet;tRet=0;if(Head==0xFA){if((CMD==1)||(CMD==4)){if((Usart3_Rx_Buf[RXD_OFFSET+1]==0xAA+ServoNO)){tRet=ServoNO;}}elseif(CMD==2){if((Usart3_Rx_Buf[RXD_OFFSET+3]==0xAA)&&(Usart3_Rx_Buf[RXD_OFFSET+2]==ServoNO)){tRet=Usart3_Rx_Buf[10+6]<<8;tRet|=Usart3_Rx_Buf[10+7]<<0;}}elseif(CMD==0xCD){if((Usart3_Rx_Buf[RXD_OFFSET+5]==ServoNO)){tRet=Usart3_Rx_Buf[RXD_OFFSET+5];}}elseif(CMD==0xD2){if((Usart3_Rx_Buf[RXD_OFFSET+3]==0xAA)&&(Usart3_Rx_Buf[RXD_OFFSET+2]==ServoNO)){tRet=1;}}elseif(CMD==0xD4){if((Usart3_Rx_Buf[RXD_OFFSET+3]==0xAA)&&(Usart3_Rx_Buf[RXD_OFFSET+2]==ServoNO)){tRet=Usart3_Rx_Buf[RXD_OFFSET+6]<<8;tRet|=Usart3_Rx_Buf[RXD_OFFSET+7]<<0;}}}elseif(Head==0xFC){if(CMD==1){if((Usart3_Rx_Buf[RXD_OFFSET+3]==0xAA)&&(Usart3_Rx_Buf[RXD_OFFSET+2]==ServoNO)){tRet=Usart3_Rx_Buf[RXD_OFFSET+6]<<8;tRet|=Usart3_Rx_Buf[RXD_OFFSET+7]<<0;}}}elseif((Head<0xFA)&&(Head>0x00)&&(Usart3_Rx_Buf[length+4]==CMD)){if(CMD==0x02){tRet=Usart3_Rx_Buf[length+5]-0xAA;}elseif(CMD==0x04){if(Usart3_Rx_Buf[length+3]==7)tRet=((Usart3_Rx_Buf[length+5]-0xAA)<<8)+Usart3_Rx_Buf[length+6];elseif(Usart3_Rx_Buf[length+3]==8)tRet=(Usart3_Rx_Buf[length+6]<<8)+Usart3_Rx_Buf[length+7];}}}returntRet;}unsignedcharUkitMotor::Get_Servo_list(unsignedcharServo_NO)//检查舵机存在不?正不正常{return(Read_bit(gServo_list[Servo_NO/8],Servo_NO%8));}voidUkitMotor::Set_Servo_list(unsignedcharServo_NO){Set_bit(gServo_list[Servo_NO/8],Servo_NO%8);}voidUkitMotor::Clr_Servo_list(unsignedcharServo_NO){Clr_bit(gServo_list[Servo_NO/8],Servo_NO%8);}voidUkitMotor::check_servo(){//花两秒时间unsignedchartID=1;unsignedchartData[4]={0,0,0,0};memset((void*)gServo_list,0,sizeof(gServo_list));gServos=0;Servo_Tx(0xFC,tID,4,0x01,tData);//预先测试一下for(tID=1;tID<SERVO_NUMER_MAX+1;tID++){if(Servo_Tx(0xFC,tID,4,0x01,tData)!=0){Set_Servo_list(tID-1);//设置舵机列表,后面多舵机使用gServos++;}else{Clr_Servo_list(tID-1);}}Serial.print("\tTotalServo:");Serial.print(gServos,DEC);Serial.print("\r\n");}//>以上舵机与arduino通讯函数无需理解//>最主要的函数<//voidUkitMotor::motor(charID,intdir,intspeed){unsignedcharaa[4]={0xFE,0,0,speed};unsignedcharbb[4]={0xFD,0,0,speed};if(dir==0)Servo_Tx(0xFA,ID,4,0x01,aa);elseServo_Tx(0xFA,ID,4,0x01,bb);}voidUkitMotor::servo(charID,intangle,inttime){unsignedchartData[4];tData[0]=angle+120;tData[1]=(time/20);tData[2]=0;tData[3]=0;Servo_Tx(0xFA,ID,4,0x01,tData);}voidUkitMotor::forward(intspeed){motor(lmotor,0,speed);motor(rmotor,1,speed);motor(lfmotor,0,speed);motor(rfmotor,1,speed);}voidUkitMotor::turnL(intspeed){motor(lmotor,1,speed);motor(rmotor,1,speed);motor(lfmotor,1,speed);motor(rfmotor,1,speed);}voidUkitMotor::turnR(intspeed){motor(rmotor,0,speed);motor(lmotor,0,speed);motor(rfmotor,0,speed);motor(lfmotor,0,speed);}voidUkitMotor::back(intspeed){motor(lmotor,1,speed);motor(rmotor,0,speed);motor(lfmotor,1,speed);motor(rfmotor,0,speed);}voidUkitMotor::stop(){unsignedcharaa[5]={0xFF,0,1,0,0};Servo_Tx(0xFA,lmotor,4,0x01,aa);Servo_Tx(0xFA,rmotor,4,0x01,aa);Servo_Tx(0xFA,lfmotor,4,0x01,aa);Servo_Tx(0xFA,rfmotor,4,0x01,aa);}voidUkitMotor::findline(intspeed){num1=digitalRead(31);num2=digitalRead(29);num3=digitalRead(27);num4=digitalRead(25);num5=digitalRead(23);if((num2==0)&&num3&&num4){turnL(speed);delay(60);while(1){num3=digitalRead(27);if(num3==1){turnL(speed);delay(150);}else{stop();break;}}}elseif(num3&&num2&&(num4==0)){turnR(speed);delay(60);while(1){num3=digitalRead(27);if(num3==1){turnR(speed);delay(150);}else{stop();break;}}}else{forward(speed);delay(2);}}voidUkitMotor::Tandtenfindline(intspeed){while(start==1){read_data();if(num1==0||num5==0){one_step(50);read_data();if(num1==0&&num5==0){one_step(50);read_data();if(num1==0&&num3==0&&num5==0){route[route_node]=3;//cross(speed);}elseif(num1==0&&num3==1&&num5==0){route[route_node]=2;//cross(speed);}}elseif(num1==0&&num3==0&&num2==0&&num5==1){route[route_node]=3;cross(speed);}elseif(num1==0&&num3==1&&num5==1){turn_L(speed);do{turnL(speed);read_data();}while(num3==1);}elseif(num1==1&&num3==0&&num4==0&&num5==0){route[route_node]=3;cross(speed);}elseif(num1==1&&num5==0&&num3==1){//┏型路口//////do{turnR(speed);read_data();}while(num3==1);}}//elseif(num1==1&&num2==1&&num3==1&&num4==1&&num5==1){//死胡同┃/////////turn_U(speed);//}else{straight(speed);}}}voidUkitMotor::cross(intspeed){switch(route[route_node]){case1:turn_L(speed);break;case2://岔路口右转turn_R(speed);break;case3://直行穿过岔路口do{forward(speed);delay(80);read_data();}while(num1==0||num5==0);break;case4:stop();for(inta=0;a<10;a++){colorRGB(random(0,255),random(0,255),random(0,255));delay(200);}digitalWrite(redPin,HIGH);digitalWrite(greenPin,HIGH);digitalWrite(bluePin,HIGH);break;case5:turn_U(speed);break;case6:start=0;stop();break;}route_node=route_node+1;}voidUkitMotor::turn_L(intspeed){//90forward(speed);delay(500);turnL(speed);delay(600);do{turnL(speed);delay(140);read_data();}while(num3==0||num4==0);stop();}voidUkitMotor::turn_R(intspeed){forward(speed);delay(500);turnR(speed);delay(650);do{turnR(speed);delay(140);read_data();}while(num3==0||num2==0);stop();}voidUkitMotor::read_data(){num1=digitalRead(31);num2=digitalRead(29);num3=digitalRead(27);num4=digitalRead(25);num5=digitalRead(23);}voidUkitMotor::turn_U(intspeed){one_step(700);do{turnL(speed);read_data();}while(num3==1);stop();}voidUkitMotor::straight(intspeed){read_data();if(num3==0&&num2==0&&num4==1){turnL(speed);delay(20);}elseif(num3==0&&num4==0&&num2==1){turnR(speed);delay(20);}elseif(num2==0&&num4==1){turnL(speed);delay(80);}elseif(num3==0&&num2==1&&num4==1){forward(speed);}elseif(num4==0&&num2==1){turnR(speed);delay(80);}else{forward(speed);delay(50);}}voidUkitMotor::one_step(inttime){forward(765);delay(time);stop();}voidUkitMotor::colorRGB(intred,intgreen,intblue){analogWrite(redPin,constrain(red,0,255));analogWrite(greenPin,constrain(green,0,255));analogWrite(bluePin,constrain(blue,0,255));}//>最主要的函数<//3.1.2机器人巡逻程序巡逻方式采用灰度传感器,并在模拟巡逻场地布置黑色22mm宽度的巡逻线条。在巡逻过程中遇到火灾报警模拟由于没有温度传感器,所以采用自定义按键触发。主要程序如下:#include"UkitMotor.h"UkitMotormotor;intL_M=1,R_M=2;intsp=510;intpinBuzzer=43;intanjian=41;voidsetup(){//putyoursetupcodehere,torunonce:motor.check_servo();delay(100);pinMode(23,INPUT);pinMode(25,INPUT);pinMode(27,INPUT);pinMode(29,INPUT);pinMode(31,INPUT);pinMode(pinBuzzer,OUTPUT);pinMode(anjian,INPUT);forward(sp);}voidloop(){//putyourmaincodehere,torunrepeatedly:intnum1=digitalRead(31);intnum2=digitalRead(29);in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污水处理厂设备采购与安装方案
- 智能化厨余垃圾分类处理系统
- 全款购房协议书样本
- 中介签网签合同范本
- 个人之间赔偿协议书
- ppr管材合同范本
- 城市供水管网漏损调查与精准修复方案
- 风电场施工质量控制方案
- 临时用车协议书范本
- 临时授课协议书范本
- 《工业园区清洁生产审核指南》
- 《IBM战略人才》课件
- 音乐版权授权与管理方案
- 《城市道路水下隧道设计规范》
- 酒店客房服务与卫生标准
- 《卖火柴的小女孩》课本剧剧本:带你感受冷暖人生(6篇)
- 材料科学与工程专业职业生涯规划
- 北京市矢量地图-可改颜色
- 天津市南开区2023-2024学年八上期中数学试题(原卷版)
- DBJ41T 262-2021 影响城市轨道交通外部作业技术标准 河南省工程建设标准(住建厅版)
- 期中试卷(试题)2024-2025学年人教版数学五年级上册
评论
0/150
提交评论