本人是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. 关于手机系统信息的总结
  2. Python中使用you-get库批量在线下载bilibili视频的教程
  3. matlab和python哪个运行快_MATLAB比Python更快吗?
  4. Python 5种方法实现单例模式
  5. c# 标准正太分布函数_机器学习中常见的几种概率分布
  6. 后台设置 datakeynames
  7. 对于使用progisp软件进行ISP编程时进入不了编程模式的解决方法
  8. odis工程师使用方法_傅里叶红外光谱仪常见故障维修及排除方法,你了解有多少种呢?...
  9. 基于微博数据对突发性环境污染事件公众感知变迁研究
  10. json,pickle,shelve序列化和反序列化
  11. 【CNN】多角度理解CNN
  12. 线段树、前缀数组:HDU1591-Color the ball(区间更新、简单题)
  13. LINUX OpenGL简单测试代码
  14. 语音识别系统原理介绍----gmm-hmm
  15. tukey 窗口_HIFIDIY论坛-频响测量的SPL准确性与窗口对齐 - Powered by Discuz!
  16. 新连接、新生意、新生态,专访快手商业生态开放平台
  17. iOS让App后台运行方法小结
  18. trim函数去掉字符串首尾空格
  19. Jquery如何获取当前元素的id?
  20. 【Python成长之路】python资料共享

热门文章

  1. AMC:移动设备上模型压缩和加速的AutoML
  2. 链游平台 Attarius Network 加入章鱼网络成为候选应用链
  3. ben we_WE战队官宣:辅助选手Ben离队
  4. 关于网易接盘《魔兽世界》的感想
  5. Verilog逻辑取反与按位取反
  6. 【Linux】进程的概念
  7. [Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题...
  8. 在这次采访中,Mendix 披露了低代码方法论
  9. C++封装一个音乐播放按钮
  10. Python中Decorator的一些应用