写在前面:

看到网上对于环岛的介绍微乎其微,想着写点什么,对于一些没有祖传代码和资料的同学起到一点指导和抛砖引玉的作用把,看了一些国一国二的代码,发现跟自己想的方法基本一致,所以个人认为应该能对没有思路的同学有一点启发,当然,比赛最主要的就是锻炼个人能力,条条大路通环岛,希望同学们不要被我的这种方法所局限,自己的思想无论在何时都是要有的,当然,由于本人能力不足等原因,如果有错误欢迎批评指出。

摄像头入环

1识别环岛

想着入环岛,那么最基本的肯定要先做到识别,对于环岛的识别,我个人的思想是分为五部分即可,以右环岛为例

1 在第一部分时,你会发现右边赛道宽度突然变宽,而左边赛道正常(可以区分环岛和十字(十字为两边发生突变))

这时候便可以加一个标志位1,

2.在第二部分,我们可以看到左边赛道无突变,右边赛道丢线(检测不到黑点),各位应该都有丢线标志位

这时便有环岛标志位2

3在第三部分(标志位1和标志位2成立),我们可以看到右边赛道先是逐渐变窄,之后便是逐渐变宽,这时候可以得到标志位3

并且记录下右赛道刚开始变宽时的行位置

4.之后你会发现右边赛道再次丢线,最后一个标志位

5。当然少不了最后的V(赛道宽度发生突变)

识别其实不难,大家可以根据自己的图像来具体修改,具体识别会有不同,但有思路即可,你会发现3,4,5在一幅图像中,也可以根据这些来进行判断,(当然,今年各位应该都是电磁+摄像头,这样的话环岛识别便更为简单,电磁信号变为双倍,并且摄像头有少许标志位,便可以很简单的判断出环岛,)之后便是最重要的补线了

补线

补线便是根据1和2点根据斜率连接,最小二乘法拟合得到相应的中线

1点 :右边界为直线,上一次左边界-这次左边界>10(这一行赛道宽度-上一行赛道宽度>10) 并记录下该行左边界位置,即为1点

2点: 前面有提到过,右边界为直线,这一行左边界-上一行左边界>2 记录下此时左右边界位置 右边界为2点 

3点: 2点的左边界即为3点

4.如果为左环岛,则右边界为直道。

赛道边界法:

如果不用拟合直线,可以考虑以1点作为赛道右边界,然后右边界往前依次递增(右环岛为递减) 直到2点处,也可得到不错的入环效果

具体方法是假设1点为x行y列 2点为x2行y2列  用y-y1得到列数差,x-x1得到行数差 最后列数差/行数差=每行递减值Y

然后从1点开始,往前一直到2点行每行右边界依次右移 Y  即可得到得到图像

举个例子  1点为55行 左边界为20列  (55,20) 2点为30行 右边界为70列(30,70)  那么每行递减值 = (70-20)/(55-30) = 2 这样每行位移2即可   当然还可以有一些其他处理让它更接近圆环

至于最小二乘法拟合直线相信各位都有了解,只要能成功识别1,2两点,拟合补线便是处理问题了

当然,今年由于限高,可能你的小车看不到2和3点,如果为一下特征,仍然是1点补线,但是从1点到另一边界有赛道的最后一行即可

2停止补线

当车辆进入环内后,可以停止补线了,这时候按照正常寻线来跑即可

需要注意的是,这里的停止补线标志位要写好,因为小车每次入环的速度和位置是不同的,如果停止补线误判的话会有很大问题

3出环岛补线

出环岛补线

当图中的右赛道边界先减小后增大时的,改行的右边界位置即为补线位置

上一次右边界-这次右边界>10(这一行赛道宽度-上一行赛道宽度>10)   记录右边界位置

或者出环岛用电磁出环也可

毕竟环岛入环是要把他作为一个圆环弯道来处理,不管用什么方法、只要你最后得到的补线能够更好的接近圆环弯道,转向就会越精确,只要1,2两点能够很好识别,怎么让他更好的接近圆环处理,更好的方法需要你的聪慧去发现,同时,入环写好了,出环其实思路一样,

电磁入环

电磁入环是五电感入环

(电感可以改为8字电感)

具体方法为:

中间电感一个阀值来识别环岛,识别完成竖直差比和进环,进入后切换水平差比和寻迹,出环时标志位检测用水平电感,延时一定时间或编码器积分清标志即可。

我们可以这样想,如果是单纯水平电感遇到弯道,会流畅的转向,而在遇到环岛时,我们把竖直电感作为转向环,是不是相当于正常入弯呢

简单来说,两个不同差和比即可

Turn_Offset = (float) (LAD-RAD)/(float)(LAD+RAD+MAD)*100;//经典差和比

Turn_Offset2 = (float) (L1AD-R1AD)/(float)(L1AD+R1AD+MAD)*100;//竖直电感差和比

当然左竖直电感与与右竖直电感进行差比和 ,还有这一些处理,比如如何适应大小环,入环如何完美和出环稳定性等

这些问题还是要处理的(可修改PID参数来调节),    当然希望大家能独立思考下,

总结:

基于今年应该都是电磁+摄像头,可以说在赛道元素处理上即难了,又简单了

难是对于新手小白(博主)来说,要同时学习处理电磁和摄像头,并且多了一些元素,再加上会车,对小白不是很友好

简单是电磁+摄像头之后,一些赛道元素可以更好的处理 ,比如环岛,如果单摄像头或者单电磁入环不稳定,可以考虑两个加权,达到较稳定状态,就可以跑得不错。

总的来说可以是,电感阈值 || 摄像头环岛检测 来判断环岛  (有上帝之光摄像头环岛识别不良)  之后电磁入环还是摄像头入环就要个人考虑了

感觉有用的话,点个赞再走呗!

智能车环岛浅析(电磁+摄像头)相关推荐

  1. 智能车浅谈 电磁组——环岛处理

    前言 本文为第十七届全国大学生智能车电磁四轮部分经验分享,转载于智能车电磁组--环岛处理,文中如有不妥之处欢迎批评指正. 智能车电磁组--环岛处理 智能车电磁组--环岛处理 一.电感排布 二.圆环思路 ...

  2. 第十六届智能车竞赛赛道电磁线圈铺设方法

    简 介: 针对同学对于智能车竞赛赛道上的电磁线的铺设问题,本文分别就铺设要点进行描述. 关键词: 智能车竞赛,电磁线圈 §01 如何铺设电磁线   近期有些参加 第十六届全国大学生智能车竞赛 的同学对 ...

  3. 【智能车学习】电磁车算法优化总结

    目录 前言 电感排布方案 舵机算法修正 分段式PD算法 使用函数曲线整定PD参数 电机控制 目标速度的确定 差速控制算法 特殊元素处理 环岛处理 防坡道误判 其他辅助结构 屏幕显示 按键控制与拨码开关 ...

  4. 第七届CUIT智能车竞赛(电磁循迹)

    第七届CUIT智能车竞赛 作为一名大一新生,我和几名队友一起组队参加了CUIT第七届智能车竞赛(四轮组),比赛一共花了大概一个多月的样子,再加上前期对一些东西的提前学习,也算是花了挺长时间的了,现在比 ...

  5. 【智能车算法】电磁杆差比和差调参经验

    差比和差 前言 在参加电磁循迹智能车竞赛的过程中,偶然间看到了卓晴大佬的差比和差算法,该算法能很好的实现对电磁赛道的数据整合,可惜调试时在网上找不到任何的调参资料,故在此处总结一下调参规律 原理 这是 ...

  6. 【智能车学习】电磁循迹中的基本控制算法

    文章目录 前言 采样信号滤波 什么是滤波 常见的软件滤波办法 限幅法 算术平均值滤波 归一化 什么是归一化 归一化的代码实现 PID控制 什么是PID控制 PID算法的代码实现 舵机控制 电机控制 目 ...

  7. 智能车学习笔记(摄像头组)——基础扫线

    今年第一次搞智能车,刚刚上大一,一切都是摸索着来,趁着放假了就把自己学会的东西梳理一下.第一次写的比较乱,欢迎各位一起学习(我亲爱的队友要加倍努力哈,这几天嗓子疼,不能腾讯会议给你讲了,专门给你写的) ...

  8. 17届智能车:浅析总转风摄像头的图像处理

    目录 前言 一.图像的采集 二.图像处理 1.赛道提取 1.二值化 2.利用两两像素点灰度值的相关性 3.归一化处理 2.寻找边线 1.从图像中心线开始,向左右分别寻找黑色像素点,找到黑色像素点并加以 ...

  9. 智能车的“耳朵”电磁检测传感器

    1.电路图 2. 核心芯片LM386理解 引脚: 1,8 Pin : 增益调整 4,6 Pin :电源 3 pin :正端输入 2 pin : 负端输入(负反馈) 5 pin :输出 7 pin :外 ...

最新文章

  1. 网站服务器宕机,B站服务器宕机 股价短线走低冲上热搜 官方回复称因机房故障...
  2. YOLO之父退出CV界表达抗议,拒绝AI算法用于军事和隐私窥探
  3. 【干货】用Axure做原型,一秒钟提高效率的必知技巧总结
  4. python进阶(小白也能看懂)——*args与**kwargs的使用
  5. C#枚举数值与名称的转换
  6. 文件I/O实践(2) --文件stat
  7. intel A20地址线
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游管理系统
  9. 修改system.img的大小限制
  10. [hadoop读书笔记] 第五章 MapReduce工作机制
  11. js split 正则分割字符串
  12. 总结了 110+ 公开专业数据集
  13. 4针串口线接法图_RS232串口线接口及接法(串口通信RS232的基本接法)
  14. 麻省理工的服务器位置,美国麻省理工大学位置在哪里?
  15. 常见WAF_WEB应用防火墙_运维必备_应用安全
  16. JS 案例 树形菜单
  17. 1089: 手机短号 (多实例)
  18. Java 字节码技术:不积细流,无以成江河
  19. 云堡垒机的作用_传统运维堡垒机和云堡垒机,哪个更好?
  20. Content type 'multipart/form-data;boundary=--------------------------258075776767858126421870;chars

热门文章

  1. 使用Docker离线安装包安装Docker
  2. 李弘毅机器学习笔记:第十五章—半监督学习
  3. 【数据结构】链表的原理及java实现
  4. 《用户体验要素—以用户为中心的产品设计》读书笔记
  5. 大学计算机课迟到检讨,大学生专业课迟到检讨书
  6. Naive UI修改默认样式
  7. 长江流向图_是长江水流向汉江 还是汉江水流向长江?
  8. 5-13 统计工龄 (20分)
  9. 前端知识总结之linux
  10. 他们为什么能拿到11K的入职薪资?