卷积神经网络控制巡线智能车的技术方案

发布者:andyliow1980最新更新时间:2020-07-08 关键字:卷积神经网络  智能车  CNN神经网络  控制算法  单片机 手机看文章 扫描二维码
随时随地手机看文章

简介


Michal Nand[1] 在网站 HACKADAY.IO 上通过博文 Motoku Uprising  Deep Neural Network 介绍了他利用卷积神经网络来帮助控制巡线智能车更加平稳快速运行的技术方案。特别是对神经网络的结构、训练、部署等方面进行了详细的介绍。


智能车的任务相对比较简单,就是在平面赛道上,沿着彩色导引线(大部分是黑色)从出发点运行到终点并折返到出发点。其中赛道上一段有一块砖头作为障碍物。

 

▲ 利用神经网络控制的巡线智能车


在作者的方案中,智能车运行大部分控制算法都采用了常规的 PID、逻辑判断都算法。他使用了 CNN 根据车模运行过程中,通过传感器搜集到的二维路面数据来对赛道的种类进行分类判断,并通过调整车模速度来适应不同赛道的情况,达到又快又稳的目的。


□ 机械结构


1. 硬件构成


这款智能车的硬件配置包括有:


嵌入式控制器:STM32F303,Cortex M4F 72MHz


电机驱动器:使用了 TI DRV8834 低电压双相步进电机驱动器


电机型号:Pololu HP 电机,减速齿轮箱 1:30,带有磁编码器


轮胎:Poloku 28mm 的轮胎,高黏着力


惯性导航器件:LSM6DS0


巡线传感器:八个绿光(540nm)光电传感器,三个红外障碍日干起


电源:180mAh, LiPol 2S


编程结构:使用 USB 通过 Bootloader 完成程序下载。

 

▲ 智能车的硬件构成


2. 组成器件

 


□ 控制算法


1. 控制调试界面


“磨刀不误砍柴工”。作者还是利用 OPENGL 开发了用于调试的应用软件。可以通过界面:


显示八个巡线光电传感器的原始数值


显示电机的状态:速度、编码器值


显示惯性传感器的状态;


显示神经网络分类处理过程


显示通过串口获得的 原始数据

 

▲ 编程调试界面


2. 智能车控制软件要点


智能车软件的主要的功能和指标为:


通过二次插值算法,通过八个光电传感器获得更加精确的赛道到引线位置


主程序控制频率为:200Hz


方向调节器:采用 PD 进行方向控制


电机速度控制:采用双串级 PID 控制完成电机速度控制


对赛道到引线预测:在直线赛道加速前行;在曲线拐弯时刹车慢行;通过深度神经网络进行赛道识别和控制


控制软件使用 C++编程


神经网络训练:采用 GPU 加速网络训练

 

▲ 智能车的软件控制框架


3. 神经网络用于引导线的预测


利用深度卷积神经网络完成对导引线的预测和分类:


根据导引线的种类控制运行速度:直线时快速通过,曲线时减速慢行


使用 DenseNet:稠密连接卷积神经网络完成对赛道引导线类型的分类


输入数据为 8×8 传感器数据矩阵。总共有八个配列成直线的光电传感器,使用运行前后相邻八条数据组成 8×8 的数据矩阵


输出物种曲线类型:两种右拐,两种左拐,一种直线

 

▲ 神经网络结构图


训练样本采用人工生成的仿真数据训练神经网络:


训练样本的个数:25000


测试样本的个数:5000


数据增强:Luma 噪声, White 噪声

 

▲ 输入训练数据样本


下图给出了 DenseNet 的网络结构。由于是部署在单片机 STM303 中允许,作者在网络的鲁棒性以及运行速度方面进行了权衡。网络运行频率为 200Hz,所以网络执行时间必须小于 5 毫秒。为了达到这个目的,作者选择了 DenseNet 来提高计算效率,它比纯卷积神经网络使用更少的卷积核。

 

▲ 神经网络的结构


最终网络的识别准确率达到了 95% 的精度。

 

4. 网络最终结构


CNN 神经网络的结果参数如下:
 

 

▲ 神经网络的各层结构参数


5. 将网络部署到单片机中


为了能够在 32 位单片机中执行神经网络,对网络进行了如下的改动:


将所有的浮点数修改成 int8_t


将尺度权重转换到 8bit 范围


使用双缓存技巧节省内容,公用两个内存缓存来计算所有层的数据

 

▲ 双内存缓存的模式


※ 结论


通过本文作者介绍的车模控制中的 CNN 网络的应用,了解了对于嵌入式单片机中使用神经网络的一般方法。


本文中的神经网络应用还属于辅助控制方面。也许通过部署更加强大算力的单片机,使用更加复杂的算法可以完成智能车自主学习的目标。这方面也为今年全国大学生智能汽车竞赛中的 AI 电磁组给出了一定的参考意义。


参考资料


[1]Michal Nand: https://hackaday.io/michalkenshin


关键字:卷积神经网络  智能车  CNN神经网络  控制算法  单片机 引用地址:卷积神经网络控制巡线智能车的技术方案

上一篇:现代向瑞士交付首款燃料电池重型卡车XCIENT 续航达400公里
下一篇:本特勒推出电加热催化转化器 可满足欧盟EU-7排放标准

推荐阅读最新更新时间:2024-11-03 05:52

基于AT89C2051单片机的无线门铃报警器
本章向网友介绍一款集无线门铃和无线防盗报警器于一身的无线门铃报警器的制作,由于采用了AT89C2051单片机作为中央处理芯片,使得该系统的功能扩展比较方便,对于整个系统如需改变某种设置,只要更改相应的软件即可。在本设计中,我们将发射器发送的数据进行编码,只有收到与接收机配套的遥控器发射的信号时,接收机才会做出反应。当有人按门铃时,系统播放动听的音乐声,当需要作为防盗报警器用时,只要按动手中的遥控器将报警器设置成布防状态,此时报警器“嘟、嘟”响两声后便进入布防状态,这时只要有人在红外线探头监控范围内走过时,系统就发出响亮的110警车报警声。   一、硬件设计   电路原理图如下图所示,主要由无线接收、数据解码、数据处理、报警电路
[单片机]
基于AT89C2051<font color='red'>单片机</font>的无线门铃报警器
关于MSP430单片机的大数组初始化
最近在做MSP430的TFT(ST7735S驱动芯片)的显示屏。在ASCII字库数组初始化时遇到无法编译的问题。程序编译后无法进入主函数,CCS提示如下: 到网上找了许多资料,终于发现了解决办法。解决办法来自 根据TI提供的方法,就是在main()之前加入一个初始化函数,CCS为 int _system_pre_init(void) { /* Insert your low-level iniTIalizaTIons here */ /* Disable Watchdog TImer to prevent reset during */ /* long variable initialization sequences.
[单片机]
关于MSP430<font color='red'>单片机</font>的大数组初始化
基于SPMC75系列单片机的高性能三相变频电源
1 引言   变频电源是一种电源变换设备,因具有输出波形纯正、输出电压稳定、输出频率和输出电压可调等优点。其良好的性能,在传感、仪器仪表、工业控制等领域有广泛应用。本文主要介绍利用SPMC75F2413A和IPM(PS21865A)实现高性能三相变频电源的开发。 2 芯片特性简介   SPMC752413A是μ’nSP%26;#8482;系列产品的一个新成员,是凌阳科技新推出的专用于变频驱动的16位微控制器。其拥有性能出色定时器和PWM信号发生器组。   SPMC75F2413A在4.5V"5.5V工作电压范围内的工作速度范围为0"24MHz,拥有2K字SRAM和32K字闪存ROM;最多64个可编程的多功能I/O端口;5个通用16位
[应用]
基于51单片机+SG90舵机
基本介绍 舵机的分类 大致分为以下三种吧 只是我现在用过就三种 。 180° 有限位 (不上电 只能转180度 真正转也就是180° ) 180° 无限位 (不上电 能转360° 但是真正转也就是180°) 360° 无限位 (这个就是上电不上电都能转360°以上) 我这里用的是 180° 无限位的舵机 首先看看一下图片: 接线 接线其实很简单。 代码 我用的是STC89C52 main.c #include reg52.h #include delay.h unsigned int count; //次数标识 unsigned int angle=5; //角度标识 sbit pwm =
[单片机]
基于51<font color='red'>单片机</font>+SG90舵机
基于PIC微控制器的LED驱动控制电路设计
1 引言   led作为一种供电电压低,功耗小,寿命长,无辐射的新型光源,应用领域日益扩大,成为固态照明的关键光源。许多固态照明应用常采用智能控制电路系统来驱动LED以履行各种功能和任务,譬如为确保流经LED的电流不受供电电压波动的影响维持恒定,从而使LED的亮度无明显变化的亮度调节就是控制电路系统的任务之一。亮度调节涉及电流调整与调光控制。控制电路系统的另一任务是失效识别。因LED具有很强的温度相关性,大多失效又与温度有关,故控制电路系统应能履行温度补偿。此外,通过硬件选择以适应不同亮度LED组合的驱动也极必要。一块芯片上可集成全部必要硬件功能的PIC微控制器,由于价格低廉,时钟频率高达20MHz,功耗极低和工作温度范围宽
[电源管理]
基于PIC<font color='red'>微控制器</font>的LED驱动控制电路设计
80C152单片机上HDLC通信规程中的应用
    摘要: 80C152单片机的工作原理和特点及其在HDLC通信规程中的应用,给出了它的编程方法,并对其系统误码率进行了分析。     关键词: 全局串行通道 HDLC规律 CRC差错检验 80C152是一种基于MCS-51的高集成度8位微控制器,也是一种通用通信控制器。它既适用于外围系统或器件的智能管理,也适用于低成本,高速串行通信场合。80C152是80C51的派生产品,保留了80C51的所有功能;增加了新的功能和外围电路,包括:一种叫做全局串行通道(GSC)的高速多协议串行通讯接口,两个直接存储器存取(DMA)通道,HOLD/HLDA总线控制,第5、6、7个I/O口。较大的片内RAM容量。因而特别适
[网络通信]
PIC单片机的应用设计技巧
美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是采用内置第二代Flash存储器(40年存储寿命)的微控制器在快速应用方面具有独到之处。由于其易用性和高可靠性,该系列微控制器稳居8位单片机全球出货量之首。PIC系列单片机具有指令集简洁、简单易学、速度高、功能强、功耗低、价格低廉、体积小巧、适用性好及抗干扰能力强等特点,大量应用于汽车电气控制、电机控制、工业控制仪表和仪表、通信、家电、玩具、低功耗的测控应用等领域,在国内越来越受到广大设计者的欢迎,微芯公司的单片机已经成为目前单片机世界的主流产品。 PIC 8位单片机内已经包含运算器、存储器、A/D、
[单片机]
PIC<font color='red'>单片机</font>的应用设计技巧
车规级MCU需求量高速增长,国产企业进展如何?
作为汽车电子领域的关键组件,MCU已被广泛运用到汽车动力总成、底盘控制、车身电子、安全系统、信息娱乐系统以及新能源车辆的电池管理等多个部件或系统中。近年来,受益于智能 电动汽车 渗透率提升,车规级MCU需求量高速增长。 据有关统计,截至2023年底,全球MCU市场规模超过100亿美元,同比增长16.1%。其中,中国市场占比高达41%,由此引发MCU相关厂商纷纷加码布局。 不过,从目前市场格局看,全球车规级MCU市场份额大多由国际巨头所占据,当中,以瑞萨、英飞凌及恩智浦为代表三大厂商占比就超过了63%。 全球车规级MCU竞争格局(图片来源:英飞凌财报截图) 而我们也欣喜的看到,近年来,国内MCU企业发展势头迅猛,兆
[汽车电子]
车规级<font color='red'>MCU</font>需求量高速增长,国产企业进展如何?
小广播
最新汽车电子文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved