“U转法”在基于STM32的微电脑鼠迷宫探索中的应用

2022-12-21  


本文引用地址:

0 引言

本质上就是个微小的智能机器人,个子只有鼠标的大小,有着4 个小轮子,依靠微控制器、传感器和机电运动部件,能够直行、转弯、后退、加速、减速、避障等十分灵活自由地行走。如果把它放置在一个由许多围墙和死胡同构成的迷宫中,通过上各种传感器的测量、分析、比较,能够正确地周围的环境并自动记忆,依靠人工智能算法自主判断选择合适的路径,控制着轮子行走的方向和速度,从而保证用最少的时间快速到达预先设定的目的地[1-4]。因此,一只优秀的需要具有环境感知能力强、数据分析处理功能强、算法智能、响应快速、冲刺高速、行走精确、控制自如等特点。一只完整的电脑鼠应该包括微处理器系统、传感器电路、电机驱动电路、智能算法等几个部分,如果微电脑鼠想用最短的时间到达预定的目标,那么,其必须对迷宫进行有效的,对路径进行最佳的规划,在硬件结构和功能区别不大的情况下,最佳的判断、选择最优的路径就意味着耗用最少的时间,因此,一个智能算法就是微电脑鼠在比赛中获得成功的核心要素之一。

迷宫时间是评判微电脑鼠是否优秀的一个重要衡量指标,迷宫时间的长短在相当程度上取决于智能算法,算法对微电脑鼠的重要性不言而喻。一种优秀的算法,能够使微电脑鼠在迷宫探索中,找到一条最短的路径,并在最短的时间内到达目的地。

早期的迷宫一般是木制材料制成,为一个正方形,尺寸是18 cm×18 cm,内部分成16×16 格。随着集成电路技术、现代传感与测量技术、现代通讯技术和AI 算法的不断发展和进步,迷宫的尺寸变成了9 cm×9 cm,内部分成了32×32 格,即1 024 个小格子,如图1 所示,不难看出,新的迷宫有更多的岔路和死胡同,周围的环境变得更加复杂,任务的完成变得更加具有挑战性,在相当程度上增加了微电脑鼠到达目的地的难度。

image.png

图1 迷宫二维结构

将微电脑鼠放置在迷宫左下角的起点,坐标(0,0)的位置,打开微电脑鼠的电源开关,微电脑鼠将全程独立自主地到达终点。在这个过程中,微电脑鼠身上的传感器类似它的“眼睛”,用来准确获取周围的环境信息并传输给微处理器;微处理器类似它的“大脑”,需要迅速进行信息处理并作出准确判断,通过各种智能算法,在最短的时间内、正确地解开由1 024 个迷宫格组成的复杂迷宫,寻找到预设的目标位置,快速找到1 条从起点到达终点的最佳路径,然后以最合理的速度、在最短的时间内到达目标位置。值得注意的是,微电脑鼠在迷宫探索过程中应随时观察周围环境,获取自身的位置信息以及周围挡墙的环境信息,并实时将信息传递给微处理器,便于其及时处理和判断,同时向控制器发出指令,控制器根据指令参数来不断执行前进/ 后退、加速/ 减速、左转/ 右转等运动控制,使其按照选择的规划路径和适当的运动参数探索行走。1 只优秀的微电脑鼠必须具有良好的运动控制能力、周围环境的感知能力、信息的判断和处理能力,以及优秀的路径算法,迷宫时间是其中一个重要的衡量指标,迷宫时间的长短在相当程度上取决于智能算法,因此,在某种意义上,可以说算法就是微电脑鼠的灵魂。

1 “”探索

在微电脑鼠的算法方面,有众多的学者进行了研究,如电脑鼠走迷宫的控制算法(郑伟等,2016[5]),基于向心法则和向点法则的深度优先法和洪水填充法相结合的智能搜索算法(王斌等,2011[6]),运用概率距离将迷宫进行划分并对概率距离和标定各区域进行算法填充(薛艳,2020[7]),在参考这些研究的基础上,本文对回转探索法(简称“U 转法”)进行了研究,实现了微电脑鼠在迷宫探索中的有效应用。

在迷宫中,微电脑鼠的行走过程是在一边探索一边根据接收的指令快速移动,如图2 所示,假设在行走过程中遇到这样一段线路环境,那么当前坐标点(x,y)将传送到微处理器中并被存储起来,随后,控制器发出指令,微电脑鼠开始探索行走的路径,特别是转弯的路径探索。

image.png

图2 线路环境

微电脑鼠的一般运动轨迹如图3 所示,在这样的环境下,微电脑鼠会竖直向上直行,遇到前方有障碍物体时,会90° 右转向右继续行走,然后又遇到前方障碍物体时,会继续90° 右转向下行走,再次遇到前方挡墙时,会90° 左转向左继续行走,然后又遇到前方挡墙时,又会继续90° 左转向上行走,如此反复,直到走出为止,从图3 可以发现,一般情况下,微电脑鼠会选择这样的一条行走路线,那么它行走的距离就变得更加长了,另外,在行走的过程中,它还需要不断地启动、加速、减速、停止、转向……,这样的话,行走的时间也就毫无疑问的增加了。

image.png

图3 一般运动轨迹

为此,本文对微电脑鼠的连续转弯方法进行了深入探索,提出了一种连续两次90° 转弯的回转探索法,因其路径类似字母U,简称“U 转法”,并进行了实验验证,结果显示:微电脑鼠在迷宫探索中加入了U 转法后,不仅探索路径缩短了,而且微电脑鼠到达终点的时间也减少了。思路如下:微控制器接收到传感器发送过来的周围环境信息,将其转化为轮子需要行走的位置、速度和加速度参数,然后与FPGA 器件进行通讯,FPGA 器件结合光电编码器等的反馈,生成控制直流电机运行的PWM波,推动微电脑鼠在不断地探索中行走。

1671595789825704.png

图4 右侧回转“”原理图

具体原理描述如下:当微电脑鼠一边探索一边向前行走时,假设在行走过程中遇到如图2 所示的一段线路环境,微电脑鼠将按照曲线运动轨迹分段进行探索,如图4 所示。探索行走的路径分成6 段,分别是R90_Leading、R90_Arc、R90_Passing、R90_Leading、R90_Arc、R90_Passing。微控制器首先把行走直线很短的距离R90_Leading 按照探索到的环境参数转化为位置参数、速度参数以及加速度参数指令值,然后与FPGA器件通讯,FPGA 控制着微电脑鼠的左右轮,FPGA 再结合电机和电机上的光电编码器和各种传感器的反馈,生成控制微电脑鼠轮子运动的PWM 波,PWM 波经驱动桥放大,控制着微电脑鼠轮子的速度和加速度。微处理器结合传感器的各种反馈,实时更新指令并传输给FPGA,实时动态微调微电脑鼠的姿态,确保微电脑鼠行走在两边挡墙的中心线;当到达既定位置时,传感器参考值R90_FrontWallRef 开始工作,进行误差补偿,主要是为了防止外界的干扰,补偿结束后,微控制器会按照不同环境要求,把曲线运动轨迹R90_arc 转化为速度和加速度参数,通过与FPGA 通讯进行指令值传送,然后,FPGA 再结合电机和电机上的光电编码器和各种传感器的反馈,生成控制微电脑鼠轮子运动的PWM波,PWM 波经驱动桥放大,控制着微电脑鼠轮子的速度和加速度实现回转探索。在微电脑鼠回转探索过程中,微处理器结合传感器的各种反馈,实时更新指令并传输给FPGA,实时动态微调微电脑鼠的姿态,确保微电脑鼠按照最佳的路径行走;当到达既定位置后,微电脑鼠已经完成向右旋转90° ,进入到R90_Passing 段,微控制器把行走直线很短的距离R90_Passing+R90_Leading 按照探索到的环境参数转化为速度和加速度参数指令值,然后与控制着微电脑鼠左右轮的FPGA 器件通讯,FPGA 再结合电机和电机上的光电编码器和各种传感器的反馈,生成控制微电脑鼠轮子运动的PWM波,PWM 波经驱动桥放大,控制着微电脑鼠轮子的速度和加速度。微处理器结合传感器的各种反馈,实时更新指令并传输给FPGA,实时动态微调微电脑鼠的姿态,确保微电脑鼠行走在两边挡墙的中心线;微电脑鼠完成R90_Passing 直线行走,进入到R90_Leading 段,到达既定位置时,传感器参考值R90_FrontWallRef 开始工作,进行误差补偿,即将完成R90_Leading、R90_Arc、R90_Passing 的路径转换,轨迹转换的原理与上述R90_Leading、R90_Arc、R90_Passing 路径转换相同,这样一来,就完成了右侧回转180° 。

左侧回转的转换方法如图5 所示,与右侧回转同理,探索行走的路径分成L90_Leading、L90_Arc、L90_Passing、L90_Leading、L90_Arc、L90_Passing 六段,分两次完成L90_Leading、L90_Arc、L90_Passing 的路径转换,从而完成左侧回转180° 。

1671596054729743.png

图5 左侧回转“”原理图

左侧回转完成后再继续右侧回转,如此往复,直至到达预定的位置,这就是U 转法的具体实现过程。

1671596102293144.png

图6 微电脑鼠

2   硬件设计

本文实验所用的微电脑鼠如图6 所示,为了满足微电脑鼠探索时行走的稳定性和快速性的要求,采用了ARM+FPGA的双核控制的先进设计理念,FPGA有非常快的数据处理能力,可以来处理直流伺服系统的各种算法,这样可以适当减轻ARM 的工作压力,实时响应各种中断,实现了数据通信和存储的实时同步,增强了抗干扰能力。本设计的整个系统框架包含了硬件系统和软件系统两个部分,其中,硬件系统由微处理器、电源电路、传感器电路、电机驱动电路以及车体结构系统等部分组成。在完成相应的硬件、软件制作以及功能测试后,就可以进行系统测试,并对结果进行评估。系统硬件结构组成如图7 所示。

1671596156478590.png

图7 系统硬件结构

本设计的微控制器选用的是STM 公司生产的IGT6, 它是基于ARM Cortex-M4 内核的32位高性能微控制器,频率高达180 MHz,集成高速嵌入式存储器,以及3 个12 位A/D 转换器、2 个D/A 转换器、1 个低功耗的实时时钟(RTC)、12 个通用16 位计时器、2 个通用32 位计时器等强大的I/O 端口和先进的外设,Cortex-M4 支持所有ARM 单精度数据处理指令和数据类型,实现了一套完整的DSP 指令,能够满足数字信号控制和处理的需求,提供了非常灵活多样的解决方案,在多轴伺服电机控制中得到了广泛的应用,这些特点满足了微电脑鼠在探索以及冲刺阶段的信号处理需求,基于上述分析,本设计选用了IGT6 微控制器。

FPGA(现场可编程门阵列)是优秀的可编程器件,可解决原来的可编程器件门电路有限的缺点,用于ASIC(专用集成电路)的半定制电路,可以根据设计需要,在短时间内设计出特定的ASIC,降低成本、缩短开发周期、可重复使用,非常适合高性能的多轴伺服系统的控制需求,因此,本设计采用了ACTEL 公司设计的FPGA 器件——A3P250。A3P250 的工作和停止受微处理器的控制,其通过I/O 接口与微处理器实时进行数据交互。

U 转法中,对微电脑鼠探测周围环境参数提出了更高的要求,为了提高迷宫探索的精密度和准确度,本文实验所用的微电脑鼠采用基于OPE5594A 红外发射管和TSL262 红外接收管的红外传感器,微电脑鼠传感器如图8 所示,1、3、4、6 都是基于OPE5594A和TSL262的红外发射和接收对管传感器,其中,传感器1、6共同作用探测行走前方的挡墙障碍物,传感器3 探测微电脑鼠左边挡墙障碍物,传感器 4 探测右边挡墙障碍。

image.png

图8 微电脑鼠传感器结构图

传感器结构的这样排列,有助于1 和6 在微电脑鼠加速前对于前方环境的探测和判断,防止出现误加速,如果传感器1 和6 发现运动前方出现了挡墙障碍物,就会立刻向微控制器发送加速错误中断请求,从而封锁电机的PWM 驱动信号,反之,微电脑鼠将进入加速运动;同时,传感器3 和4 相互配合,确保微电脑鼠行走在两边挡墙的中心线。如果传感器1、3 和6 发现前方出现挡墙障碍物,会将环境信息及时的传递给微处理器进行处理,然后与A3P250 进行通讯,生成控制电机的PWM 控制信号,执行右转1/4 圆弧的操作;如果传感器1、4 和6 发现前方出现挡墙障碍物,微处理器会及时接收到环境信息,然后与A3P250 进行通讯,生成控制电机的PWM 信号,执行左转1/4 圆弧。本文实验所用的微电脑鼠硬件设计中,还加入了陀螺仪,如图8所示的G1,其主要目的是为了提高微电脑鼠在行进过程中的稳定性,对微电脑鼠的位置坐标能够进行实时的补偿,完成姿态的调整,使其重新回到预先设定的中心位置,防止其在行进过程中出现大幅度偏离中心位置的现象。

3 软件设计

本文实验所用的微电脑鼠,在准备开始迷宫探索的时候,将其放置在迷宫的起点(如图1 所示),处于准备状态,一旦触发控制器接受到外界指令,微电脑鼠将依赖于4 个传感器探测的环境信息,根据实际的导航环境沿着预判路径快速前进, 根据探索到的环境参数将其转化为轮子所需行走的距离、速度和加速度参数,然后与A3P250 进行通讯,A3P250 根据这些参数再结合光电编码器等的反馈信息,生成电机的PWM控制信号,使得微电脑鼠在迷宫探索中不断前行。基于“U 转法”,即回转探索法的程序设计,如图9 所示。由于篇幅有限,程序设计中涉及的“直线探索”和“S 法探索”【8】就不在此讨论了。

1671596335300899.png

4 结束语

通过实验,本文所用的微电脑鼠在迷宫探索时,行走在两边挡墙的中心线,能够沿着预设的曲线方向运行,这说明红外传感器组和陀螺仪对微电脑鼠的位置坐标能够进行实时补偿,STM32F429 能够接收反馈并实时进行动态调整,实现精确补偿,U 转法的应用,进一步减少了微电脑鼠的迷宫探索时间。

参考文献:

[1] CHEN N. A vision-guided autonomous vehicle an alternative micro mouse competition[J].IEEE Transactions on Education, 1997, 40(4): 253-258.

[2] TETTA CM .The evolution of the micro mouse competition[J].IEEE Potentials,1986,6(4): 32-37.

[3] XIN Y. Research and realization on micro mouse for maze searching in coalmine[M].Coal Technology,2010:60-69.

[4] JIN Y Y, LIU K S, REN Y H. Wheeled maze robot design based on ranging infrared sensor[M].Microcontrollers & Embedded Systems, 2013:1-5.

[5]郑伟,张永飞.基于IEEE标准电脑鼠走迷宫控制算法研究与优化[J].天津职业大学学报,2016(3):73-78.

[6]王斌,张卫钢.基于IEEE标准的电脑鼠走迷宫的智能算法研究[J],电子设计工程,2011(12):42-45.

[7]薛艳.概率距离的电脑鼠走迷宫融合设计分析[J].电子制作,2020(22):3-9.

[8]朱利军,王应海.双核微微鼠迷宫探索的设计与实现[J].电脑知识与技术,2021(30):20-23.

(本文来源于《电子产品世界》杂志2022年12月期)

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。