本发明具体涉及一种智能小车的循迹方法。

背景技术:

为了丰富大学生的课余活动和增强大学生的业余文化学习,国家设立了循迹小车比赛。目前,循迹小车比赛已经成为了全国性的大学生竞技项目,每年吸引了无数的大学生参加。

目前,循迹小车有部分是以摄像头为基础的智能小车,其主要是通过CMOS摄像头硬件二值化,将真实的跑道转化成计算机可识别的语言,通过对图像信息的处理,判断当前智能车在跑道中的位置,并进一步通过PID技术控制智能车的速度和方向,使得智能车始终处于跑道中线位置。这种技术在未来自动驾驶汽车技术中也有广泛的应用前景。

现实中的跑道形式是固定的,但传统的算法对跑道识别和处理之后产生的数据只利用一次就丢弃,无法提取出其中有价值的数据再次利用,或者有的算法记录下处理后所有的数据,造成系统运行缓慢,并且需要很大内存。再者在制作智能车的过程中,最繁琐的步骤是PID控制器参数的整定。它主要依赖工程经验,直接在控制系统上经过大量重复的试验,在这个过程中也极易损坏智能车硬件。通常智能车速度越快,参数整定难度越大。因此,现在传统的智能循迹小车控制算法已经无法适用于日新月异的竞技水平。

技术实现要素:

本发明的目的在于提供一种能够快速进行循迹和自动行驶,车辆稳定度高、运行速度快的智能小车的循迹方法。

本发明提供的这种智能小车的循迹方法,包括如下步骤:

S1. 小车利用摄像头扫描跑道,获取跑道的基本数据信息,计算得到跑道的边线信息,拟合得到跑道的中线信息,并根据得到的中线信息进行小车的控制参数整定,从而保证小车行驶在跑道中线上;

S2. 在步骤S1得到跑道的边线信息和中线信息基础上,小车利用摄像头实时扫描跑道数据,并计算得到跑道的直道、弯道数据信息;

S3. 利用步骤S1得到的跑道的边线信息和中线信息,以及步骤S2得到的跑道的直道、弯道数据信息,实时调整小车的控制参数,实现小车的快速稳定行驶。

步骤S1所述的获取跑道的基本数据信息、计算得到跑道的边线信息并拟合得到跑道的中线信息,具体为采用如下步骤进行计算:

A. 摄像头扫描获取数据:摄像头通过硬件二值化将跑道信息转换为黑白像素点并以二维数组进行存储;

B. 搜索跑道边线:对于存储的第一组数据,从左至右搜索左边线,并从右至左搜索右边线;对于剩余的数据,则在前一组数据中搜索得到的边线数据上,向左、右各N列搜索本组数据中的左边线和右边线,N为正整数;

C. 拟合跑道中线:根据步骤B得到的边线位置计算得到跑道的中线位置。

步骤S2所述的计算得到跑道的直道、弯道数据信息,具体为采用如下步骤进行直道和弯道的数据信息计算:

a. 当小车运行在中线上时,摄像头实时扫描跑道并获取跑道数据,同时采用步骤S1所述方法拟合跑道的中线信息,并计算中线拟合偏差;

b. 根据步骤a得到的中线拟合偏差,按照如下规则进行判断:

若中线拟合偏差值不大于设定的第一阈值,则认定小车当前行驶的跑道为直道;

若中线拟合偏差值大于设定的第一阈值,则认定当前小车行驶时将进入弯道,此时实时记录中线拟合偏差值大于设定的第一阈值的持续时间、中线拟合偏差值的极大值和极小值,直至中线拟合偏差值恢复到不大于设定的第一阈值,此时弯道的数据信息记录完成;同时记录弯道与弯道之间的间隔时间。

步骤S3所述的实时调整小车的控制参数,具体为采用如下规则调整小车的控制参数:

1)小车摄像头实时获取小车行驶跑道的数据信息,同时采用步骤S1所述方法拟合跑道的中线信息,并计算中线拟合偏差;

2)根据步骤1)得到的中线拟合偏差,按照如下规则进小车控制参数的调整:

若中线拟合偏差值不大于设定的第二阈值,则认定小车当前行驶的跑道为直道,此时维持小车的控制参数不变;所述第二阈值小于第一阈值;

若中线拟合偏差值大于设定的第二阈值,则认定小车当前将进入弯道行驶,此时调取步骤S2得到的弯道数据信息,并按照以下规则进行弯道状态下小车的控制参数调整:

ⅰ 若弯道数据的偏差极值小于第三阈值且正负交替,且持续时间大于第四阈值,则判定当前弯道为小型S弯道:此时减小小车控制参数中的PID控制参数,或者通过控制小车舵机的PWM占空比来限制舵机的偏转角度,从而使得小车能够快速通过小型S弯道;

ⅱ 若弯道数据的偏差极值大于第五阈值,偏差极值的符号唯一,且持续时间大于第六阈值,则判定当前弯道为C型弯道:此时增大小车控制参数中的PID控制参数,或者先通过控制小车舵机的PWM占空比使舵机提前偏转角度A,并降低驱动电机的PWM占空比使小车减速,从而使得小车能够以靠近弯道侧的方式快速通过C型弯道。

本发明公开的这种智能小车的循迹方法,通过对赛道的基础信息进行获取、识别和记忆,从而能够在进行多圈赛道比赛时能够在第三圈后快速进行赛道识别并根据赛道的识别情况实时调整小车的控制参数,从而保证小车能够快速稳定的通过赛道,从而实现了小车的快速进行循迹和自动行驶,而且车辆稳定度高,运行速度快。

附图说明

图1为本发明的功能模块图。

具体实施方式

如图1所示为本发明的功能模块图:本发明提供的这种智能小车的循迹方法,包括如下步骤:

S1. 在小车调试初期阶段,保持小车车速在慢速情况下(比如1.5m/s左右,)小车利用摄像头扫描跑道,获取跑道的基本数据信息,计算得到跑道的边线信息,拟合得到跑道的中线信息,并根据得到的中线信息进行小车的控制参数整定,从而保证小车行驶在跑道中线上,具体为采用如下步骤进行计算:

A. 摄像头扫描获取数据:摄像头通过硬件二值化将跑道信息转换为黑白像素点并以二维数组进行存储;

B. 搜索跑道边线:对于存储的第一组数据,从左至右搜索左边线,并从右至左搜索右边线;对于剩余的数据,则在前一组数据中搜索得到的边线数据上,向左、右各N列搜索本组数据中的左边线和右边线,N为正整数;

C. 拟合跑道中线:根据步骤B得到的边线位置计算得到跑道的中线位置;

在具体实施时,CMOS摄像头通过硬件二值化将跑道信息转化240行*320列个黑白像素点,存入数组T[240][320],其中可通行跑道部分为0,不可通行或者障碍部分为1,从而获取跑道数据;然后从左到右搜所左边线及从右到左搜索右边线,之后各行在前一行左右边线的基础上,向左右各30列搜索本行左右边线,从而搜索得到跑道边线;最后将所得各行左右边线位置相加除以2得到中线位置,中线位置减去160即得到偏差;最后利用工程经验法进行PID参数整定,使智能车运行轨迹任意时刻都处在跑道中线附近,即完美路径循迹;

由于小车在慢速循迹时,其小车的PID控制参数能够保证小车任何赛道上均能够较为完美的实现完美路径的循迹,因此该步骤S1并不需要在实际比赛的跑道上进行,而只需要在任意的跑道上进行即可;因此步骤S1的主要目的是获取小车在慢速循迹状态下实现完美路径循迹的PID控制参数;

S2. 在步骤S1获取了小车在循迹状态下实现完美路径循迹的PID控制参数的基础上,控制小车以与步骤S1相同的车速在实际比赛跑道上循迹一整圈,同时小车利用摄像头实时扫描跑道数据,并计算得到实际比赛跑道的直道、弯道数据信息,并进行存储;具体为采用如下步骤进行直道和弯道的数据信息计算:

a. 当小车运行在中线上时,摄像头实时扫描跑道并获取跑道数据,同时采用步骤S1所述方法拟合跑道的中线信息,并计算中线拟合偏差;

b. 根据步骤a得到的中线拟合偏差,按照如下规则进行判断:

若中线拟合偏差值不大于设定的第一阈值,则认定小车当前行驶的跑道为直道;

若中线拟合偏差值大于设定的第一阈值,则认定当前小车行驶时将进入弯道,此时实时记录中线拟合偏差值大于设定的第一阈值的持续时间、中线拟合偏差值的极大值和极小值,直至中线拟合偏差值恢复到不大于设定的第一阈值,此时弯道的数据信息记录完成;同时记录弯道与弯道之间的间隔时间;

在具体实施时,由于小车在步骤S2时已经基本能够保证行驶在最佳路径上,因此此时摄像头扫描获取数据一次,每获取一次数据,间隔时间参数值加1,搜索跑道边线,拟合中线计算偏差(以上方法同步骤S1)。设置开始记录偏差的第一阈值,根据工程经验可知,智能车在直道上行驶,偏差在正负10之间震荡,在弯道上,偏差一般会大于70,因此第一阈值设置在40-60之间较为合理。如偏差小于或等于第一阈值证明当前跑道为直道,不记录任何数据。若偏差大于第一阈值,说明智能车即将进入弯道。此时,持续时间参数开始在之后的每一次循环都加1,并且在这个过程中记录下偏差的几个极大值和极小值,左转为正,右转为负。之后,当偏差再次小于第一阈值时,记录间隔时间参数以及持续时间参数的值,完成后将两个参数清零。之后将间隔时间、持续时间、偏差极值三组数据打包存入记忆队列备用;

S3. 利用步骤S1得到的跑道的边线信息和中线信息,以及步骤S2得到的跑道的直道、弯道数据信息,以小车安全行驶为前提,以提高小车循迹速度为目标,实时调整小车的控制参数,实现小车的快速稳定行驶;具体为采用如下规则调整小车的控制参数:

1)小车摄像头实时获取小车行驶跑道的数据信息,同时采用步骤S1所述方法拟合跑道的中线信息,并计算中线拟合偏差;

2)根据步骤1)得到的中线拟合偏差,按照如下规则进小车控制参数的调整:

若中线拟合偏差值不大于设定的第二阈值,则认定小车当前行驶的跑道为直道,此时维持小车的控制参数不变;所述第二阈值小于第一阈值;

若中线拟合偏差值大于设定的第二阈值,则认定小车当前将进入弯道行驶,此时调取步骤S2得到的弯道数据信息,并按照以下规则进行弯道状态下小车的控制参数调整:

ⅰ 若弯道数据的偏差极值小于第三阈值且正负交替,且持续时间大于第四阈值,则判定当前弯道为小型S弯道:此时减小小车控制参数中的PID控制参数,或者通过控制小车舵机的PWM占空比来限制舵机的偏转角度,从而使得小车能够快速通过小型S弯道;

ⅱ 若弯道数据的偏差极值大于第五阈值,偏差极值的符号唯一,且持续时间大于第六阈值,则判定当前弯道为C型弯道:此时增大小车控制参数中的PID控制参数,或者先通过控制小车舵机的PWM占空比使舵机提前偏转角度A,并降低驱动电机的PWM占空比使小车减速,从而使得小车能够以靠近弯道侧的方式快速通过C型弯道。

在具体实施时,摄像头扫描获取数据一次,搜索跑道边线,拟合中线计算偏差(以上方法同步骤S1)。设定开启记忆循迹的第二阈值,为了使智能车可以提前抄近路转弯,增强过弯能力,此第二阈值应比步骤S2中记录偏差的第一阈值小,因此第二阈值设置在30-50之间较为合理。分析步骤S2记录下的跑道信息,偏差极值可反映弯道的曲率以及左右转情况,持续时间参数值可反映弯道长度,间隔时间参数值可反映相邻弯道间隔距离,这三种信息基本可以描述出跑道基本信息。在智能车快速循迹中,若偏差小于阈值,则当前路径为直道。若偏差大于阈值,则说明即将入弯;具体弯道类型判断及控制策略如下所示:

小S弯道:分析偏差极值、持续时间值和间隔时间值三组数据,若偏差极值较小(小于第三阈值)、但正负相互交替,持续时间较长(大于第四阈值),则即将出现的弯道应该为小S型。这时可以减小一定的PID参数,减小的具体值可利用工程经验法根据不同智能车在具体实践中确定,使其对偏差的调节能力降低;或者通过控制舵机PWM占空比直接限制舵机偏转的角度小于20度(角度可根据实际情况更改),可以做到直线过小S弯道的效果,大大缩短智能车通过小S弯道的时间;

C型弯:分析偏差极值、持续时间值和间隔时间值三组数据,若偏差极值较大(大于第五阈值),且只有唯一值,持续时间较长(大于第六阈值),则为一个C型转弯,这时可以增大一定的PID参数,增大的具体值可利用工程经验法根据不同智能车在具体实践中确定,使其对偏差的调节能力增强;或者通过控制舵机PWM占空比提前使舵机偏转一个固定的角度,此角度根据偏差极值确定,极值越大,此角度越大,偏转方向根据极值正负确定,正为左转,负为右转。与此同时,降低主控芯片电机PWM输出占空比,使智能车在安全速度下转弯。这样不仅可以抄近路转弯,节约时间,并且还可以大大增强智能车的转弯能力,防止其偏出跑道。

c语言智能车跑道检测程序,智能小车的循迹方法与流程相关推荐

  1. c语言智能车跑道检测程序,基于单片机的智能循迹避障小车(附电路原理图,程序清单)...

    基于单片机的智能循迹避障小车(附电路原理图,程序清单)(论文10000字) 摘要:目前,移动机器人的开发和研究越来越令人瞩目,而智能循迹壁障小车作为移动机器人的一个重要分支,非常值得我们探索和讨论.智 ...

  2. 智能车心得分享(四)-- 电磁循迹

    这一次,我们开始正式进入了,车辆的控制 大致可以分成一下部分: 循迹,需要电磁传感器,或者摄像头.这两个应该是智能车最有可能使用的传感器了,其他的就算是另辟蹊径了.然后我主要使用的是电磁. 这是我最终 ...

  3. 智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果

    简 介: 本文详细介绍了扬州大学"这辆盲车不吃水果"在第十六全国大学生智能汽车竞赛智能视觉组中的系统方案.本次比赛采用大赛组委会统一指定的C型车模,以NXP公司生产的32位单片机i ...

  4. 智能车竞赛技术报告 | 智能车视觉 - 中南林业科技大学 - 弃车人队

    简 介: 本文根据第十六届智能车大赛的要求,经过在实验室的不断调试,研究并设出了拥有自主循迹功能及数字和物种识别功能的以摄像头传感器为主导的 AGV实体.在循迹算法上,为了加快小车对赛道信息的采集速度 ...

  5. 智能车竞赛技术报告 | 智能车视觉 - 中国海洋大学 - The Waves

    简 介: 本文详细介绍了在第十六届全国大学生智能汽车竞赛中智能视觉组的系统方案.本组别的比赛采用大赛组委会统一指定的C型车模,以恩智浦半导体公司生产的32位单片机I.MX RT1064 为核心控制器, ...

  6. 智能车竞赛技术报告 | 智能车视觉 - 山东大学(威海) - 山魂五队

    简 介: 本文详细介绍了山东大学(威海)山魂五队在第十六届"恩智浦"杯全国大学生智能汽车竞赛智能视觉组中的系统方案,包括硬件电路设计.机械结构设计.巡线算法以及识别算法的设计等.本 ...

  7. 智能车竞赛技术报告 | 智能车视觉 - 上海工程技术大学 - 萌鸡小队

    简 介: 本文详细介绍了上海工程技术大学"萌鸡小队"在第十六届全国大学生智能汽车竞赛智能视觉组的机械.硬件及软件系统方案.本次比赛以官方指定的智能车 C1型车模为平台,以 RT10 ...

  8. 智能车竞赛技术报告 | 智能车视觉 - 温州大学- 春华秋实

    简 介: 目前自动驾驶话题非常火热,近几年华为.特斯拉.谷歌.百度等大型互联网公司都在进行关于这方面的研究.本文设计了基于恩智浦 RT1064芯片的智能小车,以 keil5为开发环境,利用基于 MT9 ...

  9. 智能车竞赛技术报告 | 智能车视觉 - 新余学院 - 开放艺术队

    简 介: 该智能车设计以 32位的 RT1064微控制器作为控制单元,通过 MT9V034数字摄像头传感器采集赛道信息,将采集到的图像进行处理:通过 OpenARTmini模块部署神经网络识别图像:另 ...

  10. 智能车竞赛技术报告 | 智能车视觉 - 中国矿业大学 - 会飞的车

    简 介: 本文以第十六届全国大学生智能车竞赛为背景,介绍了 AI视觉四轮智能车系统的软硬件结构和开发流程.采用大赛组委会指定的 C型车模,以恩智浦 32位微控制器 MIMXRT1064最小系统板作为核 ...

最新文章

  1. 5. 最长回文子串——基于扩展中心法的优化
  2. mysql dba系统学习(21)mysql存储引擎InnoDB
  3. 嵌入式 linux 程序不能运行,嵌入式Linux中在开发板上/usr/bin目录下不能运行自己交叉编译的程序...
  4. Hadoop的版本介绍
  5. Swift--基本数据类型(二)
  6. 按关键字截取linux日志,linux awk截取数据,如何根据第二部分数据的关键字‘aaaaa’获取整串数据...
  7. 关于通过反汇编查看dll的方法【转】(
  8. 前端中标签页的手写方法
  9. 如何使用postman做接口测试
  10. python语音库_Python中的Python文本到语音
  11. 港科大郑光廷院士问诊未来,揭露 AI 最新应用与实践
  12. zb如何导出自己画的_如何用Rhino做出融球效果?
  13. 2013总结和2014展望
  14. 碎阅:一款基于douban及ONE API开发的资讯类App
  15. [译]简单声明Lua类
  16. 数据库并发中的串行化
  17. Eclipse与SQL Server 2005 连接
  18. javascript手册安卓版_javascript手册
  19. win10系统 开启蓝牙服务器,win10系统蓝牙在哪开启?
  20. 轻松理解LTE网规网优FAQ基本概念

热门文章

  1. XRF与ICP比较的差异
  2. 【虚拟光驱怎么安装Win7系统】
  3. Android fastboot下载模式或reboot流程解析
  4. 完美世界服务器维护多久,完美世界服务端启动和维护
  5. 元宇宙趋势下的前端现状
  6. vue||简易版音乐播放器
  7. 微博 用户画像_新浪微博的用户画像是怎样构建的?
  8. matlab编辑器风格定制,怎么使用135编辑器编辑出文艺清新的风格排版(附文艺排版素材)?...
  9. 监狱智能化管理系统综合安防解决方案
  10. AD用SmartPDF导出原理图标号显示不全解决方法