找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2581|回复: 0
收起左侧

智能小车设计指导_第二版(共68页pdf预览版下载)

[复制链接]
ID:371876 发表于 2018-7-15 11:20 | 显示全部楼层 |阅读模式
0.png
目录

第一章 初识智能小车 1
11 常见的两种类型 1
12 智能小车的基本结构 1

第二章 车体设计 3
21 小车的拆卸 3
22 舵机的安装 3
23 车体的整体布局 4

第三章 硬件设计 5
31 电源模块设计 5
311 智能车电源设计要点 5
312 低压差稳压芯片 LM2940 简介 5
32 单片机最小系统设计 6
321 单片机最小系统简介 6
322 51 单片机最小系统设计 6
33 循迹模块设计 9
331 红外光电管的工作原理 9
332 检测电路设计 10
542  光电检测部分的发挥设计  12
34 舵机转向模块设计 12
341 舵机的工作原理 12
342 常见舵机简介及使用注意事项 13
35 后轮电机驱动模块设计 14
351 H 桥驱动电路的工作原理 14
352 常用 H 桥集成电路芯片 L298 16
36 测速模块 17

第四章 程序设计 18
41 PWM 的相关知识 18
411 PWM 简介以及实现 18
412 51 单片机产生 PWM 波 19
42 舵机的控制 21
43 后轮电机的控制 22
44 程序总体的设计 22
45 程序设计的发挥与拓展 23

第五章 测试与调试 24
51 测试与调试 24
52 智能车的测试步骤 24

第六章 车速的测量 26
61 车速测量的重要性 26
62 车速测量的几种方式 26
621 霍尔传感器检测 26
622 反射式光电检测 26
623 透射式光电检测 26
63 车速测量的单片机实现 27

第七章 摄像头的使用 28
71 摄像头工作原理及简介 28
72 模拟摄像头视频分离电路设计 29
73 摄像头选型 30
74 摄像头安装 32
75 基本视频信号采集 32
751 使用单片机内部 A/D 转换。  34
752 使用外部 A/D 转换器 35
753 使用模拟电路对 PAL 信号进行转化(参考北京科技大学 CCD 一队)  36

第八章 电磁传感器的使用 38
81 智能汽车电磁组简介: 38
82 20KHz 电源参考设计方案 38
821 电源技术指标要求 38
822 电源组成 39
823 功率输出电路 40
824 恒流控制 42
825 参考设计电路 42
826 电源调试 43
827 注意事项 44
83 电磁组传感器及模路径检测设计参考方案  44
831 设计原理 44
832 磁场检测方法 45
833 电路设计 48
834 传感器的设计与调试 52
835 检测方案 54
84 软件部分的简要流程图 56
85 结束语 57

第九章 激光传感器的使用与设计 58
91 激光传感器的工作原理和驱动 58
92 激光传感器的选用与注意事项 58
93 激光管的布局和安装 58

第十章 算法设计 60
101 摄像头组处理算法 60
1011 黑线提取算法 60
102 车体控制算法 62
1021 PID 算法  62
1022 预判算法 63
0.png 0.png

10.1 摄像头组处理算法

10.1.1  黑线提取算法
目标指引线(即赛道上的黑线)的宽度相对整个赛道较窄,因此只要提取目标指引线的某些特 征点,就能放映出指引线的形状。我们可以对采集到的视频数据中每列黑线的中间点或边缘点作为 该列的特征点。在下面的黑线提取算法中,二值化算法才采用的是中间点作为特征点,直接边缘检 测法和跟踪边缘检测法采用的是边缘点作为特征点。
10.1.1.1  二值化算法
算法的思路是:设定一个阈值 value,对于视频信号矩阵中每一行,从左至右比较各像素和阈值 的大小。若像素值大于等于阈值,则判定该像素对应的是白色赛道;反之,则判定对应的是目标指 引线。记下第一次和最后一次出现像素小于阈值是的像素点的列号,算出两者的平均值,以此作为 该行上目标指引线的位置。
二值化算法流程图如图 10.1 所示。
0.png
该算法的思路简单,具体实现时还可以一旦检测到左边缘后就退出该行扫描,这样上面的流程 图将变的更简洁。但是这种提取算法稳定性较差,当拍摄图像中只有目标指引线一条黑线时,还能 准确提取出目标指引线,但当光强有大幅度的变化,或者图像中出现其他黑色图像的干扰时,该算法提取的位置就有可能与目标指引线的实际位置偏离较大。
实际使用时需要将该算法加以改进,以增强其稳定性。比如可以使用该算法找出每行中出现的 黑块数量,然后再对提取出的黑块使用合适的滤波算法,这样做可以提高该算法的稳定性。
10.1.1.2  直接边缘检测算法 算法的思路是:设定一个阈值,对于视频信号矩阵中每一行,从左至右求出相邻两像素的差值
(左减右)。若差值大于阈值,则判定下一个的像素对应的是目标指引线的左边缘,以此像素点作为 该列的特征点,记录下此像素点的列号,作为该行上目标指引线的位置。当然,可能出现差值始终 小于阈值的情况,此时一种方法是令该行上目标指引线位置为 0,通过进一步滤波或拟合来修正; 另一种方法是让该行上目标指引线位置和通过上一场视频数据求得的位置一样。 直接边缘检测算法流程图如图 9.2 所示。
0.png
该算法较二值化方法而言,抗环境光强变化干扰的能力更强,同时还能削弱或消除垂直交叉黑 色指引线的干扰。因为该算法在视频信号矩阵中是由左至右来寻找目标指引线的左边缘的,所以当 黑色图像出现在目标指引线左方时,该算法无法排除干扰,而当其出现在右方时,则可以排除干扰。 实际使用时可以对该算法稍加改进,当一行处理完为找到黑线边缘时,再通过对左边缘值与一 固定阈值(类似二值化算法中的阈值)比较,确定其时候是黑线边缘。为增强稳定性可以利用相邻行黑线边缘值相近的特点进行合理的滤波。

10.1.1.3  跟踪边缘检测算法
这种算法跟 9.1.1.2 小节介绍的直接边缘检测算法一样,也是寻找出目标指引线的左边缘,仍 然用左边缘的位置代表目标指引线的位置。但跟踪边缘检测从视频信号矩阵每行中寻找左边缘的方 法与上一小节介绍的不同。因为目标指引线是连续曲线,所以相邻两行的左边缘点比较靠近。跟踪 边缘检测正是利用了这一特性,对直接边缘检测进行了简化。其思路是:若已寻找到某行的左边缘,
则下一次就在上一个左边缘附近进行搜寻。这种方法的特点是始终跟踪每行左边缘的附近,去寻找 下一列的左边缘,所以称为“跟踪”边缘检测算法。 该算法在首行边缘检测正确的前提下,该算法具有较强的抗干扰性,能更有效地消除垂直交叉黑色 指引线的干扰,以及指引线外黑色图像的影响,始终跟踪目标指引线。另外,较之前两种算法,跟踪边缘检测算法的时间复杂度更低,因此效率更高。但值得注意的是第一行的左边缘位置对整个目
标指引线的搜寻影响很大,一旦它的位置和实际导引线偏差较大,就会产生一连串的错误,这是不 可容忍的。
实际使用时,在对第一行黑线边缘的提前尤为重要,可结合上幅图像中的黑线边缘值对当前第 一行的黑线边缘进行滤波处理。
10.1.1.4  中值滤波和曲线拟合 虽然采用了边缘检测的方法进行黑线提取,但由于赛道缝隙或其他黑色像点的干扰,仍会使得
某些行的黑线位置发生跳变。为了解决这一问题,增加算法的稳定性,可以采用中值滤波和曲线拟 合的方法对前面获取的黑线位置进行处理。
中值滤波的思想是:对于某行的黑线位置,如果它的位置正好在前后两行的中间,则保留原有 位置;否则,以这三行中黑线位置居中的代替该行黑线位置。如图 5.11 所示,利用中值滤波消除 单个的毛刺,但对连续两个以上的毛刺不能滤除。 曲线拟合的思路是:判断每行黑线位置与整幅图像黑线平均位置的偏差,如果偏差大于某个数值, 就将该点标记为无效点,此处的黑线位置用前后最近两个有效点的黑线位置的算术平均替代。
10.1.1.5  小结 本节中介绍的四种算法,各有其优缺点。在使用时不要拘泥于某一种算法,结合硬件资源合理
利用各种算法的优点,取长补短。可以达到意想不到的效果。上述算法中有一个量比较重要,就是 阈值。阈值的选取直接关系到目标线提取的正确性,摄像头拍摄到图像近端和远端是有差异的,往 往一个阈值很难适应整幅图像。所以可以采用动态阈值的方法来改善目标线的提取算法的稳定性和 适应性。
10.2 车体控制算法

车体控制算法是整个系统的核心,直接影响到小车在赛场上的表现。根据比赛经验,一般到后 期基本上都是调试这部分的内容。目前常用的的控制算法主要有:PID 算法、预判算法、模糊控制 算法和赛道记忆算法。个人认为不应将赛道记忆作为一种算法提出来实现,因为个人感觉有作弊的 嫌疑,其实这个算法往往也不好用,特别是赛道比较大时。结合摄像头的特点下面主要介绍 PID 算 法和预判算法。
10.2.1 PID 算法
PID 控制是工程实际中应用最为广泛的调节器控制规律。问世至今 70 年多年来,它以其结构简 单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
单位反馈的 PID 控制原理框图如图 10.3 所示。
0.png
获得了新的输出信号 Y。这个新的输出信号被再次送到感应器以发现新的误差信号,这个过程就这
样周而复始地进行。运用 PID 控制的关键是调整三个比例系数,即参数整定。PID 控制器参数整定 的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论 计算确定控制器参数。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行, 且方法简单、易于掌握,在工程实际中被广泛采用。
一般来说,增大比例系数能够减小上升时间,并减小稳态误差,但不能消除。增大积分系数能够 消除稳态误差,但会使瞬时响应变差。增大微分系数能够增强系统的稳定特性,减小超调,并且改 善瞬时响应。以上简要介绍了 PID 算法的原理和特性,实际过程中,由于传感器是按一定间隔周期 获取位置信息的,因此必须将连续 PID 控制离散化,这样得到的就是数字 PID 算法。
在实际编程实现时主要需要保存上一幅图像黑线特征值。这里简单以一段程序来表示在实际编 程时如何实现 PID 算法。
P_error = CurrentMidPlace – ImageMidLine;//静态误差量
D_error = CurrentMidPlace - PreMidPlace;//微分量
I_error += P_error;//积分量
PID = Kp*P_error + Ki*I_error + Kd*D_error;
其中 CurrentMidPlace、PreMidPlace 是当前图像和上一幅图像选取的参考行的黑线特征值, ImageMidLine 为固定的参考值(根据实际算法需要可以动态修改)。Kp、Ki、Kd 是比例参数,需 要根据实际情况调试得出。这里的控制对象主要是舵机,电机也可以用类似的算法处理。
实际经验:当积分系数为 0,微分系数相对比例系数较小时,小车性能较好。同时发现,小车 在直道上时比例系数应适当小些,这样不会产生“蛇形”现象;弯道上比例系数应适当大些,这样 能避免小车在高速入弯后冲出赛道。为了最大程度上发挥摄像头的大前瞻的优点,可以用预判算法
(也叫赛道识别算法)来对前方的赛道进行预判,根据赛道的类型来确定 P、I、D 的参数 Kp、Ki、
Kd 的值,并可以达到合理优化车速的目的。

10.2.2  预判算法
赛道预判能力是可以说是摄像头所特有的功能,对于整个车子的行走路线有很大的影响。所以 赛道预判也是图像处理的一个重要的部分。赛道预判是在前面黑线提取的基础上来做的。赛道预判 算法每一个组都可能不一样,没有一个经典的典范,所以在这里我只能就自己所了解得几种算法来 谈一谈。我归纳总结一下可以为:拐点算法和斜率算法两种算法。 拐点算法的思想:对提取的黑线特征点逐个扫描(也可间隔扫描,视情况而定),记录下路径中拐 点的个数以及各拐点对应的行号。然后再根据得到的拐点数和拐点与拐点之间的偏差值可以判断出 赛道的基本类型。若拐点为零,则可以判为直道或直道入弯,然后再对截取一段计算出路径的偏差 值,通过将偏差值与设定的阈值相比较来确定是直道还是直道入弯道。 这种算法在赛道类型的判断上准确性比较高,处理复杂度适中,可以考虑使用。
斜率算法的思想:从提取的黑线路径中选取特定的三行(视情况而定)的黑线特征值,最好选 取的行与实际间隔距离相等。计算出相邻的黑线特征值的偏差,这里的偏差就是赛道的斜率,根据 斜率的值可以判断出赛道的基本特征。
这种算法在赛道类型的判断上准确性一般,处理复杂度低。

完整的pdf格式文档51黑下载地址(共68页):

智能小车设计指导_第二版_预览版.pdf (4.13 MB, 下载次数: 24)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表