APP下载

基于OneNET云平台的Wi-Fi智能循迹避障小车

2020-02-02钱俊然艾凌波应明辉付倩瑶

电子技术与软件工程 2020年17期
关键词:循迹增量小车

钱俊然 艾凌波 应明辉 付倩瑶

(江西理工大学信息工程学院 江西省赣州市 341000)

智能小车是一个含无线通信、路径规划、无人驾驶、环境感知、智能定位、远程控制等功能的综合系统,涉及车辆、计算机、导航、无线通信等诸多交叉学科,可以应用于教育、科研、军事、抢险救灾和无人监视等领域[1],是近年来的研究热点。当前许多高校对智能小车的研发投入了大量的精力,也取得了相应的成果。例如,2007年哈尔滨工业大学利用红外传感器,成功制作了直流电机控制的红外避障小车;2014年中南大学钟海华通过CCD 成功实现了循迹避障小车;2015年哈尔滨工业大学研发成功具有清扫、避障、路径规划功能的扫地机器人。目前关于智能循迹/避障小车的研究已经很多,但是基于OneNET 物联网[2]平台远程控制的智能循迹/避障小车的研究还比较少[3]。

本文对实现的远程控制智能循迹/避障小车进行了介绍,该小车由主控模块、物联网网关模块、物联网、传感器模块、运动模块等组成。主控模块采用STM32F103RC,物联网网关模块采用ESP8266,物联网采用中移物联OneNET 平台[4],传感器采用5 路红外传感[5]、1 路超声波避障传感[6],小车循迹算法采用联合小车运动学分析的增量式PID 算法[7]。下面以系统设计、循迹避障控制原理、系统实现三个方面对小车的实现过程进行介绍。

1 系统设计

智能循迹避障小车的软件采用MVC 的编程思想设计、增量式PID 算法循迹。智能小车工作过程:由无线通信模块与物联网平台建立数据通信,智能小车接收上位机远程下发的命令后,利用自动导航算法规划行驶路线[8],通过传感器感知路况信息并将这些信息传入核心控制单元进行分析处理;通过增量式PID 控制算法对小车电机和舵机进行PWM[9]控制使小车沿4×4 点阵中的黑线前进并绕开障碍物,实现循迹与避障的目的。系统框架如图1所示。

2 循迹避障控制原理

2.1 循迹原理

循迹路面选用4×4 点阵棋盘,从而模拟城市中交错复杂的交通道路。循迹路面由16 个边长为70 厘米白底黑线的正方形组成,其中以内切圆作为小车的转向辅助轨道,为配合小车循迹行驶,设置循迹黑线的宽度为3 厘米。循迹传感器为安装在小车前端的5 路红外模块,利用光在行驶路面下的光反射强度值与系统设置值的对比确定小车的循迹路线[10]。当小车转向或在圆环内行驶时,通过增量式PID 算法和差速小车控制原理对小车电机和舵机进行速度和转向角控制使小车可以在路面上正常行驶。

2.2 避障原理

图1:小车系统框架

图2:小车避障示意图

小车用安装在头部的超声波模块来检测路况信息,若检测到小车运动方向上存在障碍物时,计算小车与障碍物之间的距离。当小车车头与障碍物之间的距离小于d 且大于d/2 时,小车利用增量式PID 算法减速行驶至离障碍物d/2 即图中B 处。根据OneNET 物联网平台设置的目的位置与障碍物位置间的关系,经自动导航算法处理后得出小车的转向方向并借助转向辅助轨道绕过障碍物,实现小车的避障功能[11]。避障示意如图2所示。

图3:PID 控制原理

图4:舵机转向分析图

图5:控制系统框图

图6:数据上传与命令下发流程

2.3 增量式PID运动控制模块

图7:控制监视页面

为保证用户对小车具有良好的远程控制能力,同时小车在行驶过程中具有较高的稳定性和可控性。我们选择增量式PID 算法作为小车的控制算法,增量式PID 算法是在经典PID 算法的基础上发展而来的。经典PID 算法作为大多数控制系统的控制算法,其本质是对误差进行控制。经典PID 算法下的控制系统有3 个控制单元,其中P 为比例单元、I 为积分单元、D 为微分单元,通过比例系数KP、积分系数KI、以及微分系数KD对系统偏差进行调整实现对系统的控制。具体的控制过程如图3所示。

由控制原理图可知r(t)表示系统输入信号,y(t)表示系统输出信号,e(t)表示系统偏差,u(t)则作为PID 控制器的输出信号。通过计算e(t)的微分和积分且与PID 各控制单元进行线性组合,我们就可以得到PID 控制器的输出信号。其表达式如式(1)所示:

但根据我们的研究经典PID 控制算法由于过于依赖对象模型、易于陷入局部极小的特点,所以经典PID 算法存在一定的局限性,难以实现高性能系统的控制。而另一方面,伴随计算机时代的高速发展以及人们对PID 算法的探索,人们开始用采样时刻来计算控制量,用离散的差分代替连续微分的方法,于是数字PID 也就因此诞生了。相较于经典PID,数字PID 更适合于计算机环境下的控制系统[12]。常用的数字PID 算法分为位置闭环控制和速度闭环控制两种。在一般的控制系统中,速度闭环控制具有更高的精度与位置闭环控制相比更有优势。速度闭环控制下只需要一个控制增量信号便可以实现对一个系统进行直接的控制,为了保证足够的精度我们使用足够小的采样周期。式(2)中e(k)为第k 次的采样偏差值,k 为采样次数,为第k 次的输出增量。数字PID 表达式(位置式(2)、增量式(3)所示)如下:

从公式中我们可以看出位置式输出始终和过去的状态有关,而增量式输出为控制量的增量。所以位置式PID 相对于增量式PID 误差较大,同时使用增量式PID 在遇到计算机故障后不会对系统产生较大影响,因此在本次设计中选用增量式PID 作为小车的循迹控制算法。

2.4 自动导航模块

当用户通过OneNET 云平台对小车下发位置坐标指令时,控制单元根据小车当前位置坐标与目的位置坐标结合4×4 点阵进行路径规划。由此实现小车的自动导航功能。

由于在模拟城镇道路时,城镇的交通道路并不是一成不变的,所以本次设计中利用贪心算法[13]作为小车行驶路径的规划方案。贪心算法又称为贪婪算法,是一种只求当前最优解而不求整体最优解的算法。在循迹过程中实现循迹的每一步都是实时规划的,所以使用贪心算法来争取每一步的最优是非常有必要的。但贪心算法由于负反馈的缺失,一旦出错就将导致小车行驶路线出错的问题。因此,为避免此类现象的出现,在边缘位置处加入了变向内侧移动功能进行重新规划路线,避免小车循迹时受路线问题的干扰。

2.5 差速小车控制原理

为实现小车在转弯过程中平稳行驶,我们对小车转弯过程中舵机与内外轮的运动关系建立数学模型进行简单分析。如图4所示。

由几何知识进行换算,可得小车内外轮速度与转向角度的关系表达式,内外轮速度v1、v2如下式所示:

式(4)、(5)中θ 为舵机的控制转角,V 为小车行驶速度,L 为前轮与后轮之间中心距离,T 为小车后轮之间的距离,R1 为内侧轮子的旋转半径,R2 为外侧轮子的旋转半径。根据建立的数学模型我们可以得出转向角θ 与内外轮速度v1、v2的内在联系,通过C 语言对小车运动关系进行描述得出前轮行驶速度、转向角度和后轮行驶速度的信息。最终该信息经主控单元解析后由增量式PID 对带编码器的电机和舵机进行PWM 控制其行驶速度和转向角,实现小车平稳转弯[14]。控制流程如图5所示。

2.6 云端与系统间的数据交互

系统与Wi-Fi 模块ESP8266 进行数据交互时,首先需要AT 指令集对Wi-Fi 模块进行初始化使用STA(接入点)模式接入网络。其次ESP8266 与OneNET 云服务器建立TCP 连接,对OneNET 云平台下发的命令进行接收。最后由ESP8266 把接收的命令下发至系统并将需要展示的数据使用HTTP 报文形式上传到OneNET 云端[15]。具体数据上传和命令下发流程如图6所示。

3 系统实现

为了使用户可以在PC 网页和手机APP 上对小车进行远程控制,我们使用OneNET 云平台下的应用开发工具,设计一个带监视控制功能的界面。该界面可以显示当前小车位置与小车运动信息,如小车运动速度、运动时间、运动路程,如图7所示[16]。在控制界面中,通过旋钮控制小车的运动位置,图表和表盘显示实时小车运动信息,并将该信息储存于云平台中,通过图形变化可以显示一段时间内小车的运动状态。经过多次实验发现,旋钮改变状态到设备有3s 延时,所以在计算小车运动时间时会产生相应误差。

4 结语

当下基于物联网的开发越来越来广泛了,智能设备与网络的综合运用是目前的开发热点之一。本文设计基于OneNET 的智能循迹避障小车,以STMF103RC 为核心控制单元,物联网网关ESP8266WIFI 模块实现无线通信与数据交互,OneNET 云平台作为上位机实现对小车的远程控制。智能小车通过自动导航算法规划小车行驶路径,5 路红外循迹模块和超声波模块实现循迹避障功能,电机编码器检测当前小车行驶速度、行驶距离等信息,增量式PID算法和差速小车控制原理保证小车平稳行驶。小车采用模块化设计和MVC 编程思想、系统性能稳定、运行速度快。经过实验和测试表明,本次设计的智能循迹避障小车达到了预先设计的目标,实现一个具备自动循迹功能、自动定位功能、超声波避障功能、物联网远程控制功能、物联网远程监控功能的智能小车。

猜你喜欢

循迹增量小车
基于DFT算法的电力巡检无人机循迹检测系统设计
提质和增量之间的“辩证”
大车拉小车
自制小车来比赛
刘老师想开小车
基于单片机的智能循迹小车的设计
两轮自平衡小车的设计与实现
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
基于均衡增量近邻查询的位置隐私保护方法