毕业设计类全套文件的下载平台

四足载物箱的设计与实现-软件设计

  • 上传者:诸葛月月
  • 文件大小:2287 (KB)
  • 文档格式:.docx

文档分类: 机械及其自动化论文

< / 36 >

还剩... 页未读,继续阅读

免费阅读已结束,点击付费阅读剩下 ...

阅读已结束,您可以下载文档离线阅读

关于本文

  • 本文标题:四足载物箱的设计与实现-软件设计.docx
  • 链接地址:https://wk.sbvv.cn/view/17816.html
  • 内容摘要:四足载物箱的设计与实现软件设计学院:专业:姓名:指导老师:工业自动化学院机械电子工程学号:职称:讲师中国&#183;珠海二○二○年四月诚信承诺书本人郑重承诺:本人承诺呈交的毕业设计《四足载物箱的设计与实现软件设计》是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。本人签名:日期:年月日四足载物箱的设计与实现软件设计摘要在当今社会上,运输机器大都是轮式或者履带式的机器,虽然它们在人类生活地区广泛应用,但是在人类生活地区内,还存在着崎岖不平或者坑坑洼洼的地形,轮式或者履带式的机器难以在如此地形上行走搬运物资,故而需要一类可适用于该地形的机器来代替这类运输机器运输物品。经过大自然的物竞天择法则,哺乳动物在各种地形上具有非常强大的适应性和机动性,而足式机器人是模仿哺乳动物的机器人,在人类生活地区中,它可以很好地进行行走和跑动,非常适合成为人类生活中另一种搬运的机器人。四足机器人在足式机器人中最具代表性,是移动机器人研究的热点,虽然它并没有广泛出现在人们眼前,但它在社会中具有非常巨大的实用性。在此次研究中,主要研究一款可成为人类生活中便捷的搬运四足机器人,此机器要求具备有一些基础功能分别是行走功能,跟踪功能,避障功能和防走失功能,使其能在复杂的地形上进行物体跟踪,实现物资运输功能。关键词:四足机器人,行走功能,跟踪功能,避障功能,防走失功能,物资运输DesignandimplementationofquadrupedloadboxsoftwaredesignAbstractIntodayssocietymostofthetraportationmachinesarewheeltypeortracktypemachines。Althoughtheyarewidelyusedinhumanlivingareastherearestillruggedorpotholedterraininhumanlivingareas。ItisdifficultforwheeltypeortracktypemachinestomovematerialsouchterrainsoakindofmachinesuitablefortheterrainisneededtoreplacethiskindofmachineTraportmachinestraportgoods。Throughthenaturallawofnaturalselectionmammalshaveaverystrongadaptabilityandmobilityinvariousterrainwhilethefootrobotisarobotthatimitatesmammals。Inthehumanlifeareaitcanwalkandrunwellanditisverysuitabletobecomeanotherkindofcarryingrobotinhumanlife。Quadrupedrobotisthemostrepresentativeofthefootrobotanditisthehotspotofmobilerobotresearch。Althoughitdoesnotwidelyappearinfrontofpeopleithasgreatpracticabilityinthesociety。Inthisstudywemainlystudyaquadrupedrobotthatcanbeusedinhumanlife。Thismachinerequiressomebasicfunctiosuchaswalkingfunctiontrackingfunctionobstacleavoidancefunctionandlosspreventionfunctionsothatitcantrackobjectsoncomplexterrainandrealizematerialtraportationfunction。Keywords:Quadrupedrobotwalkingfunctiontrackingfunctionobstacleavoidancefunctionlosspreventionfunctionmaterialtraportation目录1。引言11。1。研究背景及意义11。2。研究内容及目标11。3。国内外发展现状11。4。四足机器人发展趋势22。四足机器人软件设计方案32。1。树莓派32。2。python语言33、元器件分析43。1。舵机43。2。超声波43。3。蜂鸣器43。4。摄像头54、功能设计64。1。行走功能64。1。1。舵机控制64。1。2。步态84。2。避障功能94。3。防走失功能114。4。跟踪功能124。4。1。颜色识别124。4。2。图像处理144。4。3。获取轮廓154。4。4。跟踪算法PID165。结论18参考文献19谢辞20附录21引言研究背景及意义在这个信息大爆炸时代,人工智能的发展以非常迅速的速度向人类生活蔓延,在各处行业中都能够看到人工智能机器的身影。在其中最具代表性的是机器人,其模仿人类或者动物的行为举止,代替人类或者动物服务于人类,如端茶送水的餐厅服务员机器人,工厂里分类物资的小型机器人,打扫卫生的扫地机器人和服务大厅答疑机器人,这些形形色色的机器人被人为做出专注于做某一件事,代替人类成为此事件的负责人,本文研究的四足载物箱也是有此意思。人们在外出旅行或者逛街都喜欢简洁的出门,身上不愿带有众多物品,但当购物的时候人们身上难免需要承担物品,加重了自身重量,行走困难,不一会儿就会身体疲惫,若是有一款机器代为承重,则免去了这些麻烦,故本文设计的四足载物箱的作用就是适用于人们外出旅行或者逛街,它的功能是成为主人随身的物资搬运工。当主人购买或者搬运东西时,主人可以将物资放于四足载物箱中,让机器人成为搬运工具,解放主人的双手,使得主人在做事情能够更为便捷,行走更为自如。类似的机器人还有很多,它们加入到人类生活中,方便了人类生活,解放了人类劳动力,促进了人类文明的进步,让人们有更多时间去做更有意义的事情。研究内容及目标本文研究目标是通过软件编写程序实现四足载物箱的功能。研究内容:行走功能:使用8个LX824串行总线舵机模拟正常动物行走的关节,按照walk步态行走;避障功能:使用超声波进行避障;防走失功能:使用蜂鸣器报警;跟踪功能:使用摄像头识别并进行跟踪。国内外发展现状从20世纪60年代起,McGhee研制出第一台四足机器人,四足机器人开始问世。此后经过许多年的发展,四足机器人的驱动方式达到了三种,分别是气压驱动、液压驱动和电机驱动。气压驱动由于非线性特性难以控制;液压驱动能够提供较强劲的动力而得到广泛应用;电机驱动控制精度高,噪声低,负载小,是人们较为喜欢,也是较为常用的驱动方式。此外,四足机器人的步态从单一状态发展到现在多种步态转换,有trot步态(对角小跑),bound步态(跳跃),pace步态(踱步),walk步态(行走)等步态。四足机器人的模式也从一开始满足行走的愿望,到现在的负载型四足机器人、速度型四足机器人和平稳型四足机器人。现在,在国外最为出名的是美国波士顿公司推出的SpotMini四足机器人,该机器人重量轻并且完全采用电机驱动方式,噪声低,运动上也更加灵活,在其上还可搭载机械臂,完成抓取,递放等一系列手臂行为。在国内四足机器人发展比较晚,是从20世纪90年代起,但国家综合实力发展迅速,四足机器人也做出了许多成就,就最近2018年,云深处科技公司推出四足机器人“绝影”超过国外众多四足机器人,重亮上达70kg,可负载20kg,不仅能够在恶劣的环境稳定地行走,更能失去平衡之后迅速调整过来,其移动速度最高达到为6kmh,续航2小时。四足机器人发展趋势从国内外四足机器人发展现状来看,我认为未来四足机器人的发展趋势主要有以下几方面:一、移动速度方面在速度上,轮式机器人远远超过足式机器人,足式机器人速度还是具有较大的发展潜力。二、负载能力方面负载是输运物资的重要参数,负载多少影响运输的效率。通过结构设计的改变和功率的提升,可以进一步提升负载能力。三、环境适应能力目前的四足机器人已经具有较强的环境适应能力,但在一些特殊的地方还是需要设计更专业的四足机器人四、续航能力高速度,高负载,高功率带来的是续航能力的低,故而还需降低能量的消耗五、驱动方式目前的驱动方式各有各的优点和缺点,想要将各种能力齐于一身,需要新的驱动方式2。四足机器人软件设计方案2。1。树莓派树莓派类似于一个小型的电脑系统,具有非常强大的功能,能够如同电脑播放视频,听歌,玩游戏等功能,同时具备许多外接端口,能接网线,连接键盘、鼠标和显示器等输入输出设备,许多功能的实现也都不需要格外设计硬件电路,只需一个简单的拓展版,就可以实现,而且其操作简单,编程容易,支持众多语言,其中以python为编程语言,具备了电脑几乎所有的基本功能。树莓派内部包含众多器件,硬件系统稳定,其作为产品测试或者模型机,可节约时间成本,减少各种风险。软件上的编程只需在树莓派系统上编写,烧录快速,反应灵敏。2。2。python语言软件编程中语言有许多种,如C语言,C++语言,python语言,Java语言等,在本次研究中,语言选择python语言进行编程。选择python语言作为本次研究中的语言,主要有以下几点:1、树莓派主支持python语言;2、Python语言是一款面向对象的语言,它将对象进行封装,把对象的各种属性包装成一个数据库,调用简洁明了;3、Python语言应用方向主要是网络爬虫和人工智能;4、Python语言内置函数,可外载模块,许多复杂的函数不需要写,直接调用;5、Python语言不需要声明变量类型;6、python编写程序简单,不像其他语言代码冗杂,一行代码抵数行代码;7、Python语言测试过程发生错误,易查找问题;综合以上原因,我决定使用python进行编程,虽然python执行效率不如C语言(C语言是底层语言,编译出来的程序是机器直接执行的代码),但在程序编写上简单,方便,代码少,测试易,特别在应用上,python更适合四足机器人的编程,所以在这里我选用了python进行编程。3。元器件分析3。1。舵机舵机的种类繁多,不同的舵机适用的环境不同,如果只是单纯测试与玩耍,倒可以选择便宜的舵机,力矩小,转动角度范围小,材料刚度低的舵机,但本文中,舵机要求适用于四足机器人,充当四足机器人的腿部,则需要选择精度高,力矩大,转动角度范围如同动物一般的舵机,经过仔细筛选,选择LX824型号的舵机,该舵机为当今较为出名的幻尔机器人公司经常使用的舵机,具有精度高,转动速度快,扭矩大,续航能力强等特点,主要适用于仿生机器人关节,而且该舵机是串行总线舵机,可以与其他舵机串联,以一组IO口调用多个舵机,接线精简,故障排查简便。该舵机参数如表3。1,频率50HZ周期为1f=20ms,高电平范围是0。5ms2。5ms,活动角度范围从0&#176;180&#176;,舵机线与一般舵机一样有三条,分别是VCCGND和控制线,控制线可用于传输角度控制信号。表3。1舵机参数频率周期脉宽范围中立区活动角度范围50HZ20ms500us2500us1500us0&#176;180&#176;舵机的工作原理是接受来自外界的PWM脉冲信号,控制电机转动,从而带动齿轮组的转动,当传至输出舵盘时,带动位置反馈电位计,使其反馈信号到控制电路板上,然后控制电机转动的速度和时间。3。2。超声波超声波频率高,超出人耳的听力频率(20Hz2KHz),不会对人体造成损坏,也不会干扰人们生活,而且方向性好,能够在遇到障碍物后反射回来,给传感器传递信号。使用超声波传感器进行避障也是传统方式,它工作原理是发射端发出超声波信号,接收端接收超声波信号,根据发射时间和接收时间的时间差,使用超声波在空气的传播速度340ms计算超声波传感器与障碍物的距离。3。3。蜂鸣器蜂鸣器工作原理其实很简单,当外界给予蜂鸣器一个电位信号,使得蜂鸣器产生电平的翻转,蜂鸣器就会产生声音。声音的产生主要是内部的振荡器振动的结果。按结构分类,蜂鸣器主要有两种,一是电压式蜂鸣器,二是电磁式蜂鸣器。这两者的区别在于一个是以电压方式使蜂鸣器振荡器振动,另一个是以磁场方式使蜂鸣器振荡器振动;按信号分类,有无源蜂鸣器和有源蜂鸣器,这两者的区别是一个可以通过调整频率控制发出的声音,另一个是只有固定的频率,声音也只有一种;按驱动方式分类,有PWM驱动方式和GPIO口控制驱动方式,就如同信号分类一般,PWM驱动方式就是输出固定的信号驱动蜂鸣器,GPIO口控制驱动方式可以自己调整频率,控制占空比,输出想要的声音,如音乐,报警声之类。在本文中为了方便,简洁代码,使用的蜂鸣器是有源电压式蜂鸣器,用PWM驱动方式,进行声音报警。3。4。摄像头摄像头的工作原理如图3。1。景物通过镜头传到图像传感器,转为电信号,经过AD转换变为数字图像信号,再经过数字信号处理芯片处理,通过USB传送到电脑。图3。1摄像头工作原理图摄像头控制原理主要是由OpenCV计算机视觉库控制。OpenCV支持python语言,内含有图像处理和计算机视觉方面的很多通用算法,可在多个系统中运行。4、功能设计4。1。行走功能小型的四足机器人的行走关节大多数都是使用舵机进行控制,在本文研究中也是使用舵机进行控制。4。1。1。舵机控制脉宽\ms角度\℃占空比\%0。502。51。04551。5907。52。0135102。518012。5表4。1脉宽、角度和占空比对应关系表4。1是舵机脉宽、角度与占空比的关系,从0。5ms2。5ms的脉宽范围中进行角度控制。可通过ChangeDutyCycle()函数(占空比函数)使得舵机可以“缓慢的”接近最终的角度。占空比计算公式:2。5+r36020,r为转动角度。根据公式可以通过想要的转动角度计算出占空比,带入ChangeDutyCycle()函数控制舵机。舵机控制程序编写流程图:转动角度改变占空比设置舵机参数导入模块图4。1程序流程图程序代码:此程序简单地控制了舵机做出相应的角度转动,导入了RPI。GPIO模块,time模块,设置了舵机基本参数,使用range函数改变了占空比的数据,控制舵机来回转动。舵机完成控制后,可对四足载物箱的行走功能进行操作。四足机器人的行走模式是模仿动物的行为,8个舵机对应四足的两处关节,通过控制两处关节的舵机模仿出各种步态,不同的步态有不同的效果,有快速,有平衡还有跳跃等模式。4。1。2。步态表4。2步态常用术语支撑相腿着地状态摆动相腿悬空状态步行周期T四足机器人完成步态循坏占空比β一个步行周期内,每条腿处于支撑相的时间的比值稳定裕度四足机器人重心垂直投影点到支撑区域边界的最短距离表4。3占空比对应步态0β0。5最多两条腿处于支撑相,奔跑步态β=0。5两组腿交替摆动,对角小跑0。5β0。75两条腿或三条腿处于支撑相,处于walk步态和对角小跑之间β=0。75三条腿处于支撑相,walk步态四足机器人的步态有许多种,不同的β值代表着不同的步态,在本文中主要使用walk步态,即β值为0。75。walk步态稳定,承重能力强,在行走过程中平稳性高,比较适合在恶劣环境中行走,适合于本文功能实现。Walk步态是三条腿支撑,一条腿悬空的步态,其腿部运动是采用3142的顺序来着。图4。2walk步态如图4。2灰色代表处于摆动相的腿,黑色代表处于支撑相的腿。每条腿的相位只差是14周期,此种腿部顺序稳定性好,效率高,重心调整度少。四足机器人静态稳定性由稳定裕度判断,稳定裕度越大,稳定性越好。动态稳定性则由ZMP判断。ZMP的定义是当机器人进行运动时所受到的惯性力和重力的合力延长线与支撑面的交点,它的稳定条件是ZMP在支撑区域内。图4。3ZMP既然知道了步态顺序和稳定性,接下来就要对关节进行驱动了。假设四足机器人步态周期为0。4s,则:髋关节驱动函数Fi代表转动角度。膝关节驱动函数(t=0。150。25)因为膝关节只有在髋关节处于上升时才能摆动,故膝关节的驱动函数时间为0。15s0。25s。将驱动函数得出的结果带入舵机占空比计算公式,得出占空比后可控制舵机的转动。四足机器人其余各足驱动函数也如此,但依次延迟14周期。4。2。避障功能避障功能的实现主要依靠超声波传感器。在本文中使用树莓派GPIO口连接超声波测距传感器,用python软件给超声波传感器TRIG提供10us的高电平信号。当TRIG接收到信号后,传感器发射信号出去时,ECHO自动置位高电平;当接收端接收到信号后,ECHO置位为低电平,故只需要知道ECHO高电平持续时间就知道发射时间和接收时间的时间差。距离公式为(ECH0高电平持续时间声速(340MS)2。避障程序编写流程图:设置超声波引脚计算ECH高电平时间距离公式输出距离否是是否小于15cm正常行走进行避障图4。4超声波流程图程序代码:此程序导入pigpio模块和time模块,设置了超声波Trig和Echo两引脚对应树莓派的引脚号并引入了LED灯表示超声波遇到障碍物的情况。超声波模块不断向外发散信号,当遇到障碍物距离小于15cm时LED灯亮。启动程序,四足载物箱跟随主人行动。四足载物箱跟主人的高度、宽度和长度不同,也就决定主人和四足载物箱对障碍物的概念不同。因此,当主人忽视了障碍物对于四足载物箱的影响时,四足载物箱要能自动进行避障。这时超声波传感器将传回出前方物体是否已经达到需要规避的状态,达到将开启LED灯显示避障状态并进行躲避行为,控制舵机转动。4。3。防走失功能防走失功能使用的是蜂鸣器报警功能,当四足载物箱丢失,蜂鸣器就会自动报警,引起主人的注意,从而防止走失。此次功能的实现,还需要跟踪系统提供一个信号,当跟踪物体丢失时,跟踪系统传回一个信号,接受此信号,调用蜂鸣器函数,启动蜂鸣器报警。蜂鸣器程序编写流程图:设置蜂鸣器引脚否是是否丢失正常运行蜂鸣器鸣叫图4。5蜂鸣器流程图程序代码:此程序简单设置了蜂鸣器的引脚和状态信号,当丢失目标时,传回状态信号,蜂鸣器报警,由于是有源蜂鸣器,声音单一,每隔一秒鸣叫,持续100次,当超过100次,机器丢失。防走失功能主要依靠跟踪功能,当四足载物箱丢失目标,无法进行跟踪时,跟踪功能将传回一个丢失状态信号,这个信号将引起蜂鸣器鸣叫,鸣叫时间为100s,在这个时间范围内主人听到声音将明白四足载物箱丢失了跟踪目标,需要重新识别,但超过100s,蜂鸣器将不在鸣叫,真正丢失。4。4。跟踪功能跟踪功能采用颜色跟踪,当启动跟踪功能时,摄像头先识别出跟踪目标颜色,分析轮廓,获取中心点坐标,经过PID计算返回输出值进行跟踪。4。4。1。颜色识别我们平时的图片一般都是RGB模型(R为红色,G为绿色,B为蓝色),其模式根据不同比例组成各种颜色,但更适合人类的图片是HSV模型,此模型如表4。4,以色调表颜色,以饱和度表深度,以亮度表黑白,在描述上比RGB更能体现人类眼睛所看到的世界,也是用来处理图片的常规模型,故而从摄像头读取的图片进行需要将其从RGB模型转换成HSV模型。表4。4HSV模型色调(H)用角度度量,取值范围为0&#176;~360&#176;,从红色开始按逆时针方向计算,红色为0&#176;,绿色为120&#176;蓝色为240&#176;。它们的补色是黄色为60&#176;,青色为180&#176;品红为300&#176;饱和度(S)取值范围为0。0~1。0,值越大,颜色越饱和。亮度(V)取值范围为0(黑色)~255(白色)。在opencv计算机视觉数据库中,HSV模型中H是0180,S是0255,V是0255,因此需要转换一下,把H的值除以2,S乘255,V乘255,可以得到对应的opencv的HSV值。RGB模型转换成HSV模型后,需对目标提取颜色进行阈值设定,表4。5是HSV空间颜色阈值范围。表4。5HSV空间颜色范围黑灰白红橙黄绿青蓝紫Hmin000015611263578100125Hmax1801801801018025347799124155Smin00043434343434343Smax2554330255255255255255255255Vmin04622146464646464646Vmax46220255255255255255255255255根据其范围,设置蓝色阈值:Lower_blue是低阈值,upper_blue是高阈值。有了阈值后就可以进行颜色识别。颜色识别使用opencv模块中inRange()函数将图像二值化,提取目标颜色。如目标颜色是蓝色,二值化就是将图片中的像素值处于lower_blue阈值和upper_blue阈值之间的值转换成255,将处于阈值之外的值转换成0。颜色提取程序编写流程图:识别颜色显示转换颜色读取视频打开摄像头图4。6颜色识别流程图程序代码:结果显示图4。7原图图4。8提取图此程序导入了cv2模块和numpy模块,开头先打开摄像机,之后读取图像,将图像转换为HSV模式,设定蓝色阈值,二值化转换,展示如图4。9,之后等待读取按键,跳出循环关闭摄像头,关闭所有窗口。4。4。2。图像处理在颜色识别中,需要对图像进行处理,因为图像像素点和像素点之间差距巨大,颜色提取目标轮廓易发生错误,需要将图像像素点变得平滑,在本文中使用高斯模糊进行图像处理。图4。9正态分布高斯模糊使用的是正态分布公式进行图像处理。从图4。9的正态分布图中可以看出越接近中心点,峰值越大,越远离中心,峰值越小,而高斯模糊就是利用这一点使得图片变得模糊,平滑。高斯模糊使。。。
  • 版权声明:知知范文网 本站所有内容的版权归相应内容作者或权利人所有,本站不对涉及的版权问题负法律责任。
  • 内容来源:本站所有内容均有网络公开等合法途径整理而来,该资料仅作为交流学习使用,并无任何商业目的,任何访问,浏览本站,购买或者未购买的人,就代表已阅读,理解本条声明
  • 免责声明:内容所标价格,是对本站搜集、整理资料以及本站运营必须费用支付的适当补偿,资料索取者尊重版权方的知识产权,谢谢!

关于我们 - 网站声明 - 网站地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@长治毕知网络科技有限公司
ICP备案号:晋ICP备2022002585号