主页 > 案例大全 >

论文技巧案例-履带机器人避障盲区问题的研究

2021-03-18 11:28


   伴随着机器人技术的突飞猛进,以及传感器的深入研究,对机器人的开发设计已经取得了极为显著的效果,履带机器人因其各种优点成为移动机器人领域的重点研究内容之一。履带机器人在生产生活中有着十分重要的作用,可以大大降低了这些环境造成的破坏。所以有必要对其进行系统性的设计和研究。

 
  避障是自主移动机器人应该具备的功能之一,目前,移动机器人普遍采用传统的传感器检测方法,由于盲点较大,使得避障功能难以有效实现。其存在许多盲点,使得避障变得很困难。本文提出了一种减少传感器检测盲点的方法,提供了一种具体的检测手段,并对该方法进行了全面的研究和分析。小车从应用需求以及研究目的出发氛围控制器模块等5个模块。选取STM32作为小车控制器,红外传感器选择为HJ-IR2,超声波传感器为HC-SR04,电机驱动芯片为L298N,运动方式选择履带式,并设计分析相应的硬件电路。在软件方面,使用MDK-ARM编写小车控制程序,使用MCUISP下载控制程序。
 
  通过实验论证:小车避障系统实时性好、成本低,有效减少了避障盲点,并进行了避障实验,达到了预期的实验效果。
 
  1.1研究目的及意义
 
  机器人技术的进步,使得机器人已经在人类生活领域变得十分普及,极大地影响了人类的文明和发展。机器人技术是融合了目前市面上许多高精尖理论知识,例如信息技术、生物科技技术等诸多领域相结合而形成的前沿理论,具有十分广泛的应用前景。那些不适合人类在重复、沉重、危险和恶劣环境下的工作。机器人完全可以完成这种工作,极大地解放了人类的劳动。
 
  移动机器人作为机器人技术的重要组成部分,一直受到人们的广泛关注。对移动机器人进行分类方法有很多,大致有:按照其功能适用性进行分类、按照其运动方式的不同进行分类、以及其硬件构造结构的不同进行分类。在人类的生产生活领域被广泛应用。
 
  由于履带机器人能够代替人在危险恶劣的环境中工作。减少这类环境对人类的危险。此外,履带机器人具有十分明显的优点,履带式机器人在越野性能、机动性、爬坡等方面均优于其他移动机器人。
 
  目前,机器人处理信息的能力大大提高了性能的持续改进和多传感器信息融合技术的发展使得机器人逐渐向智能化发展。避障是路线规划的基础,机器人无碰撞运动最终实现。
 
  1.2履带机器人研究现状
 
  1.2.1国外履带机器人研究现状
 
  最早对履带式机器人进行开发探索的是国外,国外对这个方面进行了大量的实验研究,自上个世纪末,国外的许多机构,诸如大公司后一些对此方面有兴趣的大学课题组,对这个方面研究最深的,且掌握知识最多的当属美国和日本。这两个国家因为各自国家的国情需要,研发出适合他们需要的履带式机器人。日本多发地震灾害,所有对救援机器人的研究比较深入,由于美国不限枪支,所以恐怖袭击经常发生,为打击这些不法分子,研究出各种反恐领域所需要应用到的履带式机器人。
 
  Packbot机器人由IRobot公司开发。机器人实物图如图1.1所示。导航模块可以自主指导机器人,并在城市建筑物内外执行全方位搜索。可以满足各种城市救援以及特种任务的执行要求。
 
  图1.1 Packbot机器人
 
  美国对履带式移动机器人的研制开发方面处于前列,而由于打击恐怖主义的迫切需求,美军正在进一步扩大对履带式机器人的科研投入,致力于高机动性、快速可靠的履带式机器人。美国托儿-米勒公司开发了一种名为“魔爪”的履带移动机器人。以供完成各种特殊任务。
 
  其设计有一承重轮,在机器人调整前进方向和旋转时起到辅助支撑的作用。可以通过降低机器人地面摩擦力大小,增强机器人的运动性能。机器人实物图如图1.2所示。
 
  图1.2魔爪机器人
 
  1.2.2国内履带机器人研究现状
 
  国内对履带机器人的研究较国外相比起步较晚,起点较低,但由于各种技术的飞速发展,我国在此领域也突飞猛进,逐步追赶世界一流水平。
 
  如图1.3所示为一爬楼梯机器人。其机械机构共有6条履带,通过固定轴相互连接。为了可以实时且准确的感应周边环境,装有各种传感器,方便对其爬楼过程中进行环境感知,以便做出相应的调整。
 
  图1.3爬楼梯机器人
 
  沈阳自动化研究所研制的“灵蜥”系列机器人,移动速度2.4公里/小时,其可通过一定角度和一定高度的障碍物。可以装载武器、爆破散弹枪、催泪弹和其他武器并完成某些功能。灵蜥-B系列履带移动机器人,如图1.4所示,具有灵活性高、性价比高、综合性能好、可靠性高的优点。克服高度40cm的障碍物和50cm的横沟,充放电可使用长达4小时,操作者可进行远程控制工作。
 
  图1.4灵蜥-B机器人
 
  1.3主要研究内容及章节安排
 
  1.3.1主要研究内容
 
  本文主要研究避障过程中的盲区问题,通过实验对比其盲区大小,并探究如何缩小其盲区,使其尽可能贴近障碍物通过,实现最小盲区的同时达到避障效果。本文采用超声波传感器与红外传感器进行信息的采集。硬件上完成对机器人的外形结构进行设计制作,设计STM32控制器硬件的电路,以及红外避障模块、超声波避障模块的设计搭建,设计完成系统的电源模块设计,以及其电机驱动模块。软件上完成系统的运动控制策略分析设计以及其避障功能设计。
 
  1.3.2论文章节安排
 
  第一章绪论
 
  介绍本研究内容的背景以及意义,对履带机器人的目前状况做了简短的介绍,对本系统的主要内容和每章的安排做了阐述。
 
  第二章系统总体设计
 
  对系统的功能需求,以及小车的软硬件需要做了简要的分析,构建整体的模块图。
 
  第三章系统的硬件设计
 
  介绍小车所用的硬件结构,以及各种硬件的选取。对STM32进行简短介绍以及部分硬件电路的分析设计。
 
  第四章系统的软件设计
 
  简介系统的开发环境以及所用的开发软件,下载工具等,其次完成系统的控制程序代码设。
 
  第五章系统的测试实验
 
  对小车整体系统的测试实验,论证设计要求,分析实验结果。
 
  第六章结论与展望
 
  客观论述自己所完成的工作,对小车系统的总体评价以及所得结论分析。提出自己的不足,分析进一步的研究工作。
 
  2系统总体设计
 
  2.1需求分析
 
  根据需求分析,履带式避障机器人需要实现自主避障功能,在行进过程中判断障碍物的距离,做出相应的动作,并且尽可能的贴近障碍物通过,达到最小盲区的目的。完成上述功能需要具有相应的硬件设备以及合理的程序控制。
 
  系统硬件方面
 
  (1)系统微控制器的选择,需要具备处理小车所采集数据的能力、
 
  (2)红外避障模块,需要具备稳定性,不易被其他的红外信号干扰
 
  (3)超声波避障模块,需要具备稳定性,不易受到其他外界干扰
 
  (4)小车的底盘构造必须结实同时要具备一定越野能力
 
  (5)小车的电源要有持续供电的能力
 
  系统软件方面
 
  (1)小车前进模式的选择,速度的匹配
 
  (2)如何控制电机,实现小车的运动
 
  (3)如何实现避障功能
 
  2.2系统模块
 
  履带式避障机器人系统可分为控制器等5个模块,系统的模块图如图2.1所示。控制器选为STM32F103ZET6,红外传感器选择HJ-IR2型,超声波传感器选取HC-SR04型,驱动电机芯片采用L298N,选取履带式底盘。工作时首先程序进入超声波避障模块,因为超声波传感器测距比红外传感器测距要远,当超声波传感器检测到障碍物时,小车会将其正在前进的速度进行适当的降低,调用红外传感模块,进行近距离的路径修正。
 
  图2.1系统模块图
 
  控制器模块:系统的重中之重,决定小车能否正常工作的决定性因素,且需要成功处理传感器所采集到的外部信息,并做出运算判断,需要能处理各个模块之间的优先级问题和系统中断问题。
 
  红外避障模块:是能否有效躲避障碍不可缺少的模块,以及能否以最小盲区通过障碍的关键,小车的工作环境未知,所以需考虑在黑暗环境或强光环境下能否正常工作。所选HJ-IR2为不怕光红外避障模块,能适应小车所需的工作环境,可以满足小车所需要达到的功能要求。
 
  超声波避障模块:是检测到障碍物的必备器件,其检测距离可调,依据自己的实际要求以及小车的尺寸可以调整为最适合距离。驱动电机模块:电机选择GM-25-370直流碳刷电机。选用L298N为电机的驱动控制芯片,通过两端电机的差速来实现转弯功能。
 
  电源模块:是整个小车系统的供电单元,由于控制器及其他芯片所要求的安全电压不能过大,但需达到驱动要求,故选择两节3.7V 2200mA的电池组作为整个系统的供电电源模块。
 
  3系统的硬件设计
 
  3.1系统搭建
 
  该履带机器人系统可分为控制器模块等5个模块,其硬件分布以及小车的整体结构示意图如图3.1所示。
 
  图3.1小车整体结构示意图
 
  小车的实物图如图3.2所示。
 
  图3.2小车实物图
 
  小车在运动过程中对障碍物的躲避,且达到最小盲区的功能要求系统各个模块之间能有效的配合,发挥各自的作用,系统的整体结构如图3.3所示。
 
  图3.3系统的整体结构
 
  3.2小车基座介绍
 
  履带式机器人的底座是小车的支撑基础,是承载小车各个模块的基础平台,且需具备一定的符合设计要求的运动能力,经系统分析以及实际因素综合考虑之后选择外观图如图3.4所示的小车基座。
 
  图3.4小车车体基座
 
  该小车底座材料构成为铝合金材质,其齿轮和履带材质均为塑料制品,其规格尺寸为22*25.5*7.1cm,无载荷情况下净重为1.2kg,额定载重为3kg。
 
  3.3 STM32控制器硬件电路设计
 
  小车整体的运动控制、传感器采集信息的接收与发出以及内部信息的处理都需要控制器进行操作处理。考虑到各种实际状况以及小车系统的总体需求,需要选择成本比较低,但性能要满足要求的控制器。综合各种要求选择意法半导体公司生产的STM32F103ZET6型控制器。
 
  其拥有比较明显的优势,主要有以下几点:
 
  (1)优异的实时连续性。其含有84个中断(16个内部中断和68个外部中断),还具有16级可编程优先级,中断输入可以在其所有引脚上进行。
 
  (2)产品型号充裕:8个系列拥有上百种型号的控制器可控选择,其封装类型有QFN、LQFP、BGA,满足个人的封装要求。还推出了一些极低功耗和可以选择无线通信应用型的M3芯片,如STML何STM32W系列。
 
  (3)具有丰富多样的外置接口。:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外置接口。
 
  (4)成本低廉。产品本身的价格十分低廉且开发比较容易。支持SWD和JTAG两种调试口。其中SWD调试可以为设计的调试运行带来很大的便利,其只需要2个IO口,就可以实现程序的仿真调试运行。
 
  STM32F103ZET6型控制器的基本参数如下:
 
  SRAM:64KB
 
  FLASH(闪存):512KB
 
  定时器:8个
 
  GPIO端口:112个通用I/O口
 
  12位ADC模块:3个(21通道)
 
  12位DAC转换器:2个(2通道)
 
  FSMC(静态存储器控制器):有
 
  CPU频率:72MHz
 
  工作电压:2.0~3.6V
 
  工作温度:环境温度-40摄氏度~+85摄氏度
 
  器件引脚数:144
 
  封装规格:LQFP144
 
  接下来从本系统所用到的部分功能模块具体介绍控制器STM32F103ZET6。
 
  GPIO(General Purpose I/O),我们中文俗称为通用I/O口。本文所选用的控制器有144个引脚,这些引脚可分为7组,每组16个引脚,从GPIOA到GPIOG。这些引脚中有一些专用引脚,其他大部分都是可以复用的。这些端口每一个都可以设置成不同的功能端口,因此在定义引脚时需要指定所选择的引脚及其所代表的功能。
 
  GPIO口有4中工作模式:
 
  (1)输入:悬空输入输出:开漏输出
 
  (2)输入:上拉输入输出:开漏复用
 
  (3)输入:下拉输入输出:推挽输出
 
  (4)输入:模拟输入输出:推挽复用
 
  STM32F103ZET6的引脚分布如图3.5所示。
 
  图3.5 STM32F103ZET6引脚分布图
 
  STM32F103ZET6实物图如图3.6所示。
 
  图3.6 STM32F103ZET6实物图
 
  此部分介绍STM32的定时器模块,其一般只用于给系统的时钟计时。共有8个16位的定时器,2个基本定时器(TIM6、TIM7)、4个通用定时器(TIM2、TIM3、TIM4、TIM5)、2个高级定时器(TIM1、TIM8)。都具有强大的功能,包括:产生输出波形、定时计数、编码器接口功能等。定时器的功能比较如表3.1。
 
  表3.1定时器功能比较
 
  定时器计数器分辨率计数器类型预分频系数产生DMA请求捕获/比较通道互补输出
 
  TIM1 TIM8 16位向上,向下,向上/下1~65536之间的任意整数可以4有
 
  TIM2 TIM3 TIM4 TIM5 16位向上,向下,向上/下1~65536之间的任意整数可以4没有
 
  TIM6 TIM7 16位向上1~65536之间的任意整数可以0没有
 
  3.4红外避障模块设计
 
  履带式避障小车的红外避障模块主要目的是修正超声波传感器的前进路径,由于超声波传感器的检测距离远,可以较远感知障碍物的存在,红外传感器的感知范围比较近,可以实现避障时最小盲区的目的,使小车尽可能贴近障碍物通过。所以红外传感器的选择是十分必要的。
 
  综合考虑后,红外避障模块选择HJ-IR2红外传感器,实物图如图3.7所示。
 
  图3.7 HJ-IR2红外传感器
 
  HJ-IR2红外传感器的是用要注意的是其使用电压需要在3.3~5V之间,电平输出方式为低电平输出,安装尺寸为4.5*1.7cm,安装需要注意各个排针的属性,误接可能会烧毁红外传感器。该产品功耗较低约为20~30mA。
 
  其上的电路元器件说明如图3.8所示
 
  图3.8电路元器件说明
 
  本系统的经分析后选择HJ-IR2不怕光红外避障模块。相较于其他功能类似的红外避障模块,此产品拥有优异的特性。其系统稳定,能适应相对恶劣的工作环境,且价格极低。此红外避障模块的工作原理的示意图如图3.9所示。此不怕光红外避障模块可以在强光之下正常工作,不会受到强光内所含红外光线的影响,是并且其探测感知的距离也是可控对的,可根据自己的实际要求进行人为调节。
 
  图3.9红外工作原理示意图
 
  红外传感器的接法如图3.10所示。
 
  图3.10 HJ-IR2排针接法
 
  红外传感器与STM32F103ZET6的连接线路如图3.11所示。
 
  图3.11红外避障模块与控制器的连接线路图
 
  3.5超声波避障模块设计
 
  本系统选择超声波避障模块的原因是超声波传感器较之红外传感器的探测范围要远,可以给小车足够的反应时间以及路径修改时间来进行调整。当超声波传感器检测到障碍物后,小车会执行一个减速操作命令,直至障碍物进入红外传感器的检测范围,当超声波传感器检测到障碍物时,小车会将其正在前进的速度进行适当的降低,调用红外传感模块,进行近距离的路径修正。然后执行相应的转弯命令,绕过障碍物,以达到避障且避障盲区最小的目的。
 
  超声波传感器实物图如图3.12所示。
 
  图3.12超声波传感器实物图
 
  HC-SR04超声波传感器规格参数如下:
 
  产品型号:HC-SR04
 
  使用电压:DC5V
 
  静态电流:小于2mA
 
  电平输出:低电平输出
 
  感应角度:不大于15度
 
  探测距离:2cm~450cm
 
  高精度:可达3Mmm
 
  规格尺寸:45*20*15mm
 
  超声波测距的原理示意图如图3.13所示。本产品安装方便,不易老化。可以计算出发射点到障碍物的距离。本系统选用HC-SR04型超声波传感器作为超声波避障模块。本产品安装方便,不易老化。在其端口触发模式下,当给它一个触发信号时,就会发射超声波。其高电平信号至少需要10us。测试距离=(高电平时间*声速340米/秒)/2。
 
  其板上接线方式需要注意,VCC是电源端,Trig为控制端,Echo为接收端,GND接地。
 
  图3.13超声波测距原理示意图
 
  超声波避障模块与控制器的连接线路图如图3.14所示。
 
  图3.14超声波避障模块与控制器接线图
 
  3.6电机驱动电路设计
 
  小车选择直流电机提供动力,小车齿轮的驱动选择GM-25-370直流碳刷电机。电机外形结构图如图3.15所示。电机实物图如图.16所示。
 
  图3.15 GM-25-370直流碳刷电机外形示意图
 
  图3.16 GM-25-370直流碳刷电机
 
  GM-25-370直流碳刷电机的规格参数如下:
 
  输出速率:150&viewmn;10%rpm
 
  最小负载电流:200mA(Max)
 
  负载电流:1200mA(Max)
 
  工作电压:6~9V
 
  轴伸尺寸:14.5mm
 
  安装螺丝孔:M3.0
 
  轴向间隙:0.05~0.50mm
 
  由于小车系统的功能需求,需要使其以不同的速度前进,故需要一个电机驱动模块,以便于简单灵活的控制小车的电机,综合分析实际的功能需求以及驱动模块自身的一些状况后,选取了L298N稳压驱动模块。实物图如图3.17所示
 
  图3.17 L298N驱动模块
 
  电机驱动模块选择L298N的主要原因是其具有十分显著的优点,稳定性十分良好等。其基本规格参数如下:
 
  工作模式:H桥驱动(双路)
 
  主控芯片:L298N
 
  逻辑电压:5V
 
  驱动电压:5V~35V
 
  逻辑电流0mA~36mA
 
  驱动电流:2A(MAX单桥)
 
  储存温度:-20℃~+35℃
 
  最大功率:25W
 
  尺寸规格:43*43*27mm
 
  此小车驱动模块与控制器的连接线路如图所示3.18所示。
 
  图3.18电机驱动模块与控制器连接线路图
 
  电机驱动模块是保证小车运行的动力,因此需要一个稳定的驱动系统,所以电机的供电电源需要十分稳定,才能保证小车有足够稳定的动力,其电源供电模块接线如图3.19所示
 
  图3.19电机电源模块供电接线图
 
  电机驱动的结构图如图3.20所示。
 
  图3.20控制器与电机驱动模块结构框图
 
  3.7电源模块设计
 
  在设计系统的电源模块时需要考虑到各个部分所需的工作电压,其中主要使用电压为5V,因此本系统选择2节3.7V 2200mA的电池经过转换来提供供电。
 
  系统各模块供电分析如图3.21所示。
 
  、
 
  图3.21系统各模块供电分析图
 
  电源供电系统电路图如图3.22所示。
 
  图3.22电源供电系统电路图
 
  4系统的软件设计
 
  4.1开发工具简介
 
  4.1.1 Keil MDK-ARM V5.14 uVision5
 
  目前市面上可供开发STM32的工具软件已经十分普遍,且种类繁多,比如DS-5、AsIDE、EWARM、MDK-ARM等。综合各个软件的优缺点,最终选择MDK-ARM来进行系统软件的开发设计。
 
  开发界面如4.1所示。
 
  图4.1 Keil uVision5开发界面
 
  4.1.2串口下载程序工具MCUISP
 
  STM32的系统调试程序下载方法可以分为两种:一是ST-Link(J-Link)仿真器下载,但须注意的是连接需要准确无误,不然可能会损坏仿真器和控制器。另一种是TTL下载,这种下载方法较之仿真器下载操作比较麻烦,需要在下载前后挪动跳线帽、复位操作,不然小车将不能正常工作。虽然仿真器下载比TTL下载更为方便,但其价格高昂,误操作可能会造成其损坏。TTL的成本比较低,若由于误操作致其损坏,其经济层面是可以接受的。故本系统选择TTL下载方式,所选串口下载程序软件为MCUISP。程序下载软件界面如图4.2所示。
 
  MCUISP的软件操作界面十分简洁,且操作简单易行,对于程序下载十分实用。其应用过程需要注意以下几个问题:
 
  下载程序过程中只可以使用一个端口,不然会出现抢占端口现象。
 
  当软件界面的串口显示为灰色时,需要查看接线是否正确,并重启软件。
 
  图4.2 MCUISP界面
 
  4.2超声波避障模块程序设计
 
  超声波避障模块主要是用于检测远距离的障碍物,使小车提前做出动作。程序设定为给超声波传感器一个触发信号,超声波发射器发射超声波,需要使用定时器至少延时10us,等待接收端接收到回向信号(若超过60000ms仍未接收到回向信号,则本次检测失败,重新触发超声波发射器发射超声波),接收端接收到回向信号后开始计算距离,传给控制器进行决策,用以判断小车下一步的动作。
 
  小车超声波发射器发射超声波的部分代码:
 
  void GetDistanceDelay(void)
 
  {
 
  Trig_SET;//向超声波发射器发送触发信号
 
  status=1;
 
  TIM_SetGaotime(TIM4,0);
 
  TIM_dsq(TIM4,ENABLE);//打开TIM4定时器
 
  while(TIM_GetGaotime(TIM4)<11);//延时超过10us,以保证超声波传感器正常工作
 
  status=2;
 
  Trig_RESET;//发射器执行复位动作
 
  TIM_SetGaotime(TIM4,0);//定时器清零
 
  距离计算部分状态代码:
 
  dis_count=TIM_GetCounter(TIM4);
 
  TIM_dsq(TIM4,DISABLE);//关闭定时器
 
  if(dis_count!=0)
 
  {
 
  distance_cm=(unsigned int)(((long)(dis_count)*0.034)/2);
 
  }
 
  超声波避障模块流程图如图4.3所示。
 
  图4.3超声波避障模块流程图
 
  4.3红外避障模块程序设计
 
  红外避障模块可以实现较小的转弯半径避障,减小避障过程中的盲区,以实现最小盲区的目的。程序设计为当红外传感器检测到障碍物时,有一个10ms的延时,之后若仍检测到障碍物,会执行一个定时后退指令,随后判断障碍物是在左侧还是右侧被检测到,当左侧检测到障碍物时,小车会在定时后退结束后向右前方行驶,转弯是以两条履带的差速实现的,同理右侧只需改变方向即可,当两侧同时检测到时会执行左侧检测到障碍物的指令。
 
  红外传感器采集信息的部分代码如下:
 
  char HW(void)
 
  {
 
  char left=1,right=1;//定义左侧和右侧的红外传感器
 
  char count;
 
  if(VOID_L_IO==obstacle _Y)//obstacle _Y 0检测到有障碍物
 
  {
 
  count=4;
 
  while(--count)
 
  {
 
  if(VOID_L_IO==obstacle _N)//obstacle _N 1没有检测到障碍物
 
  break;
 
  Delayms(1);
 
  }
 
  if(count==2)left=2;
 
  }
 
  return left+right;
 
  }
 
  红外避障模块流程图如图4.4所示.
 
  图4.4红外避障模块流程图
 
  4.4电机驱动模块程序设计
 
  对电机的驱动控制是调节占空比大小进而实现对小车的运动控制,当信息采集模块将信心传输给控制器后,控制器经过决策分析,做出小车运动操作的判断并通过使能对应的GPIO口输出电流来实现运动控制。
 
  运动指令部分代码如下:
 
  void CG(void)//前进
 
  {
 
  behind_left_speed_duty=SPEED_DUTY;
 
  behind_right_speed_duty=SPEED_DUTY;
 
  }
 
  void CB(void)//后退
 
  {
 
  behind_left_speed_duty=-SPEED_DUTY;//速度反向,实现后退功能
 
  behind_right_speed_duty=-SPEED_DUTY;
 
  }
 
  void CL(void//左转
 
  {
 
  behind_left_speed_duty=-20;//减速,以实现快速差速转弯
 
  behind_right_speed_duty=SPEED_DUTY+10;//增加驱动力,实现两轮差速
 
  void CR(void)///右转
 
  {
 
  behind_left_speed_duty=SPEED_DUTY+10;//增加驱动力,实现两轮差速
 
  behind_right_speed_duty=-20;减速,以实现快速差速转弯
 
  }
 
  void CD(void)//减速
 
  {
 
  behind_left_speed_duty=SPEED_DUTY-30;//减速操作
 
  behind_right_speed_duty=SPEED_DUTY-30;
 
  }
 
  void CS(void)//停车
 
  {
 
  behind_left_speed_duty=0;
 
  behind_right_speed_duty=0;
 
  }
 
  电机驱动模块流程图如图4.5所示。
 
  图4.5电机驱动流程图
 
  4.5路径比较与传感器位置程序设计
 
  4.5.1工字形路径程序设计
 
  小车路径的选择是避障盲区问题研究必须要讨论的问题之一。选择合适的路径是实现最小盲区的必要条件,小车以哪种方式躲避障碍物才可实现此目的是值得研究的。本系统在对比了工字形路径与斜线方式前进后,选择了斜线方式。
 
  工字形路径是当遇到障碍物,小车进行绕行时所走的路径,形状像“工“字,称之为工字形路径。当红外传感器左侧检测到障碍物时,小车首先向右转90°,然后直行一定的距离,再向左转90°,直行一定的距离,之后再向左转90°,同样直行一定的距离,最后右转90°回到原来的轨迹,并成功绕过障碍物。当右侧检测到障碍物时,与左侧同理,将左右方向调换即可。优点就是可以让小车回到最初的前进方向。由于障碍物的形状尺寸是未知的,且小车系统的传感器数目有限,小车侧身并无传感器,因此无法判断小车直行的距离多少,可能出现无法绕过障碍物的情形。故由于小车本身缺陷,无法选择工字形路径。斜线方式前进,其将会一直调整自己的前进方向,不会有碰到障碍物的风险,但其缺点是无法回到小车最开始的前进方向,会一直的变化自己的前进方向。
 
  工字形路径的部分程序设计代码如下:
 
  char flage=0;
 
  if(VOID_L_IO==obstacle _Y&&VOID_R_IO==obstacle _N)//左侧发现障碍物,右左左右
 
  {
 
  CB();//后退
 
  Delayms(1000);//后退延时,延时时间要确保小车转直角时不会碰到障碍物
 
  CR();//右转
 
  Delayms(1100);//右转延时,经调试得出延时时间
 
  CG();//直行
 
  Delayms(3000);//直行延时,延时时间自定义
 
  CL();//左转
 
  Delayms(1500);//左转延时,经调试得出延时时间
 
  CG();
 
  Delayms(2000);
 
  CL();
 
  Delayms(1000);
 
  CG();
 
  Delayms(2000);
 
  CR();
 
  Delayms(1100);
 
  CG();
 
  return;
 
  }
 
  工字形路径流程图如图4.6所示。
 
  图4.6工字形路径流程图
 
  4.5.2单一超声作用程序设计
 
  单一超声波传感器作用时,当障碍物距离在30cm到100cm时,小车会首先执行一个减速动作,当与障碍物距离小于30cm时之间时,小车会向左转弯,设置其转弯延时时间,之后会向右回转一点用以修正方向,之后会继续前进。当距离小于10cm时小车会执行停车动作指令。由于超声波会受到障碍物形状的影响,发出的超声波可能会被反射至其他方向,致使接收器接收不到回向信号,导致判断出错。
 
  程序部分代码如下:
 
  void BarrierProc(void)
 
  {
 
  if(distance_cm<=100&&distance_cm>30)//距离计算判断
 
  {
 
  CarDown();//小车减速
 
  return;
 
  }
 
  else if(distance_cm<=30&&distance_cm>10)//距离计算判断
 
  {
 
  CarLeft();//左转
 
  Delayms(7000);//左转延时
 
  CarGo();//直行
 
  Delayms(2000);//直行延时,用以差开障碍物
 
  CarRight();//右转
 
  Delayms(5000);//右转延时,用以修正方向
 
  CarGo();//修正方向后继续直行
 
  return;
 
  }
 
  }
 
  4.5.3单一红外传感器作用程序设计
 
  当单一红外传感器作用时,当右边检测到障碍物时,后退700ms,然后左转1000ms,左侧同理,改变方向即可,当两边同时检测到时,执行左侧检测到运动指令;若两侧都没检测到障碍物,保持运动状态。其安装位置位于小车车轮上方,其避障可能会受到障碍物形状尺寸影响,因其顾及不到小车上方控制器位置的情况,可能会出现“钻洞”情况,上方会被卡住。
 
  void hwgo(void)
 
  {
 
  char status;
 
  status=HW();
 
  switch(status)
 
  {
 
  case VOID_LEFT://左侧检测到障碍物,右转
 
  ctrl_comm=COMM_RIGHT;
 
  CB();//后退,且延时700ms
 
  Delayms(700);
 
  CL();
 
  DelayCheck(1000);
 
  break;
 
  case VOID_RIGHT://右侧检测到障碍物,左转
 
  ctrl_comm=COMM_LEFT;
 
  CB();
 
  Delayms(700);
 
  CR();
 
  DelayCheck(1000);
 
  break;
 
  case VOID_BOTH://同时检测到障碍物,右转
 
  ctrl_comm=COMM_RIGHT;
 
  CB();
 
  Delayms(700);
 
  CR();
 
  DelayCheck(10000);
 
  break;
 
  case VOID_NONE://没有检测到障碍物,直行
 
  ctrl_comm=COMM_UP;CG();
 
  break;
 
  default:break;
 
  }
 
  }
 
  4.5.4系统总体程序设计
 
  超声波传感器与红外传感器共同作用时,首先由超声波传感器进行检测,当检测到障碍物时,小车首先会执行一个减速动作指令,之后会以较低的速度前进,当进入红外传感器的检测范围时,由红外传感器来接手信息的采集,并根据采集到的信息来对小车的运动状态做出决策控制。此方法可以修补单一超声波传感器的缺陷,即使检测不到超声波的回向信号,也不会因此而做出错误决断。超声波安装与小车控制器同水平线,可以检测到与小车同一高度的障碍物,避免出现“钻洞”而被卡住的情况,解决了单一红外传感器的缺陷。
 
  程序设计部分代码如下:
 
  if(distance_cm<=50)//当检测到障碍物距离小于等于50cm时,小车减速
 
  {
 
  CarDown();
 
  return;
 
  }
 
  void BarrierProc(void)
 
  {
 
  if(VOID_L_IO==BARRIER_N&&VOID_R_IO==BARRIER_Y)//如果左侧检测到障碍物
 
  {
 
  CarBack();//后退
 
  Delayms(500);
 
  CarRight();//右转
 
  Delayms(500);
 
  return;
 
  }
 
  else if(VOID_L_IO==BARRIER_Y&&VOID_R_IO==BARRIER_N)//如果右侧检测到障碍物
 
  {
 
  CarBack();//后退
 
  Delayms(500);
 
  CarLeft();//左转
 
  Delayms(500);
 
  return;
 
  }
 
  当共同作用时,系统的流程图如图4.7所示。
 
  图4.7系统流程图
 
  5系统的测试实验
 
  5.1测试实验环境构建
 
  系统整体的开发环境为Windows 10系统64位版本;程序设计开发工具Keil uVision5;测试设备为一台履带式移动机器人;障碍物若干
 
  5.2测试实验
 
  测试小车的整体系统运行情况,观察其能否成功躲避障碍物,并且达到盲区最小的结果,将小车置于地面上,当超声波检测到前方障碍物时,会执行减速动作指令,之后当红外检测后会执行相应的避障操作。
 
  实验测试过程如图5.1所示,用眼镜盒模拟障碍物,红外检测到眼镜盒的状态。
 
  图5.1眼镜盒模拟障碍物的检测状态图
 
  设置一障碍物,让小车运行起来,观察其避障效果,并分析其盲区问题。障碍物形状唯一长方体,尺寸为14*35*20cm。
 
  小车运行结果,前进阶段如图5.2。
 
  图5.2小车前进阶段
 
  转弯阶段如图5.3所示,越过障碍物如图5.4所示。
 
  图5.3小车转弯阶段
 
  图5.4小车越过障碍物
 
  对其避障过程进行分析,由超声波传感器计算小车与障碍物距离并传给控制器进行分析处理。当障碍物距离小车50cm之外时,小车保持前进运动状态,进入50cm范围时,小车执行减速操作指令,且保持原有方向前进。当红外传感器检测到障碍时,小车先执行后退指令,然后执行转弯操作,如图5.3为左侧传感器检测到障碍物,故执行右转指令后会直行较短时间,之后会有一个较短的左转指令,用以修正其方向,使其路径尽量不要偏离原方向太远。
 
  对超声波的盲区进行实验分析,如图5.5所示。
 
  图5.5超声波盲区分析
 
  通过改变障碍物高度,经论证分析,黑线所夹部分为超声波传感器的感知范围,蓝线一下,为超声波传感器的盲区,若障碍物低于此高度则超声波传感器检测不到,此时须借助红外传感器辅助,以实现避障功能。
 
  5.3测试试验结果分析
 
  系统整体运行稳定,与预期结果一致。可以很好的躲避障碍物,并且其盲区与单一传感器相比较小,从实验分析比较了单一传感器与多传感器的盲区问题,事实证明此系统可以有效的减小避障过程中的盲区,达到最初设计的目的。


知网查重福礼


微信扫码关注公众号登录

x
客服QQ 返回顶部