智能循迹车及其路径规划的设计

2018-09-12 11:17苟淞周加乐刘宏
科技创新与应用 2018年22期
关键词:路径规划算法

苟淞 周加乐 刘宏

摘 要:本设计采用Arduino和STM32单片机最小系统,运用光电和运动姿态传感器,结合PID自动控制算法和A*路径规划算法,通过设计系统运行的总体框架,开发出了一款在具有基本自主循迹功能的基础上,结合了路径规划能力的智能循迹车。通过在竞赛中实际检验,本设计实现了在迷宫地图中的全场定位以及路径规划中的预设巡航行驶和最短路径行驶的功能,并达到了较佳的控制效果。本设计方案亦可作为相关机器人竞赛项目的基础参考方案。

关键词:智能循迹车;路径规划;A*算法;Arduino;STM32

中图分类号:TP23 文献标志码:A 文章编号:2095-2945(2018)22-0092-02

Abstract: This design adopts Arduino and STM32 single chip microcomputer minimum system, uses photoelectric and motion attitude sensor, combines PID automatic control algorithm and A* path planning algorithm, through the design of the overall framework of the system operation, and based on the basic autonomous tracking function, an intelligent tracking vehicle is developed, which combines the ability of path planning. Through the actual test in the competition, this design realizes the full field positioning in the labyrinth map and the preset cruising and the shortest path driving in the path planning, and achieves the better control effect. This design scheme can also be used as the basic reference scheme of the related robot competition projects.

Keywords: intelligent tracking vehicle; path planning; A* algorithm; Arduino; STM32

引言

在近年来的各类机器人比赛中,智能循迹车因其具有技术性、竞技性和创新性,而成为了一个热门项目。智能循迹车系统结合传感器学、自动控制、嵌入式、路径规划技术等于一体,集成程度高,使用的算法较为多样,能够体现开发者的创新水平。路径规划技术是循迹车自主导航行驶的核心技术,运用了该技术的智能循迹车或自走机器人可以按程序设定完成规定路径巡航和自主探索两点之间的最短路径等任务。在众多的移动机器人路径规划算法中,A*算法[1]已得到广泛应用、验证以及推广。本设计结合循迹控制和路径规划,运用了PID控制算法[2]、运动传感器姿态解算[3]、全场定位和A*路径规划,综合达到了预期控制效果。

1 智能循迹车设计分析

1.1 智能循迹车设计要求

设计智能小车实现能够在白色底黑色线(25mm宽)地图上以自动循迹行驶为基础,完成按任意预设路径巡航行驶和探索两点间最短路径行驶的任务。地图如图1。

1.2 智能循迹小车硬件组成

1.2.1 微控制器

本设计使用Arduino Mega 2560为主控制器,这是一款主频16MHz的8位AVR核心处理器,主要负责循迹控制和路径规划控制。辅助处理器选用了STM32F103T8,ARM 32-bit CortexTM-M3内核,主频72MHz,凭借其较快的运算速度,负责解算姿态传感器得到的数据,并将解算得到的最新姿态数据通过串口通信的方式发送给Arduino Mega 2560。

1.2.2 传感器

根据设计需求选用两种类型的传感器,一类是用于检测白底黑线地图的红外傳感器;另一类是获取智能小车即时方向姿态的HMC5883地磁传感器。

(1)红外反射传感器采用6个TCRT5000组成的横排阵列,通过6个传感器返回的不同数值组合,进行循迹运动的PID控制和路径规划的节点识别和判断。

(2)HMC5883模块包括先进的HMC118X系列磁阻传感器,附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在1到2度,为智能小车在路径规划中提供精确的方向数据。

联合上述两类传感器数据,实现了智能循迹车在地图上的全场定位。

1.2.3 驱动部分

智能小车采用三角底盘布置,前万向轮,后两轮独立驱动,L298N驱动两个直流减速电机,通过双H桥电路,实现由Arduino Mega 2560发送的PWM信号来调节左右电机的转速,加以增量式PID控制算法,从而控制智能循迹车的运动。

1.3 系统运行总体构架

根据智能循迹车的基本功能,设计了如下系统运行框架,如图2所示。

2 路径规划

路径规划技术需建立在以下三大条件的基础上:第一要建立地图模型;第二要获取自身即时位置坐标;第三有合理的路径规划算法支持。在本设计中,路径规划根据其功能分为按预设路径行驶和按最短路径行驶。

2.1 按预设路径巡航行驶

此功能的实现,需要小车通过地图信息以及传感器数据进行全场定位。智能小车遍历地图全局,从地图左下角到右上角,将读取到的信息构建二维数组a[11][9]存储地图节点(黑线横纵交点记为一个节点)信息,根据地图实际情况一共记录了78个有效节点。

按预设路径行駛流程:首先以不同标志位代表小车的前进、左转、右转和调头的操作,将预设路径按预设顺序的标志位数组存储。其次,小车通过记录节点序号和小车指向数据进行全场定位,实现节点与数组中的标志位一一对应,从而实现按预设路径行驶。

2.2 按最短路径行驶(A*算法)

本设计中的智能机器车最短路径行驶部分实际运用了A*算法。A*算法是一种静态路网中求解最短路径最有效的直接搜索方法,使用评价函数f(n)=g(n)+h(n)考察节点n的代价, f(n)代表从起始节点经节点n到目标节点的路径长度估计;g(n)代表从起始节点到达当前节点的实际路径长度;h(n)代表从节点n到达目标节点的最短路径。算法实现的程序中,用OPEN列表存放新生成的节点,CLOSE列表存放将要拓展和已拓展的节点。求解最短路径程序流程图如图3所示。

3 结束语

智能循迹车采用Arduino和STM32单片机作为控制核心,辅以光电传感器和运动姿态传感器,达到了设计目的。本文重点分析了智能循迹车中路径规划的实现方案,对A*算法的具体应用流程进行了总结,在循迹基础功能上,实现了全场定位、按预设路径巡航和最短路径探索。通过在竞赛中对该设计进行应用和验证,进一步证实了本设计方案具有一定的基础性和通用性。

参考文献:

[1]Hart P, Nilsson N, Raphael B. A Formal Basis for the Heuristic Determination of Minimum Cost Paths[J]. IEEE Transactions on Systems Science and Cybernetics,1968,4(2):100-107.

[2]曹平军,曲林伟,王强,等.某驱动步进电动机增量PID控制研究[J].舰船电子工程,2017,37(08):162-164.

[3]王孚贵,朱兆优,李星,等.基于STM32的MPU9255姿态解算算法的实现[J].电子世界,2017(22):69+71.

[4]李阳,卢健,何耀帧.基于ROS系统自主路径规划与避障小车的研究[J].科技风,2018(04):248.

[5]范县成,孙新柱,房稳,等.迷宫机器人走迷宫算法仿真设计[J].安徽工程大学学报,2017,32(01):44-49.

猜你喜欢
路径规划算法
Travellng thg World Full—time for Rree
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
清扫机器人的新型田埂式路径规划方法
自适应的智能搬运路径规划算法
基于B样条曲线的无人车路径规划算法
基于改进的Dijkstra算法AGV路径规划研究