01 方案概述 1.1 方案设计意义
自行车机器人是两轮静态不稳定和动态稳定机器人的典型代表。开发具有自动驾驶能力的两轮智能汽车是控制领域的经典课题,具有丰富的学术研究价值。与同轴系统相比,两轮非同轴系统具有静平衡、占地面积小、通过性强、灵活性高等特点。
然而,目前自行车研究存在以下问题。首先是自行车平衡系统的高成本。网上广泛流传的智慧君的平衡自行车系统,其动量轮、驱动器和传感器成本较高,不利于自行车机器人技术的普及。其次,目前自行车的平衡依靠高速旋转的动量轮,很容易造成安全事故。
▲ 图1.1.1 志辉君的平衡车
因此,我组根据《大赛》规定的K型车型,设计开发了基于Aurix平台的自平衡自行车系统。我们以更低的成本和更高的安全性,验证了自行车的自平衡和拍照竞速的实现。遵循路径。
1.2 项目计划概述
▲ 图1.2.1 系统方案整体框图
根据竞赛规则相关规定,平衡自行车组智能车系统允许使用各种电磁、红外光电、摄像头、激光、超声波等传感器设备进行赛道和环境检测。车模微控制器采用Aurix系列多核微控制器。赛车的位置信号可以通过摄像头或电磁传感器采集,进行自动控制决策。通过编码器测速模块检测车辆速度,并进行脉冲计数,计算出速度和距离;电机速度控制采用PID串级控制。
1.3 项目任务要求 1.3.1 竞赛要求
▲ 图1.3.1 室内自行车道示意图
1、车型自行车采用K型车型。模型上允许使用动量轮,动量杆维持模型的平衡。如果采用无刷电机来驱动动量轮,则需要基于无刷电机的驱动方案。车模生产出来后,车模的尺寸就没有限制了。
2、微控制器和传感器 该车型的微控制器采用单片机。传感器允许使用摄像机、CCD、光电管、电磁铁等。
三、跑道及比赛任务 比赛跑道采用室内循环跑道,跑道上铺设电磁引导线。汽车模型从车库出发,在赛道上运行一周,最后驶入车库。计时标准:车型驶出车库与重新进入车库的时间差。
▲ 图1.3.2 系统实物图 02 机械设计 2.1 概述
对于平衡自行车等结构来说,机械设计是决定车辆性能的关键。为了降低控制复杂度、增强平衡控制的鲁棒性,尤其需要对车模型的重心、转弯半径等参数进行严格的测试和控制。本项目以“全国大学生智能汽车大赛”的K车模型为基础。经过多轮测试,我们选择了比较优秀的结构设计。有效提高车体的稳定性。
为了适应自平衡等功能的需求,我们对汽车模型进行了3D建模,并在此基础上对汽车模型进行了多层次的改造。
我组对车模的机械改装主要分为以下几个部分:动量轮及支架的安装、电池的安装及车模切割、摄像头支架的安装等。
2.2 车模切割及支架安装 2.2.1 车模切割及电池安装
自行车模型尺寸较小。如果要在车型上安装动量轮,则电池原来的位置将被动量轮取代。因此,必须对车模进行切割来安装电池并降低重心,同时保证车模原有的结构不受其影响。在考虑到影响的前提下,我们对车型进行了最小限度的修整。
▲ 图2.2.1 车模切割部分
切割完成后,我们将魔术贴贴在车模底部,方便安装和更换电池。
2.2.2 动量轮及支架安装
为了使修整后的车模型更加稳定,我们采用了龙丘的动量轮支架和直流电机,实现了车体、电机、飞轮、编码器和齿轮的协调。
动量轮支架分为上、下两部分。上部用于连接车模,下部用于固定电机和编码器。上下部分采用三角形连接块连接。支架上部有多个螺丝安装孔,可直接安装在车模原有孔位上,无需在车模上钻孔。
▲ 图2.2.2 动量轮支架3D模型图
关于动量轮支架的安装,我们团队尝试了两种解决方案:
1、在车模底部安装动量轮,降低重心。
2、在车模顶部安装动量轮,以增加扭矩。
经过理论推导和实际安装测试对比,我们团队选择方案一作为实施方案。
2.2.3 伺服选型及安装
摩托车依靠转向器来实现前转向和保持平衡,这是自行车中最重要的执行器。 K型号的原舵机是SD12舵机。它体积小,是金属齿轮舵机。其响应速度和扭矩满足使用需要。但实际使用后发现,调试过程中难免出现车模失控、车头撞墙等情况,很容易导致小舵机齿轮损坏,损坏率高很高。考虑到整个舵机价格较高,为了降低成本,选择了SD5舵机。与SD12伺服相比,SD5扭矩更大,不易损坏,响应速度满足要求。但由于它不是原来的舵机,它的安装就成了一个需要解决的问题。为此我们使用一个简单的安装支架,如图所示:
▲ 图2.2.3 合金舵机支架 2.3 电路板安装
考虑到K车车型上安装电路板的空间并不多,所以采用了极简的设计风格,放弃了供应商提供的主控核心板,采用了全4层PCB+SMT工艺。我们组将电路板上所需的部分分为2个模块,分别是:
1、主控板,包括主控芯片和各种电源模块,以及一些传感器接口。
2. 电机驱动板:包含电机驱动模块。
安装电路板时需要考虑各种因素,因此我们的团队尝试了多种解决方案,最终选择了最适合我们车型的安装方法。
2.3.1 主控板PCB安装
▲ 图2.3.1 主控板PCB安装方法
主控板PCB上装有一颗MCU芯片、三组DC-DC电源以及各种外围接口。为了方便主控板的安装,我们团队选择直接在车模侧面使用魔术贴来固定主控板。
03 硬件设计 3.1 外设选择
在这个解决方案中,我们使用了大量的外围模块来实现各种功能。这些外设依靠各种总线和接口与MCU交换数据。例如,测量加速度和角速度的IMU使用I2C总线,TF卡使用SPI接口,蓝牙串口使用UART。其他大多数使用GPIO端口来模拟其他通信协议或连接片上外设,例如PWM输出等。
3.1.1 模块使用介绍
在该方案中,我们使用灰度摄像头采集轨迹信息,ICM-20602感知车体姿态,使用舵机控制车体方向,编码器采集速度,TF卡座和蓝牙串口调试,TFT屏显示各种状态。
各种模块的供电电压不同,通信方式也千变万化。这里对这些模块进行简单的介绍,以便我们在设计硬件的过程中,不会对各个模块与MCU之间的连接过于陌生。
各模块的具体介绍及接口定义如下。目前各种接口的封装都是标准的HDR2.54接口或者有线接口。
▲ 图 3.1.1 系统外围模块总表 3.2 系统供电单元 3.2.1 供电方案分析
智能车比赛一般采用2芯或3芯锂电池串联作为供电电池。该电池的额定电压为7.4V,充满电时最大不超过8.4V。因此,必须使用降压电路将电源电压降低至3.3V,才能正常驱动MCU和大多数其他外设及模块。事实上,考虑到有些外设需要5V供电,而5V也是常用的逻辑电平,我们常见的解决方案是先将电源电压降低到5V,然后再从5V降低到3.3V。
▲ 图3.2.1,电路3D仿真
我们组在LDO和DC-DC这两种常见的降压芯片类型中选择了DC-DC作为电源解决方案。
LDO 的最大优点是非常易于使用。 1VIN、1VOUT、1GND 三个引脚都可以使用,几乎不会坏。然而,LDO本质上是一个线性稳压器。例如,如果使用5V转3.3V LDO -3.3,要输出1A电流,则需要输入1A电流,这意味着消耗1.7W功率。这意味着LDO的输入输出电压差不能太大,负载也不能太大。
DC-DC,简单来说,就是一种开关电源。我们日常使用的充电器95%都采用DC-DC电路。如果说LDO的降压方法类似于滑动变阻器,那么DCDC的降压方法类似于快速切换电源输入以达到预定电压。这就决定了DC-DC的效率一般可以超过90%。
3.2.2 DC-DC芯片选型(本方案选用)
DC-DC降压芯片采用各种高端ARM产品中出现的同步降压芯片。这两种芯片目前在市场上广泛使用,并且可以找到各种廉价的PIN to PIN替代品。
3.2.3 电源电路设计
为了实现供电稳定,并最大限度地滤除DC-DC带来的纹波,我们课题组根据厂家的建议进一步优化了供电电路,例如采用固态电容滤除杂波。尽量减少电流环路和负反馈路径,以减少对其他电路的干扰。降压电路图如下:
▲ 图3.2.2 Buck电路图
▲ 图 3.2.3 Buck 电路 3.3 主控板电路设计与实现
智能汽车的主板是最小的系统,承载着MCU、各种常用的车载外设、外设接口以及设备供电电路。主板作为复杂系统工程的硬件核心,可以说是智能汽车一切的基础。在主板的设计上,我们采用了分而治之的策略,即将各个功能电路高度解耦,保证各个部分的正常工作,然后就可以得到一块完整的主板。
▲ 图3.3.1 主控板PCB 3D效果图
下面是该方案的总体框架图。右边的是板载外设,下面的是通过2.54mm HDR接口连接到各种其他设备。供电方面,方案采用级联DC-DC降压方案,提供稳定高效的5V/3.3V供电。
▲ 图 3.3.2 主控板方案图 3.3.1 电源输入及核心电压配置
它是英飞凌AURIX系列嵌入式芯片的典型之一,芯片上集成了两个内核。 AURIX系列芯片主要面向汽车电子中的各种控制应用,集成了多种复杂功能。所以电源不能像普通芯片一样一正一负正常使用。
电源主要分为三类。第一类支持5V-3.3V宽电压输入,如IO供电、ADC供电等。第二类仅支持3.3V电压输入,主要负责提供芯片内的Flash。供电,最后是核心1.3V电压,类似于电脑CPU的供电,需要精准高效的供电支持。
▲ 图3.3.3 电源
它集成了5V至3.3V LDO和3.3V至1.3V电路。理论上只需要单独的5V电源就可以点亮芯片,但实际上,为了稳定性,我们通常使用3.3V电源+1.3V的开关电源输入为芯片提供电源。
▲ 图3.3.4 SMSP模式提供1.3V核心电压
内部还支持多种方式产生1.3V的核心电压,主要分为LDO和SMSP模式,分别对应上面提到的两种降压方式。本方案中,我们采用更加稳定的SMSP模式产生1.3V电压,并采用英飞凌的P+N MOS管芯片作为上下管。
3.3.2 与主控板外设的连接
引脚大致可分为电源引脚(VCC、VSS等)、功能引脚(如晶振、复位、JTAG等)、IO(可以直接指定高低电平,也可以作为上电使用)芯片外设输出)、模拟输入引脚(默认为VADC的输入引脚)。
由于应用场景是汽车电子,芯片内部的片上外设大部分都可以认为是功能导向的,这导致片上外设往往将定时器、ADC等不同功能器件封装在一个外设中。因此,在我们后续的编程过程中,非常重要的一步就是将这些外设配置成我们想要的功能。
▲ 图 3.3.5 主控板外围接口引脚及连接汇总 3.4 驱动电路设计与实现
为了让我们的系统拥有澎湃动力,正确驱动电机必须是重中之重。以比赛中常用的380有刷电机为例。根据我们的实际测量,其稳定工作电流在0.6A左右,锁定时电流可达惊人的16A。如果直接用MCU的GPIO直接控制电机,就如同苍蝇摇大树一样。因此,在智能车比赛中,我们通常将功率输出和逻辑控制分开,使用与主板分离的电机驱动板来独立驱动电机。
3.4.1 智能有刷电机驱动芯片
该芯片是TI公司2015年发布的一款智能全桥驱动芯片,可以驱动4个外接N-MOS组成的H桥。它还支持多种逻辑控制方案、栅极驱动电流配置、限制失速电流、3.3V/4.8V LDO 输出。
▲ 图3.4.1 性能参数表 3.4.2 桥臂MOS管选型
下表列出了三种容易买到的SMD MOS管。从驾驶能力来看,他们都能够满足比赛的需要。您可以根据具体需求进行选择,例如制造商限制、封装选项、驱动板面积等。最终,我们组选择了作为安装驱动mos管。
▲ 图 3.4.2 MOS 管选型 3.4.3 外围电路设计
当使用有刷电机时,需要限制参考电压和电机电流,如下式所示:
其中,A_V为芯片内部放大器的放大倍数,等于20V/V,V_off=0.05V。因此,一般取0.02Ω即可实现10A左右的电流控制。
这样就可以完美的被我们使用了。在该方案中,实际上并未使用电流限制来实现最大驱动电流。参考设计如下:
▲ 图 3.4.3 全桥驱动电路设计 04 软件设计 4.1 系统软件框架
对于一个涉及运动平衡、图像处理、存储等功能的多任务复杂系统,一个良好、健康的软件框架尤为重要。
4.1.1 4-架构
由于本项目相关功能代码涉及到从嵌入式底层到实时操作系统,跨度较大。因此,我们组将工程代码抽象为4层:
(硬件层)→(外围层)→(算法层)→(线程层)
▲ 图 4.1.1 系统层次图 4.2 实时操作系统 RT-.2.1 将 RT- 移植到 Aurix MCU
RT-是国内流行的RTOS。版权归上海瑞赛德电子科技有限公司所有,于2006年1月首次发布,初始版本号为0.1.0。经过10年的发展,目前主版本号已升级至3.0。 ,累计开发者数量达到百万。
为了使用RT-on,需要进行移植,尤其是线程切换等专为内核操作而设计的功能。提供了专为嵌入式实时操作系统设计的硬件上下文机制。目的是提高线程切换的效率。
因此,在厂商的支持下,我们在CPU0中使用RT-进行线程管理,CPU1作为协处理器进行异步图像处理操作。
4.2.2 项目中的RT调度
在这个项目中,我们组主要使用了RT-的动态线程和信号量功能。在所有芯片上,片外外设初始化后,系统会创建若干个线程,交给RT-进行调度。
▲ 图4.2.1 RT-系统线程调度图
负责车辆姿态计算、平衡控制和其他类型的运动控制。当系统接收到IMU发送的125Hz中断信号时,发出信号量,并将其添加到就绪队列中,进行运动学处理和控制。
主要接收协处理器CPU1处理提取的图像信息,然后进行方向控制。同时还查询接收到的按键信号音量,以执行拍摄任务。
Key负责扫描系统的8个按键开关。只要它检测到按键从按下或长按状态跳转,就会发送相应的信号量供其他线程接收。
Life负责监控系统状态。如果系统长时间无法切换到Life线程,就会发出提示信号,这是调试代码时检查系统稳定性的保证。
▲ 图 4.2.2 系统运行检测画面 05 控制原理 5.1 概述
本项目根据竞赛要求,构建一个能够保持自我平衡、具有环保意识、保持稳定的系统。其中,系统的自稳定性最为关键。我们团队使用动量轮和控制前轮方向的舵机作为协同平衡控制器,这就是陀螺仪和加速度计的硬件架构。软件控制算法为PID控制,采用串级PID、增量PID、积分分离等手段。对于传感器测量的源数据,采用滑动滤波的方式获得控制反馈量。系统的平衡算法经过系统仿真和真机调试验证,具有良好的性能。
5.2 硬件传感器设计
为了保持平衡,需要获取车身的状态,包括车身角度和车身角速度。这里我们组使用它作为实际的 IMU。它是新一代MEMS IMU,具有极小的零漂移和封装尺寸。只需一个模块即可测量这两个量。同时支持的通信端口包括I2C和10MHz高速SPI,完全适合自行车平衡控制。
▲ 图5.2.1 内部结构图
对于动量轮的控制,除了使用合适的驱动器来控制电机外,还需要安装编码器来实时测量动量轮的转速,使其接近我们的目标速度(0rad/min) )。这里我们使用 1024 线正交编码器。实际使用时只需要4根线:电源、地、A相、B相。由于动量轮的转速转换范围较大,使用96线或更小的编码器会导致低转速时量化误差较大。从经济和性能考虑,1024线是更合适的选择。
5.3 自行车运动学建模与仿真
对于自行车平衡控制,需要对系统进行建模以分析系统的各种性能。为了建模方便,我们将自行车车体近似为刚体,动量轮就是一个抵消车体重心并提供动量的刚体。因此,我们使用倒立摆系统来分析自行车的运动学。
5.3.1 简化的系统建模分析
我们常见的倒立摆或简单摆系统如图1所示。为了控制它,需要在转轴上施加基于摆的扭矩,如下所示:
▲ 图5.3.1 倒立摆系统模型示意图
对于该系统,利用牛顿运动定理和简单线性化,可以得到系统的状态空间方程:
其中,在支点处给导光棒赋予力矩T。
但对于我们的自行车模型,虽然也可以近似为倒立摆模型,但其控制输入来自动量轮,而不是转轴支点处的扭矩,如图2所示。这大大增加了系统。
▲ 图5.3.2 基于飞轮的倒立摆系统
利用拉格朗日方程推导运动学方程:
其中 是拉格朗日算子, 是系统的广义坐标, 是系统的动能, 是系统的势能。同时要线性化,用代替。可以得到如下状态空间方程:
其中,$a = m_1 L_12 + 4m_2 L_12 + I_1b = \left( {m_1 + m_2 } \right) , , , ,c_2$ 分别为摆锤绕原点的摩擦力矩系数和摆锤绕原点的摩擦力矩系数飞轮围绕其中心。 。
5.3.2 倒立摆系统仿真
由上述系统状态方程我们可以建立如下系统:
▲ 图5.3.3 倒立摆系统仿真结构
或者你也可以建立一个物理模型进行模拟:
▲ 图5.3.4 系统物理仿真框图
为了更加接近实际状态,在物理模型中添加了配重,使得摆锤的平衡角不是垂直的。此时模拟的飞轮倒立摆系统仿真如下:
▲ 图5.3.5 运动仿真系统3D模型
这样就可以建立一个子系统作为被控对象,通过创建控制部分的子系统来完成控制:
▲ 图5.3.6 动量轮倒立摆仿真控制模型
但实际上,此时电机速度在不断增加,因此可以提高电机速度并连接PID控制,以将电机速度保持在较低值。但此时并不能保证达到任何设定值,倒立摆往往会在临界稳定角附近摆动。摆角响应曲线如下所示:
▲ 图5.3.7 摆角变化(时间单位s)
5.4 姿态传感器数据采集及卡尔曼滤波
虽然,上面提到的IMU和1024线编码器可以得到我们需要的数据。然而,直接从传感器获得的数据往往存在大量噪声,需要进行过滤。
滑动滤波可用于编码器数据,相当于低通滤波器。由于微分对变异量非常敏感,滑动滤波可以在一定程度上减少变异的干扰。
对于车辆倾角测量,可以获得实时角速度和倾角。倾斜角可以通过对角速度积分得到,但具有误差累积的特点。加速度计可以直接计算倾角,但受多种因素影响,非常敏感,数值跳跃剧烈。因此,需要利用卡尔曼滤波来获得更接近真实值的倾角估计。
5.4.1 卡尔曼滤波器理论分析
▲ 图5.4.1 基于协方差的最优估计算法
卡尔曼滤波只有五个公式:
其中 Q 是过程噪声的协方差,R 是测量噪声的协方差。
5.4.2 IMU建模及卡尔曼滤波应用
针对汽车模型在YOZ平面上的姿态角θ和陀螺仪的零漂移,建立状态向量
陀螺仪角速度输入时系统的状态方程可得:
通过用加速度计分解重力,也可以获得角度的测量值。测量方程如下:
这样就可以进行卡尔曼滤波。
融合后的波形大致如图8所示,红色的是加速度计算出的角度。可以看到,当角度变化时,它有一个很大的峰值。紫色线是滤波后的波形,跟随灵敏,无超调。
▲ 图5.4.2 卡尔曼滤波前后的实测数据波形
紫色为,红色为Raw5.5 PID平衡控制算法
PID的控制对象是动量轮,它接收编码器的反馈,将自行车角度稳定在目标倾斜角度。这里采用级联PID控制,角度环为内环,速度环为外环。换句话说,速度环的输出是角度环的输入。直观上可以理解为速度环改变设定的目标角度来达到自适应平衡的目标。在这个速度环中,使用了增量PID,其输出叠加在我们预设的目标角度上。这样在保证平衡的情况下动量轮的速度趋近于0,更有利于自行车的动态控制。
5.5.1 传统离散PID控制
直立小车传统的控制系统如下图所示。为了使其具有速度控制和姿态平衡能力,分别采用两个独立的闭环进行控制,输出的电机控制信号是每个环路输出的叠加。这种控制方案虽然简单,但也存在一定的问题。例如,如果仅单独应用直立控制,身体平衡效果就可以满足要求。但如果在此基础上附加速度控制,速度控制必然打破直立小车的平衡姿态。 ,导致速度和直立控制彼此结合。如果此时采用转向控制,将导致实时转向控制和高速姿势平衡不佳。
▲图5.5.5.1传统的控制结构与角度分离和速度PID 5.5.2级联PID控制算法
级联PID控制系统如图5.12所示。速度控制汽车型号的驾驶态度和动量车轮速度。在速度闭环中,速度PID计算输出值是自行车在机械零点角度向左或向右倾斜的角度。需要将此输出值添加到机械零点角度,以将速度控制转换为角度控制,并且需要角度变化。角速度产生的螺距角PID计算输出值是自行车需要维持的角速度,而倾斜角角速度PID计算结果是级联输出值。
自行车平衡控制使用级联PID,外环角,内环角速度,并且只需要通过姿态传感器收集一个轴的数据即可。根据 PID控制理论,外环(速度环)的控制周期需要小于内环,其中内部循环角循环的控制频率与传感器采样频率保持一致( 125Hz)。另外,在将外回路的输出传递到内环之前,添加了一个限制器以防止异常突变数据的干扰。实际测得的效果非常稳定,没有振荡或明显的响应滞后。速度控制和平衡控制转换为角度控制。在整个控制系统中,只有角度循环的输出用于运动控制。原则上,可以有效消除由传统速度PID和直立平衡PID的平行连接引起的耦合。
▲图5.5.5系列PID系统框图
当系统受到多级噪声时,内部环将首先调整,然后外圈会调整,因此控制精度和稳定性优于单极PID控制[2]。从汽车的实际操作状态来看,如图11所示。传统算法在中心线周围产生了较大的过冲。 PID算法的过冲量明显较小,并且其以下能力比传统算法强得多。可以看出,常规PID的稳定时间比级联控制的时间短。与常规的PID控制系统相比,级联PID控制器具有快速响应和高稳定性的优势[3]。
▲图5.5.5.3系列PID和常规PID控制效果06图像处理6.1一般想法
在此项目中,我们通过相机收集图像,通过软件上的图像处理来识别黑线,并执行相应的速度控制和速度反馈。总体目的是控制汽车模型,以在既定规则下以最快的速度运行整个轨道。无论选择哪种解决方案,软件的总体框架总是相似的。我们追求的是稳定性,同时又要加快速度。
以下是我们小组图像处理解决方案的框图。总体步骤可以概括为①灰度图像二线化②八邻域方法搜索边缘③提取边缘拐点的提取④轨道元素分析。
▲图6.1.1图像处理解决方案6.2灰度图像处理
通过相机,我们获得了120*80尺寸的灰度图像。处理图像的第一步是处理灰度图像。主要有以下想法:
6.2.1固定阈值法
二进制图像算法中最基本的算法是用给定的阈值比较每个像素,以确定像素是黑还是白色。随后的图像处理使用此二进制图像。数组已处理。
此方法在图像处理过程中只需要一次遍历图像,并且处理速度非常快。但是,它的稳健性很低。在实际操作过程中,由于光线不平坦,单个阈值在每个轨道上的效果将不均匀。
▲图6.2.1原始灰度图像和固定阈值二进制6.2.2 OTSU二进制
OTSU算法是一种有效的算法,用于1979年日本学者OTSU提出的二进制图像。使用最大阶层间方差将原始图像分为两个图像,前景和背景。
▲图6.2.2 OTSU算法需要分析图像的直方图以找到阈值
OTSU算法实施的伪代码如下:
▲图6.2.3 OTSU的伪代码
OTSU算法易于实现,并且当目标和背景的区域没有太大不同时,可以有效地分割图像。但是,当图像中目标区域与背景大不相同时,直方图没有明显的双峰,或者两个峰的大小非常不同,分割效果不好,或者有一个目标和背景之间的较大灰度差异。重叠时,也不可能将目标与背景准确分开。同时,此方法忽略了图像的空间信息,使用图像的灰度分布作为分割图像的基础,并且对噪声也很敏感。
▲图6.2.4原始灰度图像和OTSU二进制图像6.2.3 SOBEL动态阈值二进制
SOBEL操作员是边缘检测方法之一。通过卷积图像,可以在四个方向上获得当前像素的梯度信息。在显着变化的间隔中,图像将具有明显的高值,因此它可以检测到完整的边缘。
下图显示了如何通过SOBEL运算符在四个方向上进行输入图像:
▲图6.2.5 SOBEL操作员卷积
因为每个像素位置的二进化阈值取决于周围相邻像素的分布,所以具有相同亮度,对比度和纹理的本地图像区域将具有相应的局部二进制阈值,因此适合处理带有不均匀照明的图像的SOBEL操作员。唯一的缺点是它需要大量计算,平均帧需要20〜30ms的处理。
▲图6.2.6原始灰度图像和SOBE边缘检测图像6.3八个邻近算法
在此项目中,我们主要使用八邻螺旋跟踪算法来实现以下线路。
▲图6.3.1八个邻居搜索过程
八个邻居跟踪算法的基本思想是遍历图像以找到第一个非零像素点,那么该点必须是边界点。让这个点为起点x,然后从0-> 1-> 2-> 3-> 4顺时针搜索,以在此点的八个邻居中遇到的第一个非零像素点x'(点x'也是边界点)。令X = X',然后在附近进行顺时针搜索。搜索的起点是从x到x'的过程中x'之前的零点。
▲图6.3.2原始的二进制图像和八个邻居生成获得的边缘图
可以看出,可以通过八个邻居线搜索完全保存边界信息,并且可以获得每个边缘线的所有像素。有了这个可靠的基础,我们接下来要寻找拐点。
6.4拐点搜索
在拐点搜索中,我们使用相对基本的平面几何思想来解决问题。在上一个阶段,我们获得了轨道的边缘线以及起点和终点信息。通过连接每个边缘线的起点和终点,我们计算边缘线中的点,这是距直线最大距离的距离,这是边缘线的拐点。
▲图6.4.1拐点搜索6.5路径拟合和跟踪元素识别6.5.1十字元素
①在十字架之前
进入十字架时,将十字架的左和右拐点连接以组成线路。
▲图6.5.1原始两个值图像和补体线之后的图像
②
在十字架的中间,找到两个后圈,并使用最小每日方法向前拉。
▲图6.5.2原始两个值图像和填充线之后的图像
③夹在十字架上
进入十字架时,存在不会从正常角度进入,即倾斜进入十字架。在这种情况下,找到一个后转弯点以及另一侧的前和后带,以组成线路。
用户
①进入戒指之前
当将一侧识别为直线,而另一侧出现时,另一侧有两个拐点。
▲图6.5.4原始两个值图像和填充线之后的图像
②进入戒指
在环中,直接遵循该线路的基本线路思考。
▲图6.5.5原始两个值图像和填充线6.5.3小曲线的图像
当侧线值的差异很小时,将确定为小曲线,并执行最小每日乘法。
用户
在拥有相对完整的硬件配置和软件系统之后,我们需要共同调试与ON -SITE调试有关的软件和硬件,此过程需要一组完整的开发和调试工具来确定这些参数的最佳组合。
为此,我们的团队已独立开发了一套完整的功能上层机器软件,用于图像双值,跟踪轨道边缘,并可以实时监视轨道上智能汽车的操作状态。
▲图7.1.1上机器的主要接口
▲图7.1.2上机器的两个值甲板的主要接口
▲图7.1.3测试上线的主要接口
▲图7.1.4上机器操作检测的主要接口7.2离线SD卡数据分析
由于处理汽车模型所需的信息量非常大,因此在调试过程中通常存储此信息以进行研究和分析,而TC264的存储空间远非满足我们的要求。因此,我们已经设计了一张外部SD卡来存储大量信息,这使我们有很大的图像处理空间。
通过SD卡,我们将所需的图像信息和处理信息存储,然后通过串行端口将其发送到上机,以便我们可以轻松地分析图像中的各种问题,以便可以在程序中修改程序程序。
7.3上部机器的运行模式08功能测试8.1静态平衡绩效分析
将汽车型号放在静态桌面上。打开电源后,自我检查完成后,系统开始工作。由于在开始工作之前,汽车模型的实际倾斜角和机械零位置,机械的零偏差很大。
▲图8.1.1系统静态平衡状态
▲图8.1.2转向器和动量CO -控制线图的旋转
可以看出,为了控制机械零位置的身体角度,转向齿轮和动量车轮同时工作,输出大量控制。同时,可以发现位移控制体积和动量控制量基本上是输出形式的补充。
身体的姿势稳定后,动量旋转的速度会缓慢降低,并最终通过静态姿势达到平衡。
▲图8.1.3身体手势角曲线
同时,还可以发现,静态时期后的一段时间内波动,这是由字符串级级pid中速度环的小k_i引起的。在实际使用中,较大的点值在高动态环境中可以很好地工作,因此它对静态系统性能有一定程度的影响。
09结论9.1智能车辆的主要技术参数
这次设计和开发的Aurix平台的自平衡的自行车系统配备了该建筑的双核MCU作为主要控制,配备了RT真实时间操作系统。成功的验证和实现级PID算法。人体的自我平衡功能是在动力学齿轮齿轮的控制下实现的。
▲图9.1.1汽车模型参数简单表9.2不足和改进
我们仍然有一些缺点。例如,在初始阶段,由于知识的积累不足,我们遇到了许多困难,遇到了很多弯路,并犯了很多错误。我们在系统建模和仿真方面的能力仍然有些不足。但是,我们精通持续学习和实践,并逐渐更好地了解建模和模拟。
由于上海汤吉大学的流行预防和控制的要求,不幸的是,该项目开发以本学期之后的贾丁丁校园的封闭式管理停滞不前。汽车模型的3D建模,异质PCB和无刷电动机控制控制等具有进一步的功能开发,甚至无法正常进行完整的轨道操作和调试。希望将来可以使用模型建模的方法,而主流高级控制方法(例如LQR,MPC等)。
9.3谢谢
由于上海的流行,不幸的是,该项目的发展在本学期后的连续一个月被停滞不前。汽车模型的3D建模,异质PCB和无刷电动机控制控制等具有进一步的功能开发,甚至无法正常进行完整的轨道操作和调试。幸运的是,在学院和讲师的大力支持下,我们积极回应现状,通过在线渠道进行沟通,并在家附近的租赁场地进行调试。比赛开始前几天,我们甚至赶到酒店的酒店。在此过程中,团队成员共同努力克服困难,以使汽车从一开始到今天的强劲地位的震颤。
在本文结尾处,所有参与的参与者,帮助 - 经理,讲师以及所有给我们提供帮助,建议和意见的朋友,对汤吉大学的智能车辆和机器人竞赛实验室提出了衷心的感谢!在此过程中,不能分开教师,老年人和同学的帮助。多亏了东中国南部信息工程大学和全国决赛。感谢Zhang 和Xu Hegen的教义和支持,感谢Fang Shao Teng,Han Ziqi,Zeng ,Zhao 和Feng Yan的帮助,以及实验室同学的共同支持和帮助。最后,我要感谢实验室的队友。道路崎岖不平。感谢您的陪伴和互相支持。我们一直认为这是团队合作的夜晚,遇到错误的想法以及对现场调试的分析,最后创建了·yyyds!就像我们团队的徽标一样,只有当三个人互相支持时,我们才能站起来成为彼此的Yyds!
10参考
1。国立大学学生智能汽车比赛网站。
2。,Huang ,Liao ,Wei 。自均衡自行车机器人的运动分析[J]。
3。,Wang 。基于飞轮[J]的单级倒立系统的建模和模拟。控制工程,2011,18(06):877-880+904。
4。Qiao 。使用双pid字符串控制[d]的两轮自动平衡的汽车。长春:吉林大学,2017年。
5。周扬,徐毛。基于飞行控制原理的仿真实验基于弦级PID闭环控制[J]。电子生产,2019年(21):52-54。
6。张。双闭环模糊控制颠倒[J]。控制与决策,1996(01):85-88。
7。元Zerui。对两轮自动机器人控制算法的研究[D]。哈尔滨:哈尔滨技术大学,2006年。
8。基于CMOS摄像机[J]的智能汽车控制系统设计和实现智能汽车控制系统。吉林大学杂志(信息科学版),2013,31(04):414-418。
9。刘云洪。智能汽车路径的轨道跟踪技术研究[D]。杭州:郑大学,2007年。
10。。智能汽车及其基于的单芯片微型计算机的调试系统设计[D]。长沙:湖南大学,2014年
11。模拟电子技术基金会(第五版)[M]。北京:高等教育出版社,2015年。
12。Yan Shi。数字电子技术基金会(第6版)[M]。北京:高等教育出版社,2016年。
13。。自动控制原理(第7版)[M]。北京:科学出版社,2019年。