本人是17届的参赛选手,是一个刚刚入门智能车的新手,想把我这半年的思路整理给大家,希望能帮助到大家,如果有什么不对的地方希望大家能够指出。

1.首先是边线的获取

我边线的获取方法是爬线法,通俗来讲就是从屏幕的最下面往上面寻找边线,以60行120列为例,如果我们要爬线,我们必需知道最底行的左右边线(在这里就是第60行的左右边线),所以我第60行的左右边线获取是从中间往左右两边找第一个跳变点作为最底行的左右边线。

在这里还有一种情况,如果我们遇到了斑马线,如果还是从中间往两边找的话就容易把斑马线判断成左右边线,所以我们要在识别到斑马线时重新确定最底行边线的获取方式,这里可以该成两边往中间找。

确定了最底行之后,我们就可以开始爬线

获取完左右边线之后我们先不着急得到中线 ,我的程序是在元素处理完之后获取中线的值,如果我们这里有一个中线的值,元素处理(补线或者单边操作)之后又一个中值会让舵机抖动(因为有两个中值)。

2.各个元素的识别

环岛:对于环岛的识别,我的方法是比较简单粗暴,左右边线的斜率加连续丢线行数大于一定值

leng为赛道前瞻(可以有效的防止弯道误判)

left1为20行到25行的左边线斜率

ring1为20行到25行的右边线斜率

这里左右边线的斜率获取时需要注意要把那些丢线和跳变的点给去掉不然会让斜率变得很大,看成曲线。

三叉:对于三叉的识别我是左右都丢线的行数过10行加上左右拐点(有1个就可以,这样斜入三叉时路径不好也可以识别)和上拐点。

 拐点的判断我十分粗暴,基本就是上三行边线的值减去下三行边线的值大于一定值判断成拐点

这是三叉拐点的判断,值可以小一点10左右

这是三叉上拐点的判断,简单粗暴。

T字 :对于t字的识别同样也是左右有一个大拐点加上左右都丢线的行数过10行,然后没有上拐点。

可以看到t字可以通过上边线来判断是左T还是右T

这是十字拐点的判断,值变成了50。

斑马线:直接上代码,就是找跳变点的个数

这里可以通过我们上面记录的左右丢线行数来确定车库在车的左边还是右边

3.前瞻的获取

在我看来这个前瞻是非常好用,既可以帮助我们防止元素误判,也可以帮助我们变速和加速。

获取:我们从图像最下一行(距离车最近的一行)中心位置,向上搜索边界点,能得到一个前瞻距离,参考下图的红色直线,在直道时前瞻值会较大,弯道时前瞻值会较小,如下示意图所示:

这是zf老哥的思路,非常好用。

代码:

总结:

上面就是我的方法,可能一些地方过于简单粗暴,我在此只是做一个简单的分享,希望能给大家带来帮助,如果大家需要后期我会继续更新,也欢迎大家加我讨论学习一起进步。 

基础摄像头四轮智能车的制作相关推荐

  1. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.4 准备好了吗?

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第2章 ,第2.4节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更多章 ...

  2. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一1.1 麻烦开始了

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第1章 ,第1.1节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更多章 ...

  3. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.3.2 开发环境

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第2章 ,第2.3.2节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更 ...

  4. 基于RT-Thread操作系统的 基础四轮组智能车设计与实践

    学 校: 同济大学 队伍名称: 智行·龙卷风 参赛队员: 杨怡,韦炳宇,许泽华 带队教师: 张志明,余有灵 §01 引言 1.1全国大学生智能车竞赛介绍 全国大学生智能汽车竞赛是以智能汽车为研究对象的 ...

  5. 无线充电智能车的制作

    本文素材来源于宁夏大学 作者:白二曹.王瑞.穆琴.王童兵 指导老师:康彩 一.项目简介 1.功能介绍 无线充电智能车由无线充电.自动控制.红外遥控.网页显示四部分组成. (1)流程描述 用户端浏览器访 ...

  6. 基于CCD摄像头智能车分段PID控制算法设计

    自动寻迹智能车涉及到当前高技术领域内的许多先进技术,其中最主要的是传感技术.路径规划和运动控制.本课题是以飞思卡尔智能车竞赛为背景,以单片机作为核心控制单元,以摄像头作为路径识别传感器,以直流电机作为 ...

  7. 智能车基础学习JTAG接口

    从智能车的制作中知道中断的概念,但一直一知半解,最终下定决心好好打基础. 在一开始主要接触的是K60,所以这些基础知识也结合K60切入,之后可能会接触K66的有关内容,估计大同小异吧. JATG接口 ...

  8. 智能车竞赛技术报告 | 智能车视觉 - 上海大学 - 猫耳麻花

    简 介: 本文设计的智能车系统以NXP RT1064微控制器为核心控制单元,通过车体前方的摄像头检测赛道信息:通过齿轮编码器检测模型车的实时速度,使用PID 控制算法调节驱动左右电机的转速,PD算法控 ...

  9. 智能车竞赛技术报告 | 智能车视觉 - 天津大学 - 北洋钽星

    简 介: 全国大学生智能汽车竞赛以"立足培养.重在参与.鼓励探索.追求卓越"为宗旨.本文介绍的AI视觉智能车结合了图像处理.神经网络.PID控制.机械设计等技术,实现了省赛国赛的比 ...

最新文章

  1. c语言指针实现字符串倒序输出,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  2. 获得AndroidManifest.xml文件中meta-data的value值
  3. 云上效率提升指南 | K8S和Serverless还能这么玩
  4. Linux环形工作队列KFIFO的使用说明
  5. 欧姆龙plc OMRON SYSMAX CP1H-E 使用 CXONE_V4.60 连接和编程
  6. pdf文件如何生成目录 wps_利用wps创建有目录的PDF/word
  7. WEB前端经典笔试/面试题
  8. 安全标准ISO 17799/27001
  9. 矢量图标库Font Awesome的SVG新版本图标库5.x
  10. Django相关文档地址
  11. DongDong认亲戚 并查集+STL
  12. JAVA后台实现文件批量下载
  13. linux驱动篇-touchscreen-精简版
  14. 长期不上班,人会废掉吗?
  15. ShareX:一款你值得拥有的截图识别工具ShareX
  16. 21. 程序员生存定律-选公司前要干的事:分类
  17. YOLOv5、v7改进之二十六:改进特征融合网络PANet为ASFF自适应特征融合网络
  18. Linux小知识---常见的IO复用技术
  19. Google收购Moto:天使还是魔鬼?
  20. 运行出错 runtime error

热门文章

  1. 【Practice English Experience】How To Write A Formal Email? (Email Format and Samples)如何写标准的英文电子邮件?
  2. 设计模式学习笔记十七(迭代器设计模式)
  3. renderdoc 命令行说明
  4. Spring中Model、ModelMap及ModelAndView之间的区别
  5. 洛谷 P1063 [NOIP2006 提高组] 能量项链
  6. 网迅科技加入龙蜥社区,共筑网络信息安全长城
  7. STC15系列单片机检测不到,下载不成功
  8. element 手机适配_解决vue移动端适配问题
  9. 数字图像处理-图像压缩
  10. 让我有收获的从零开始的人工智能 深度学习 计算机视觉 教程集合帖