机场地面垃圾清除机器人控制系统设计
摘 要
机场是航空运输和城市的重要基础设施,良好的机场环境具有非常重要的意义和作用。将融合多种传感器的扫地机器人应用于机场的地面清洁,代替人们进行清洁工作可以提高的清洁工作效率和降低工作成本,具有广阔的市场前景。本设计主要从硬件和软件系统两方面阐述了机器人的设计过程。在硬件方面本设计以STM32F103ZET6单片机作为机器人系统的主控模块,负责逻辑控制和软件层次的规划;以超声波传感器、红外传感器、MPU-6050传感器、光电编码器作为系统的信息采集模块,负责周围环境和机器人状态的采集;以电机及驱动电路作为执行模块负责机器人的运动任务。在软件方面按照执行流程完成信息的采集和发送,通过PID控制、PWM控制实现对电机的控制。传感器不断获取机场环境信息,路径规划算法根据机场环境的信息来控制扫地机器人的运动路线,PID实时输出控制量控制电机的运动,确保扫地机器人运行稳定。最后通过PROTEUS软件对系统控制电路进行仿真,验证了系统控制电路的合理性。
关键词:扫地机器人;PID控制;路径规划;
Abstract
The airport is an important infrastructure of air transport and the city, and a good airport environment has a very important significance and role. The sweeping robot integrated with a variety of sensors is applied to the ground cleaning of the airport, and the cleaning work can improve the cleaning efficiency and reduce the work cost, which has a broad market prospect. This design mainly describes the design process of robot from hardware and software system. In terms of hardware, the design takes STM32F103ZET6 SU as the main control module of the robot system, which is responsible for logic control and software level planning; the ultrasonic sensor, infrared sensor, MPU-6050 sensor and photoelectric encoder as the information acquisition module for the system and the robot state; and the motor and drive circuit as the execution module are responsible for the movement task of the robot. In terms of software, the collection and transmission of information are completed according to the execution process, and the control of the motor is realized through PID control and PWM control. The sensor constantly obtains the airport environment information, the path planning algorithm controls the movement route of the sweeping robot according to the information of the airport environment, and the PID real-time output control quantity controls the movement of the motor to ensure the stable operation of the sweeping robot. Finally, the system control circuit to verify the rationality of the system control circuit.
Key words: Sweeping robot; PID control; path planning;
目 录
第1章 绪论
1.1 课题研究背景
机场是航空运输的关键组成部分,同时也是城市综合交通运输体系和基础设施的重要组成部分之一[1]。干净整洁的地面环境,明亮的候车厅,是机场的基础,机场作为外国人对城市的第一印象,因此良好的机场环境具有非常重要的意义和作用。目前大多数机场的卫生打扫还是以人工打扫为主。但是随着人口老龄化的到来,未来的劳动力必定减少,人力成本不断升高,因此在保证环境卫生的前提下,降低人力成本成为了需要解决的问题。随着科技的发展,人们越来越重视人工智能和智能机器人的研究。作为智能技术应用之一,智能扫地机器人正在逐渐进入人们的日常生活[2]。随着人民对提升生活品质的提升,人们对在现实生活场景中取代人力的服务机器人有着迫切的需要。未来机场的卫生主要通过扫地机器人打扫人力辅助的形式,成为了主要的发展方向。
传统的机场卫生打扫方式是以人力打扫为主,清洁车作为辅助工具的打扫方式。这样的打扫方式虽然能节省一定的人力物力,但是机场这样的场所为了满足可以容纳大量的乘客,所以面积都会非常的大,并且场所人员流动性非常大,人工清扫过后地面,可能立刻有人员走过,造成地面二次污染,增大了工作难度,并且不容易保持卫生的整洁。随着传感器技术、智能控制技术和无线通信技术的发展,智能扫地机器人正逐步进入人们的日常生活。扫地机器人的系统通常由四个部分组成:移动机构,传感系统,控制系统和真空吸尘系统,传感系统与控制系统的结合可以是扫地机器人实现自动避障的功能[3]。将扫地机器人应用于机场的地面清扫,不仅节约清扫时间、而且比工人打扫时更省力、清扫效率更高,而且可以降低二次污染造成的影响。
1.2 国内外研究现状
1.2.1 国外研究现状
世界上第一台量产扫地机器人的原型是来自于瑞典家电巨头伊莱克斯的“三叶虫(Trilobite)”iRobot公司推出的Roomba扫地机器人[4]。由于单片机的性能在大幅地提升,成本反而降低,所以Roomba与之前的扫地机器人相比,运算速度加快,清扫效率更高。Roomba扫地机器人将算法进行了优化,其核心是循着螺旋状运转,运用逐渐扩大螺旋的方式来覆盖整个空间,并通过交叉、重复螺旋的方式进行清洁,降低了清扫的重复率[5]。
2020年,德国的斐纳(TOMEFON)公司推出EF-G90扫地机器人,其搭载了LDS激光雷达进行室内定位,配备了独家研发的四代智能芯片,可以根据不同的室内布局进行定制化清扫;还配备了德国原装无刷电机,能产生超高转速,吸力最大可以达到2.6Kpa;添加了拖地模式,可以对不同地面进行深度清洁。但其缺点是充电时间较长,需连续充电5个小时才能满电,使用时有一定的局限性。2020年,三星公司最新推出的POWERBOTR9350吸尘机器人,它拥有全球首创的弹出式清洁刷,可以清扫到平时难以清洁的地方;搭配Visionary MappingPlus和FullView传感器,可以感应不同环境的灰尘量,由此选择清洁模式,智能自动规划路径进行清洁,并具有记忆能力;扫地机器人采用了CycloneForce技术,可以凭借更稳定的功率运行,减少灰尘堵塞。但其因为要保证强大的吸力所以设计体型较大,离地间隙也大,无法清扫到沙发底和床底等需要深入清洁的区域。
1.2.2 国内研究现状
国内曾有多所高校和研究所对扫地机器人进行研制,在参与扫地机器人的研制的高校与研究所中,浙江大学在成功研制出首个初步具备智能功能的扫地机器人,该机器人采用随机和局部路径规划的策略进行清扫[6]。哈尔滨工业大学也成功研制出可以在无人环境中自动工作的扫地机器人,其首次通过全覆盖路径规划算法进行路径规划清扫,提高了清扫效率[7]。目前,我国市场上推出的扫地机器人产品主要以低价格,高性价比的为主。相对于国外的扫地机器人,国内的扫地机器人在智能清扫方面确实存在一定差距。不过,近年来,国内的扫地机器人品牌也崛起,小米、科沃斯、美的、海尔等品牌已经成为比较知名的扫地机器人品牌,它们不断推出具备更智能化功能的产品,逐步缩小了与国外品牌的差距。
科沃斯是中国智能清洁领域内专业生产家庭服务机器人的品牌,2020年科
沃斯推出的“地宝”N9+扫地机器人,其可以用智能APP来进行操控,内部还设有蓝鲸清洁系统2.0智能扫拖技术,采用了双旋拖布的设计,使整机清洁性能提高,拖布可在回充时进行自动水洗,提高了清洁效率,其工作噪声≤64.5db(A),实现了安静清洁,不打扰日常生活。但其采用的视觉导航模式在实际应用中受光线影响较大,清洁能力起伏明显,且在拖地模式时边刷转动容易在地上留下污水印,导致清洁能力降低。
美的是我国家用电器的主流品牌之一,近几年来在国内扫地机器人市场占比也逐渐提升。2020年美的推出了VR06扫地机器人,其底部距离地面仅7.8cm清洁更加有效,内有高效电机,吸力高达4Kpa,可以进行强力清洁;自动渗水技术,在拖地时自动恒压渗水,持久不浪费。但其没有采用智能路径规划算法进行清扫,而是采用的“弓”字型清扫和内螺旋清扫相结合的路径规划方法,清洁效率较低。尽管国内的扫地机器人品牌在清洁力度等方面进行了创新,但在路径规划和全局规划等方面,仍存在一定差距。相比之下,国外的一些知名品牌在这些方面的技术和能力比较先进。
1.3 选题的目的及意义
随着人口老龄化的到来和人民对提升生活品质的需求的增长,对于在现实生活场景中使用服务机器人取代人力的需求变得更加迫切。例如机场这类场所需要容纳大量乘客,由于人员流动性非常大,打扫工作的难度较大,需要投入较大的人力成本。随着老龄化现象的加重,人力资源日益短缺,这已经成为了一个全球性的问题。扫地机器人等智能家居产品可以在一定程度上改善这种情况,减轻人力压力,并提高清洁效率和质量。
使用扫地机器人清扫地面不仅可节约清洁时间,而且比人工清扫更省力、效率更高,机器人成本也远低于人工成本。在机场等需要容纳大量人员的场所使用扫地机器人进行清洁工作,可减少对人力资源的需求,提高清洁效率,并缓解人口老龄化带来的影响。同时,将扫地机器人应用于机场清洁还可解放人力,使工作人员可以处理机器人无法完成的任务。
1.4 主要工作内容
(1).该扫地机器人控制系统是基于STM32F103ZET6芯片构建的,利用超声波、红外传感器来收集环境信息,并通过驱动电路驱动电机实现自主清扫。
(2).本设计在对现有扫地机器人路径规划算法进行研究和分析的基础上,提出了一种稳定可靠的路径规划算法,并通过仿真实验验证系统电路的可行性。
(3).对系统硬件如MPU-6050、超声波、驱动模块进行硬件驱动设计。软件实现PID控制算法。
第2章 控制系统硬件电路的设计
2.1 硬件系统的总体框架
本设计的扫地机器人使用红外传感器和超声波传感器来检测障碍物,可以有效地规避障碍物,保证清扫效率和质量,MPU6050运动传感器来计算旋转角度,帮助扫地机器人进行精准的定位和行进。使用两个直流减速电机驱动车轮可以实现扫地机器人的行走,在车轮的两侧安装编码器可以更加准确地计算车轮的速度和距离,提高定位精度和路径规划能力。为了方便及时获取传感器数据和向扫地机器人发送开机、关机命令,连接了一个ATK-ESP8266 WIFI模块,使用笔记本电脑安装网络调试助手软件实现和WIFI模块的通讯。机器人使用一个电压为12V、容量为9000 mAh电池包,为电机驱动提供电力,并经过稳压后为控制单元提供动力。主控制单元用于控制整个机器人,STM32F103ZET6被用作控制芯片,主控单元执行机械驱动、运动控制和传感器数据采集等任务。 硬件系统总体框如图2-1所示

图2-1 硬件系统总体框图
2.2 控制核心
主控芯片是扫地机器人控制系统的核心,它负责完成控制系统的数据处理和逻辑运算任务,控制机器人的移动、避障等操作。在本设计中的主控芯片需要完成以下任务:读取并处理处各种传感器输出的数据,包括超声波、红外、编码器MPU-6050等传感器数据,以及 WIFI模块通讯数据。通过控制驱动电路来实现电机的控制。控制系统需要通过主控芯片以特定的逻辑控制电机,以实现机器人的运动和转向。机器人与外部设备的通讯功能实现机器人的路径规划和自主导航能力,完成清扫任务。
本设计STM32F103ZET6作为MCU,其资源丰富,接口丰富,计算性能强大,完全能够满足扫地机器人控制系统的需求。
(1).64KB的SRAM和512KB的FLASH可以存储大量的数据、程序和固件,使得系统具备高度的可靠性和稳定性。
(2).2个基本定时器、4个通用定时器、2个高级定时器可以同时进行复杂的定时功能,如PWM输出、捕获、比较和计数等。
(3).2个DMA控制器共12个通道可以实现高速数据传输,可以减轻CPU的负担,提高整个系统的工作效率。
(4).3个SPI、2个IIC、5个串口、1个USB、1个CAN等接口丰富,可以与多种传感器、执行器、通讯设备等进行连接和通讯,满足扫地机器人控制系统的复杂需求。
(5).1个12位DAC和3个12位ADC,可以实现精确的电压和电流控制、测量和采集,进一步提高了系统的控制和测量精度。
(6).1个SDIO接口和1个FSMC接口可以支持高速数据存储和读取,满足系统对数据存储和读取方面的需求。
综上所述,STM32F103ZET6作为MCU,完全能够满足扫地机器人控制系统的需求,是一款非常优秀的控制芯片。
2.3传感器的选择
2.3.1红外线传感器
在本设计中,使用红外传感器来检测扫地机器人运动方向是否有障碍物,从而实现扫地机器人的自动避障功能[8]。红外传感器的工作原理是:传感器发射红外线,当红外线遇到障碍物时,会被反射回来,并接收到传感器[9]。通过接收到的反射信号,可以判断出障碍物的位置和距离,从而实现扫地机器人的自动避障功能。
在本设计中,选用的红外传感器需要具有可调节的检测范围,并且性能稳定。E18-D80NK型红外传感器的供电电压为5V,是否存在障碍物可以通过读取黄色信号线的高低电平来反应。在电路设计中,通常会在输出端的黄线上加上一个拉电阻,常见的值为10KΩ,将黄线连接到5V的电源上,再接入单片机进行检测,可以使传感器输出信号更加稳定可靠。
本设计选用E18-D80NK型红外传感器,电路图如图2-2所示,线路连接图如图2-3所示。

图2-2 红外线传感器电路原理图

图2-3 红外线传感器线路连接图
2.3.2超声波传感器
在本设计中,采用超声波传感器来检测扫地机器人与障碍物间的距离[13]。超声波传感器包含声波发射和接收装置,前者发出超声波,后者接收反射回来的声波,当声波遇到障碍物时会发生反射,根据时间差测距法来计算扫地机器人到障碍物的距离。
时间差测距法是一种利用超声波在空气中的传播速度C=340m/s,根据超声波发射和接收的时间差T来计算扫地机器人到障碍物的距离L的方法,即:L= C×T /2 [10][11]。因为超声的声速是和温度相关的,要想得到更准确的测量结果,就必须以真实的温度来修正速度,所以所选择的传感器必须具备温度-速度修正的功能
,并且性能稳定。
本设计中选用了US-100超声波测距模块,该模块是通过超声波原理来进行测距。该模块有内置温度传感器,可实现对测试数据的自动修正,使得测试精度与可靠性得到了极大的提高。US-100型超声测距模块与单片机之间的通讯采用 GPIO接口和串口接口,具有很好的稳定性。由于其体积小、安装方便,可以有效地检测机器人与障碍物之间的距离,以确保机器人在工作中的稳定性和安全性。
在使用US-100超声波测距模块时,需要在程序中进行相应的设置和校准,确保该模块与单片机的通信顺畅,同时使测距的结果更为准确。
本设计选用的超声波测距模块电路连接如图2-4所示。

图2-4 US-100 超声波测距模块电路连接图
2.3.3运动传感器MPU6050
扫地机器人在清洁工作中,需要不断的根据自身的状态来调整运动,以避免意外情况的发生,因此需要不断地检测自身的状态。检测传感器应该具有广泛的检测范围,并且可以通过系统进行控制,以满足机器人在不同场景下的需求。本设计使用MPU-6050传感器用于扫地机器人自身状态的检测。
MPU-6050能够捕捉和处理加速度、角速度和磁场等数据,从而测量机器人的运动状态和方向[12]。通过使用MPU-6050,我们可以测量机器人的线性加速度、角速度和方向的变化,从而对机器人的动态行为进行识别和监测,为机器人提供更加准确和高质量的运动控制。此外,MPU-6050还具有低功耗、精度高、反应速度快、尺寸小等特点,非常适合用于机器人的状态检测和运动控制。
本设计采用的运动传感器电路如图2-5所示。

图2-5 MPU6050运动传感器电路原理图
本设计采用的运动传感器连接如图2-6所示。

图2-6 MPU6050电路连接图
2.4 编码器
在扫地机器人清扫的过程中,需要根据自身状态进行调节,需要了解扫地机器人的速度、里程等。在直流电机转轴上配置增量式光电编码器,可以检测电机的转速和里程。
在选择编码器时,主要考虑编码器的精度和可靠性能否满足设计要求。在本设计中,选用E38S6型增量式光电旋转编码器来检测电机的转速和里程,该编码器的精度符合本设计的要求,并且稳定性和可靠性较强。
本设计中,编码器模块使用5V电源供电,A相和B相输出连接到STM32
对应的A 、B相脉冲输入通道1和通道2。 编码器连接如图2-7所示。

图2-7 编码器电路连接图
2.5电机选型与驱动
底盘使用两个电机分别驱动车轮,主动轮采取差动方式进行转向,随动轮负载支撑底盘。本设计选择直流减速电机来驱动车轮控制转向。直流电机供电电流为直流,可以使用电池进行供电,旋转方向可以通过改变供电电压的正负极来改变,便于控制。
对于扫地机器人这样的应用场景,电机需要输出较大的扭矩和较低的转速,以便驱动扫地机器人的轮子进行清扫工作。为了满足这样的要求,通常会在电机和车轮轴之间安装减速齿轮组,以降低转速并获得较大的扭矩。在使用时,用户可以根据实际需要选择合适的扭矩和转速组合,以满足扫地机器人在不同场景下的运动需求。
本设计使用的扫地机器人总重约3kg,轮子与地面的摩擦系数取0.3,车轮半径6cm,运动速度为0.32m/s。则电机扭矩T,功率P,转速N为:
|
|
(2-1) |
|
|
|
(2-2) |
|
|
|
(2-3) |
实际传动过程中存在功率损失,直流减速电机综合传动效率约为0.6左右,因此在实际选取的电机过程中功率要为理论功率的1.7倍以上。本设计选取了 XD-42GA775 型减速直流电机。
2.5.2电机驱动
通常单片机输出的电流较小,无法直接驱动大功率电机,通过电机驱动模块可以实现电机的驱动。本设计使用L298N驱动模块,来驱动直流电机,来控制扫地机器人的运动。
L298N驱动模块可以有效地控制直流电机的转动,并且具有电路简单、易于掌握等优势。L298N驱动模块还提供了一个5V电源输出接口,用于为单片机和其他电路系统提供稳定的5V电源。这使得L298N驱动模块成为一种通用的直流电机驱动解决方案,可以根据需要灵活配置电机和电路系统。
本设计选用的L298N驱动模块电路如图2-8所示
。

图2-8 L298N模块电路原理图
采用两块L298N驱动板分别控制两个电机的优点不仅是可以提高系统的可靠性,还可以实现更加精细的电机控制,并且可以避免一块驱动板同时驱动两个直流电机时出现的驱动板过热、烧板等问题。
L298N模块连接如图2-9所示。

图2-9 L298N模块电路连接图
2.6 WIFI模块
WIFI功能的实现使用了ESP8266模块。ATK-ESP8266模块是一种常用的基于ESP8266芯片的WIFI模块,它简化了串口设备与WIFI网络之间的通信过程,使得串口设备能够通过WIFI网络实现数据传输。该模块使用LVTTL串口与MCU(或其他串行设备)进行通信,支持3.3V和5V MCU系统[13]。
ESP8266模块具有STA/AP/STA+AP三种工作模式,本设计中采用了STA+AP模式,在STA+AP模式下,该模块既可以通过路由器连接到互联网又可以作为 WIFI 热点供其他 WIFI 设备连接,实现远程控制。
本设计选用的WIFI模块电路如图2-10所示。

图2-10 WIFI模块电路原理图
ATK_ESP8266 WIFI模块电路连接如图2-11所示。

图2-11 ATK_ESP8266 WIFI模块电路连接图
2.7 电源管理模块
为了适应不同电路模块的供电需求,控制系统需要一款电源管理模块,因为主控芯片需要3.3V电压,而部分外部模块需要5V电压供电,而电池电压为12V。该电源管理模块通常由降压电路、电压选择电路和3.3V/5V输出电路三个部分组成。其中,降压电路通过MP2359芯片将高输入电压(例如12V)降压到低输出电压(例如5V),以为主控芯片等低电压模块提供稳定的电源;电压选择电路则用于切换输入电压和输出电压之间的电压差,以提供正确的电源给5V电路模块。3.3V/5V输出电路能够为需要3.3V或5V电源的电路模块提供相应的电压输出,从而满足不同电路模块的供电需求。
稳压芯片电路如图2-12所示。

图2-12 MP2359稳压芯片电路原理图
电压选择电路如图2-13所示。

图2-13 电压选择电路原理图
图2-14中,VOUT1和VOUT2是扫地机器人的电源输出接口,分别提供3.3V和5V的电源输出。这样通过主控板就可以方便地为外部功能模块提供所需的3.3V和5V电源供应。同时,这两个电源输出接口的功率可以达到最大1000mA,足以满足大部分外部功能模块的电源需求。为了保护主控板和其他外部设备,本设计中还引入了两个TVS管(D6和D7)。在本设计中,TVS管被用来保护VOUT接口,当VOUT外接负载不稳定时,TVS管可以快速响应并截断过电压或过流,避免对主控板造成损坏。

图2-14 3.3V/5V输出电路原理图
第3章 控制系统软件设计
本章节包括以下几个主要部分:首先需要读取传感器数据;接着可以采用PID控制器和PWM波来改变电机占空比,实现控制小车的行进速度;之后可以借助AT指令与ESP8266 WIFI模块交互,实现小车与笔记本电脑之间的通信。在这个过程中,ESP8266作为服务器,笔记本电脑作为客户端,使用网络调试助手软件进行连接,从而实现了接收开机、关机指令以及向笔记本电脑发送传感器数据的功能。主程序会首先判断接收到的指令,以决定开启或关闭小车运行。
3.1传感器数据读取
3.1.1 MPU-6050数据读取
MPU6050传感器中包含陀螺仪和加速度计,并且还集成了数字运动处理器DMP。使用MPU6050传感器的嵌入式运动驱动库,可以将陀螺仪和加速度计的原始数据转换为四元数输出。通过四元数转换,可以直接计算欧拉角,从而得到航向角。MPUPU6050传感器数据读取步骤如下:
(1).初始化I2C接口;
(2).复位 MPU6050;
(3).为确保数据的准确性,使用加速度传感器和陀螺仪时必须设定它们的满量程范围;
(4).设置其他参数;
(5).确定所使用的系统时钟源,可以使用外部晶振或者内部PLL时钟源。使能角速度传感器和加速度传感器,通常可以通过在传感器的控制寄存器中写入特定的配置数据实现。具体的写入数据应根据所选用的传感器类型和通信接口而定。
(6)移植官方DMP驱动库;
读取MPU6050 数据程序流程如图3-1所示:

图3-1 读取MPU6050 数据程序流程图
3.1.2 超声波传感器数据读取
本设计采用超声波测距模块的UART串口模式进行数据传输。UART是一种使用串行通信协议传输数据的通信方式。在STM32F103ZET6主控芯片中,最多可以提供5个UART串口资源,可以实现多个设备的数据传输和通信。
US-100 超声波模块读取步骤如下:
(1).为确保与US-100超声波测距模块通信正常,需要设置串口通信参数,包括波特率、数据位数、停止位数和奇偶校验位等。具体参数设置为:波特率9600,起始位1位,数据位8位,停止位1位,无奇偶校验,无流控制。
(2). 向US-100超声波测距模块发送0x55命令,以开始测距。等待模块通过Echo/RX管脚返回校正后的测距数据,通常该数据会以两个字节的形式返回,分别是距离值的高8位(HData)和低8位(LData)。通过控制器的串口接收端口读取返回的数据。
(3). 解析数据并进行处理。对HData与LData两个字节进行位移操作并相加,可得到高低位相加后的测距结果。这一过程可以反复执行,以获取最新的超声波测距数据。
3.1.3 编码器数据读取
在STM32中,高级定时器和通用定时器都支持编码器模式。编码器输出A、B两个相位差为90度的正交信号,根据两个信号的先后来确定旋转方向,并通过信号脉冲数量来计算出运动的距离。本设计中,使用STM32定时器的编码器模式来计数编码器的脉冲,从而精确计算扫地机器人的移动距离。
具体步骤如下:
(1).配置定时器的工作模式为编码器模式。在STM32中,定时器的工作模式包括普通模式、自动重装载模式、相位正确模式和编码器模式等。编码器模式通过同时捕获和比较两个输入通道的信号来进行正向/反向计数。
(2).将编码器信号TI1、TI2经过输入滤波后,将其连接到编码器模块的对应输入端口,产生TI1FP1、TI2FP2信号。
(3).根据实际的应用场景和编码器的工作特性,选择合适的计数方向(正向计数或反向计数)。
(4).在运行过程中,编码器的A、B两路信号分别通过编码器模块的TI1FP1、TI2FP2端口输入到定时器中,定时器对两路信号进行捕获和比较,从而进行正向/反向计数。
(5).根据信号脉冲数量的总数及车轮的周长,即可计算出机器人的移动距离。
读取编码器的步骤:首先配置IO口,配置定时器基本单元,自动装载值ARR设置为600,编码器一圈输出600个脉冲。 车轮半径R为6cm ,编码器一圈输出600个脉冲,行走的圈数为n,计数器值为a,则小车运动的距离为:

(3-1)
扫地机器人在二维平面上运动时,由于受到地面阻力、碰撞等诸多因素的影响,很难建立精确的数学模型进行控制。本设计使用PID控制算法对扫地机器人进行控制。PID控制器是一种基于比例、积分、导数三个参数的控制器,通常采用反馈控制的方式,根据控制误差的大小来调整系统的输出信号,从而实现对系统的精确控制,其主要思想在于对目标参数(例如扫地机器人的航向角)和实际参数之差进行处理,从而调整控制量,使其尽量接近目标值。
公式3-2为PID控制器的计算公式,其中,u(t)表示控制器输出,即控制量;K p、K i、K d分别代表比例、积分、导数三个参数;e(t)表示目标参数和实际参数之差,即误差;;

表示误差的积分,即累加误差;d e(t)/d t表示误差的变化率即误差导数。比例控制器的作用在于根据误差的大小进行比例调节,使输出的控制量与误差成正比,可以快速降低误差。比例系数过小会导致控制器反应较慢,过小则会导致系统震荡。积分控制器可以通过积分的方式来消除系统静态误差,并且在足够的时间内能够加快系统的动态响应速度。积分系数过大,会导致系统过度修正,从而引起超调甚至振荡,影响系统的稳定性。而微分控制器虽然可以抑制系统的超调和振荡,但是对于噪声具有放大的作用,因此在实际应用中需要根据不同的场合选择合适的微分系数。在实际应用中,比例、积分和微分三项调节都不能单独起作用,必须通过合理配置和调配。

(3-2)
由于硬件PID控制器需要布局复杂的电路,并且每次调节PID参数都需要重新布局电路,难以实现在线动态调节,因此在调试和调整上面具有一定的限制。此外,采集到的信号容易受到环境因素的影响,容易产生噪声,从而影响被控对象的控制效果。随着电子技术的快速发展,数字式PID控制器应用越来越广泛。数字式PID控制器是固定时间间隔对被控对象进行采样,将采样到的实时数据输入进算法中进行计算,最终输出控制量。相比较于传统的硬件PID控制器,数字式PID算法具有修改PID参数方便、控制信号稳定输出等优点。数字式PI的公式描述如下所示

(3-3)
对连续PID系统离散化后的表示如下所示:

(3-4)
3.2.2 PWM输出
本设计中,采用STM32的定时器模块产生两路PWM波来控制扫地机器人的行进速度。PWM波形是一种脉冲宽度调制技术,可以将模拟信号转化为数字信号进行控制。在PWM调速系统中,主要有三种改变控制脉冲占空比的方法:定宽调频、调宽调频和定频调宽。本设计采用的是定频调宽的方法,即通过改变占空比来控制直流电机电枢的两端电压,从而改变电流大小,实现对机器人行进速度的控制。PWM波形如图3-2所示。具体地,通过改变定时器模块输出PWM脉冲的占空比,来控制电机的转速和行进速度,使机器人能够按需进行快速加速或缓慢减速,从而实现更精确、有效的行驶控制。

图 3-2 PWM波形
在定频调速的PWM控制中,脉冲波的频率保持不变,而电机的转速通过占空比D来改变波形,从而调整电机平均运行电压,实现电机速度控制。因为电机的最大运转速度为V max,当占空比为D = t/T 时,电机平均运转的速度为V d = D × V max。因此,通过改变占空比D的大小,就可以控制电机平均运行速度,从而实现电机速度的控制。在本设计中,采用定时器3控制两路PWM波的占空比,以控制扫地机器人的行进速度。通过定频调速的PWM技术,电机的转速可以采用更加智能、精细的控制方式,提高了小车在行进过程中的稳定性和可靠性。
3.3数据发送
在本设计采用ESP8266 WIFI 模块的串口无线WIFI(COM -WIFI AP)模式,允许笔记本电脑通过WIFI连接到ESP8266 WIFI模块,实现串口与笔记本电脑之间的WIFI数据通信。在COM -WIFI AP模式下,用户可以选择三种子模式来满足不同的应用需求,分别为TCP服务器、TCP客户端和UDP。
3.3.1 WIFI模块模式选择
TCP(Transmission Control Protocol),又叫传输控制协议,UDP(User Da tagram Protocol),又叫用户数据报协议,它们都是传输层的协议,但两者的机制不同。TCP与UDP 协议区别如表3-1所示。
TCP的特点:
(1).面向连接:通信前先建立连接,通信结束后再断开连接。
(2).可靠传输:TCP协议通过确认机制和重传机制等技术手段,确保数据传输的可靠性,可以建立虚拟通信连接。
(3).有序性:TCP保证数据传输的有序性,数据会按照一定的序号进行传输。
(4).流量控制:TCP协议还有流量控制机制,根据接收方的处理能力动态控制数据传输的速度,防止数据溢出。
(5).拥塞控制:TCP有拥塞控制机制,能够根据网络的拥塞情况,自动调整数据传输的速度,保证网络的稳定性和可靠性。
UDP的特点:
(1).无连接:UDP协议无连接,不需要建立连接,直接发送数据包。
(2).不可靠传输:UDP协议的数据传输不保证可靠性,不进行确认和重传机制,不建立连接。
(3).无序性:UDP传输的数据是无序的,没有按照一定的序号进行传输。
(4).没有流量控制机制:UDP没有流量控制机制,发送方会一直以最大速度发送数据。
(5).没有拥塞控制机制:UDP没有拥塞控制机制,一旦网络拥塞,数据会立即丢失或者被冲掉。
考虑到扫地机器人数据传输的可靠性,对传输速度要求较低,本设计中选用TCP协议,由于TCP服务器无法主动连接其他设备,扫地机器人使用TCP服务器作为数据传输协议。
表3-1 TCP与UDP协议区别

3.3.2 AT指令
AT指令是针对终端设备与PC之间的连接和通信而开发的一种指令,最初由Hayes公司推出,因为指令以“AT”开头,所以被称为AT指令[14]。对于ESP8266模块,用户可以通过串口使用AT指令来控制ESP8266的各项功能。每个AT指令都可以分为四种命令类型,如表3-2所示:
3.3.3 WIFI模块系统参数设置
本设计将ESP8266 WIFI模块配置为WIFI热点,采用AP模式。ATK_ESP8266WIFI模块有STA/AP/STA+AP三种工作模式,此处选择了AP模式。笔记本电脑通过WIFI无线连接到ATK_ESP8266 WIFI模块,作为服务器端,使用网络调试助手软件;与此同时,笔记本电脑也作为客户端连接到ATK_ESP8266 WIFI模块,以便进行调试。 WIFI功能指令如表3-3所示。
表 3-2 AT指令结构

表3-3 WIFI功能指令列表

WIFI模块主要负责接收开机和关机指令,并向笔记本电脑发送传感器数据。在主程序中,首先会对接收到的指令进行判断以决定是开机还是关机。目前仅设定了开机和关机两个命令,当接收到其他数据时,程序会返回error提示发送了错误指令。 命令处理流程图如图3-3所示。

图3-3 命令处理程
扫地机器人高效的路径规划是扫地机器人清洁工作效率的前提,机器人的清扫效率是衡量机器人性能的重要标准[15]。本章将详细介绍扫地机器人路径规划问题。
4.1常用的路径规划方法
扫地机器人的路径规划根据对外部环境的感知方式的不同可以分成两种类型:
(1)已知环境信息类路径规划可以解决扫地机器人在完全已知环境下的路径行走问题,但是当环境发生变化时,需要对其重新建构[16],扫地机器人所处的工作环境一直处于持续的动态变化中,这种方法环境信息的建模有严格的要求。环境信息的建模方法包括单元分割法、可视图法以及自由空间法等。
(2)采集环境信息类路径规划能够有效地应对机器人在动态未知环境下的路径规划问题,使得机器人能够快速响应环境的变化并做出相应的路径规划决策[17]。采集环境信息类路径规划包括人工势场法、随机覆盖法等。
单元分割法:该方法将环境划分为一个个单元,对每个单元进行标记,如障碍物、空隙等。这种方法结构简单,易于实现。但是,由于单元分割是离散的,难以表达环境的连续性,并且分辨率不易控制。
可视图法:该方法利用机器人传感器获取环境信息,对环境进行建模[18]。通常通过三维重建等方法将原始数据转化为可视化的形式,利用图形学算法进行路径规划等操作。但是,由于传感器的局限性,该方法可能受到视野范围的限制[19]。
自由空间法:该方法将机器人能够通过的区域标记为自由空间,在自由空间之外的区域则标记为障碍物。与单元分割法不同,自由空间法结合了环境的连续性,可以更精细地对环境进行建模。但是,该方法的实现需要消耗大量的计算资源[20]。
人工势场法是一种常见的采集环境信息类路径规划方法,它通过引入势场的概念,将机器人移动的过程描述为在势场中进行的运动,其中势场的构建和更新是通过对环境信息进行采集和处理得到的。该方法具有简单易实现、计算量小、对障碍物有较好的避让能力等优点[21]。
随机覆盖法是按照设定的逻辑路线进行清扫。在该方法中,机器人按照多边形、弓字型等逻辑路线行走,遇到障碍物则执行转向函数,以避开障碍物[22]。通过随机覆盖未知区域的方式来探索环境,从而逐步建立环境模型,以此为依据进行路径规划。该方法可以有效避免局部最优问题,并具有较高的全局收敛性和自适应性。
4.2路径规划的改进
路径规划中常采用的方式是“弓”字型或内螺旋“回”字型的路径规划。[23]。在“弓”字型路径规划中,机器人会沿一个方向前进清扫,遇到障碍物则会平移一段距离后转向继续清扫,往复运动形成“弓”字型的清扫路径,直到将所有的工作区域清扫一遍,工作方式如图4-1所示。

图4-1 “弓”字型路线清扫示意图
内螺旋“回”字型路径规划是一种相对高级的清扫路径规划方式。在该方式中,扫地机器人首先沿工作区域的墙壁进行沿边清扫,逐渐缩小清扫范围,同时当遇到障碍物时,继续沿着障碍物的边缘进行清扫,随着清扫范围的逐渐缩小,机器人会绕着缩小后的工作区域中心进行内螺旋型的路径规划,直到覆盖整个工作区域。这种方法相对于“弓”字型路径规划,可以有效提高覆盖率和清扫效率,也可以避免由于机器人转向误差而导致的路径规划偏差和清扫效果下降问题。工作方式如图4-2所示。

图4-2 内螺旋路线清扫示意图
随机覆盖法并不是一味地盲目地清扫,而是按照预先设定的逻辑路线,对清扫工作区域进行清理。在运动过程中,机器人会使用传感器扫描周围环境,并将环境信息处理成能够理解的数据。当机器人遇到障碍物时,会通过转向函数进行调整,从而避免碰撞。随机覆盖法可以通过优化策略,使得机器人在绝大部分情况下都能够保证对区域进行充分覆盖,从而达到预期的清扫效果。随机覆盖法可能会导致覆盖率低、重复率高和能耗过大等问题,论文因此对随机覆盖法作出了改进。
本设计采用改进的随机覆盖法-内螺旋逻辑路线对区域进行整体清扫:
如图4-2所示,扫地机器人按照图上的方式清扫一周为一次清扫过程,则清扫一遍需要4次清扫过程。假定扫地机器人的机身长度为a,机器人需要清扫的房间的长宽分别为L、H(L、H接近于房间长宽),每次清扫中机器人按照外圈向内螺旋行走,螺旋的间距等于机器人的长度a。为了判断清扫是否结束,可以根据初次清扫模式测定的区域长、宽L、H与内圈行走轨迹宽度a相除的结果来判断,结果的商为机器人在长、宽方向上所需的清扫次数,如果存在余数则表示在清扫的房间还有一块宽度小于a的矩形区域没有进行清扫。
其数学描述如下:
设 f={α,β|α,β为扫地机器人在长宽各方向上需要进行的清扫次数},g(α,β)表示房间是否还存在没有进行清扫的区域。

(4-1)
g(

)=0表示房间内的所有区域全部清扫完,而g(

)=1则表示房间内还有没有进行清扫的区域。
螺旋转弯方向的固定可以使机器人在转弯时不再随意转向,而是按照预设的路径进行转弯。这样可以避免机器人随意转向导致的重复覆盖或漏扫等问题,从而提高整体的清扫效率和覆盖率。
第5章 系统的仿真与调试
5.1系统控制电路仿真
本设计的系统控制电路采用Proteus8.11进行仿真,使用keil5编写程序代码,Proteus是一款功能强大的电路设计和仿真软件,由英国Labcenter公司开发。该软件具有原理图设计、仿真分析、PCB布局等多种电路设计和制造功能,可以帮助电子工程师、电路设计师、学生和爱好者快速、准确地设计和验证各种电路和系统方案。支持Keil C51 uVision2和MPLAB等第三方软件编译和调试环境集成,可以提供更为灵活和便捷的开发方式,让用户更加舒适地进行电路设计和制造。
系统控制电路仿真步骤:
(1).搭建仿真图:
在Proteus中选择相应的元件库,将各个电子元件(例如电机、编码器、传感器等)拖到工作区,并将其连接起来,以搭建一个完整的仿真电路图。
(2).载入程序文件:
将需要仿真的STM32F103ZET6的程序代码编写好,并通过keil5生成HEX文件。在Proteus中将载入HEX文件,从而实现对STM32F103ZET6的程序代码进行仿真。
(3).设定仿真参数:
在启动仿真之前,用户需要进行一些设置,例如调节仿真速度、CPU时钟频率等等,以达到合适的仿真效果。
(4).启动仿真
一旦设置完成,单击Protues的仿真启动按钮,仿真器即会开始启动。仿真器会读取STM32F103ZET6的程序代码,根据程序中的指令对各个电子元件进行仿真,以模拟整个系统的运行过程。
(5).结束仿真:
仿真结束时,在屏幕上显示仿真结果。可以根据仿真结果来评估电路的性能、准确性和可靠性,以进一步完善电路设计。
仿真电路图如图4-1所示。

图4-1 系统仿真硬件电路图
5.2仿真结果展示
系统采用两个晶振电路提供外部时钟,使用L298N驱动模块实现对电机的驱动;复位电路实现对系统电路的复位;通过电压转换电路将12V电压转换为5V为电机供电。在仿真图中使用了一些功能按键来控制扫地机器人的启动、停止、前进、后退、左转、右转、红外避障、弓字行走的功能。
本系统采用简单的按键操作,实现电机的启动、停止、前进、后退、左转、右转、红外避障功能,由于时间仓促,在判断按键过程,我们只考虑了只有一个按键按下的情况。
当连接好仿真图和载入STM32F103ZET6的执行文件后,单击Proteus的仿真启动按钮时,Proteus会开启一个仿真器,从而开始对本系统进行仿真。其运行流程如下:
(1).闭合启动/停止开关时,电机启动并开始正转,断开启动/停止开关时,电机停止转动,如图4-2所示。

图4-2 电机启动与停止
(2).按下后退键时,电机反转,按下前进键时电机正转,如图4-3所示。

图4-3 电机正转与反转
(3).按下左转按钮时,上方的电机顺时针方向转动,下方的电机逆时针方向转动,实现扫地机器人的左转,按下右转按钮时同理。如图4-4所示。

图4-4 扫地机的左转与右转
(4).在红外避障模块,闭合左避障开关,即模仿扫地机器人左侧有障碍物,机器人会右转避开障碍物。如图4-5所示。

图4-5 扫地机的左避障
(5).在红外避障模块,闭合右避障开关,即模仿扫地机器人右侧有障碍物,机器人会左转避开障碍物。如图4-6所示。

图4-6 扫地机的右避障
(6).闭合弓字行走开关时,直行5s之后左转,然后直行3s之后再左转,在左转后直行5s然后右转然后直行3s然后右转直行5s之后左转,然后直行3s之后再左转,在左转后直行5s实现弓字行走。
结论
本设计研究了基于STM32的扫地机器人控制系统,包括控制系统组成、路径规划算法、硬件电路设计以及软件功能实现。使用超声波和红外传感器获取环境信息,通过编码器、MPU-6050等数据结合路径规划算法来控制扫地机器人,提高其覆盖率和清洁效率。为了提高行驶精度,采用了PID控制算法,减小了硬件误差和环境干扰。
主要研究内容如下:
- .查阅文献和相关资料,提出了一种低成本的扫地机器人路径规划方案,适用于各类扫地机器人的技术原理和性能设计。
(2).基于STM32F103ZET6单片机完成了各种器件选型和硬件电路设计。包括直流电机、光电编码器、超声波传感器、红外传感器、运动传感器等模块的设计,为后续软件设计提供了基础。
(3).完成了各个硬件驱动设计,包括电机、编码器、超声波传感器、红外传感器和运动传感器等。实现了PID控制算法和路径规划算法的软件设计,并确保扫地机器人的稳定运行。
(4).完成了扫地机器人的仿真工作,通过仿真验证了硬件电路设计的可行性和有效性。在仿真中,充分测试了电机、传感器等各个模块的功能和性能,确认了扫地机器人的运行稳定性和正确性。通过仿真,验证了系统的合理性并解决设计中的潜在问题。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐




所有评论(0)