智能车制作

标题: 免费单线思路,程序自编 [打印本页]

作者: sw5131899    时间: 2015-5-21 20:56
标题: 免费单线思路,程序自编
单线放在大S 真心的被虐的不行不行的了,调累了,给大家分享一下我处理单线的思路。希望大家有的也拿来分享一下吧。

1:双线进入单线的过程,特别容易误判出去,所以单独检测出来处理。我们整场扫描,从左向右,从右到左同时扫描,寻找白到黑的跳变,然后用两个数组存这些跳变,判断两个数组的差是否特别小,如果特别小的有很多,同时很大的也有不少,这就是单线和双线同时出现在图像里,然后找出单线起点,单线就以单黑线为中心线,双线就以中线为中心线。然后按照中心线跑,调整Pid,找到最优路径。

2:进入单黑线后,扫描车前5行数据,同样用上述方法左右同时扫描,找到后以黑线为中心线,然后以延伸法进行后面的扫描,每次只在上行的中线附近扫描,这样可以防止赛道背景色的改变,不论什么背景色都可以跑。找到所有单线后,按照单线跑。

不过有太多的情况,靠大家自己去完善。我希望大家在阅读完之后能分享一下自己的想法或是看法。


作者: sw5131899    时间: 2015-5-21 20:57
1楼自己来~~
作者: 小小草    时间: 2015-5-21 22:58
楼主,你们双线的的背景颜色什么色都可以吗

作者: 苍天吐血    时间: 2015-5-21 23:31

作者: 、痕迹    时间: 2015-5-22 01:10
白色背景呢
作者: 六步上篮    时间: 2015-5-22 11:04
跟你差不多
作者: 雷朕浴    时间: 2015-5-22 12:12
表示白底的话很容易混乱
作者: 沙漏、、、    时间: 2015-5-22 19:52
赞一个
作者: 天空依旧很蓝    时间: 2015-5-22 22:53
单线变双线的时候呢。。
作者: BlackMetal    时间: 2015-5-25 20:50
   楼主你觉得这样行吗?我正在改算法,把找边缘算法改成边缘检测。如果通过边缘检测连续几行检测不到边缘,就说明可能是十字,直角标志黑线,双线变单线。这时候再通过相应的检测判断到底是十字,直角还是双变单。就可以了。至于背景是蓝色的双边单可以无视了  
作者: sw5131899    时间: 2015-6-1 19:15
小小草 发表于 2015-5-21 22:58
楼主,你们双线的的背景颜色什么色都可以吗

恩,是的,为了避免今年换背景色,就要兼容性强点

作者: sw5131899    时间: 2015-6-1 19:19
BlackMetal 发表于 2015-5-25 20:50
楼主你觉得这样行吗?我正在改算法,把找边缘算法改成边缘检测。如果通过边缘检测连续几行检测不到边缘 ...

恩 ,你这样就只分为三种情况了,找不到左右黑线不是十字,直角,就是双入单,这样如果在急弯丢了一边会不会误判呢?
你们按照你们那种思路实现了吗?

作者: sw5131899    时间: 2015-6-1 19:20
天空依旧很蓝 发表于 2015-5-22 22:53
单线变双线的时候呢。。

我是单独处理的,有点麻烦,不过还好能过。只是有点慢~~

作者: 你太人才了    时间: 2015-6-2 01:22
我的方法和你的方法差不多的,但是再单双线交替的时候,打角的函数输出的值总是小于实际的要打角的值小,所以很容易出去,不知道该怎么搞。求大神指点
作者: BlackMetal    时间: 2015-6-2 12:09
sw5131899 发表于 2015-6-1 19:19
恩 ,你这样就只分为三种情况了,找不到左右黑线不是十字,直角,就是双入单,这样如果在急弯丢了一边会 ...

我现在是把 远端丢线情况分为两种,第一种十字、入直角,第二种双变单。第一种情况直接补线,第二种跳到单线巡线程序。标志位不改变,也就是下一场还是按照正常模式巡线。近端丢线,判断是十字,直角还是双线变单线。在相应进入各自的算法。在急转弯我的有效前瞻很小,不处理赛道外的信息,目前还没出现误判的情况

作者: sw5131899    时间: 2015-6-5 16:28
BlackMetal 发表于 2015-6-2 12:09
我现在是把 远端丢线情况分为两种,第一种十字、入直角,第二种双变单。第一种情况直接补线,第二种跳到 ...

恩,挺好的想法,在急弯处有效行减少,这样可以避免误判。我们是固定前瞻,所以有的判断地方要求要严格一点~

作者: sw5131899    时间: 2015-6-5 16:31
你太人才了 发表于 2015-6-2 01:22
我的方法和你的方法差不多的,但是再单双线交替的时候,打角的函数输出的值总是小于实际的要打角的值小,所 ...

额~~单出入双得时候不用那么麻烦了,直接找到单线有效最大值,一直跟着单线跑,直到单线消失,完全进入双线。。那么就该进入双线的算法,这里重点是找到单线有效最大值。

作者: 你太人才了    时间: 2015-6-6 13:04
你的障碍物检测是怎么弄的啊,我们用的跟踪边沿检测法检测障碍物直接被无视了,用从中间网往两边找的话计算出的偏差极小,等到跑近了已经来不及打角了 你们有没有什么好的方法啊!
作者: 记忆忧心    时间: 2015-6-7 11:27
和我想的差不多,你比我想的很完善,但是赛道背景不确定,这想法是有bug,当赛道背景为蓝的,你的第一步就无法实现,后面更别提边缘跟踪了。楼主你左右同时扫描,左右扫描的距离是多少,是整行吗? 如果太小会出先一边丢线的情况的
作者: hi希特勒    时间: 2015-6-11 18:07
楼主真的没必要的 卓大大说了弯道不会放在急弯的
作者: bigsun    时间: 2015-6-12 20:12
sw5131899 发表于 2015-6-5 16:31
额~~单出入双得时候不用那么麻烦了,直接找到单线有效最大值,一直跟着单线跑,直到单线消失,完全进入双 ...

单线有效最大值是什么意思?我真的不懂,希望能解答,谢谢

作者: Touch    时间: 2015-6-12 22:19
楼主,弱弱的问一句,如果赛道的底色是白色,只有两条黑线,然后在单线的时候背景变全黑,而且还有中心线,怎么破
作者: CSW孤狼    时间: 2015-6-17 21:09
BlackMetal 发表于 2015-6-2 12:09
我现在是把 远端丢线情况分为两种,第一种十字、入直角,第二种双变单。第一种情况直接补线,第二种跳到 ...

你是直角和十字补线,那样会不会误判,因为直角很容易补成直道,需不需要设定一个范围

作者: BlackMetal    时间: 2015-6-26 03:54
CSW孤狼 发表于 2015-6-17 21:09
你是直角和十字补线,那样会不会误判,因为直角很容易补成直道,需不需要设定一个范围

直角直接打过去

作者: CSW孤狼    时间: 2015-6-26 15:50
BlackMetal 发表于 2015-6-26 03:54
直角直接打过去

直角搞定了,单双线虐了我快一个星期了

作者: 451506709    时间: 2015-6-26 15:55
路过,帮顶思路
作者: 清风借力    时间: 2015-6-26 16:53
整场扫描...扫描次数太多不会占用单片机资源吗?这样即使正确地判断了,舵机要执行也会延迟很多。
作者: BlackMetal    时间: 2015-6-27 01:16
CSW孤狼 发表于 2015-6-26 15:50
直角搞定了,单双线虐了我快一个星期了

单双线,双线到单线赛道背景,会有拐点。但是尖角拐点有点难啊。目前不知道如何分清尖角拐点和弧线可能出现的拐点
作者: CSW孤狼    时间: 2015-6-27 16:50
BlackMetal 发表于 2015-6-27 01:16
单双线,双线到单线赛道背景,会有拐点。但是尖角拐点有点难啊。目前不知道如何分清尖角拐点和弧线可能出 ...

关键是背景颜色不确定

作者: BlackMetal    时间: 2015-6-29 18:51
CSW孤狼 发表于 2015-6-27 16:50
关键是背景颜色不确定

肯定是白色啊。蓝色就没有单线的必要了。直接边缘跟踪找跳变了

作者: 秦时明月94    时间: 2015-6-29 19:54
就怕误判
作者: Mr.Super    时间: 2015-6-30 00:05
单双线放大S虐的妥妥的,,老是把中心线当边线,然后直接冲出去了
作者: M16贯穿伤    时间: 2015-6-30 01:38
BlackMetal 发表于 2015-6-29 18:51
肯定是白色啊。蓝色就没有单线的必要了。直接边缘跟踪找跳变了

我们现在也在处理单线,但是白色背景单线变白色背景双线时,且都为同方向弯道时很容易出问题,总是将双线的外侧单线识别为单线,最后车冲出赛道。问一下,这种赛道你们是怎么处理的?
作者: 451506709    时间: 2015-6-30 10:38
:lol:lol
作者: 七秒的小鱼    时间: 2015-7-14 04:21
太赞了
作者: 海阔天9空9    时间: 2015-7-14 13:51
思路都差不多!!!
作者: lcx寥若星辰    时间: 2015-7-15 15:40
出单线的时候容易把单线和一边的边界线当两边边界冲出去,求问有什么好办法么
作者: sw5131899    时间: 2015-7-17 11:19
hi希特勒 发表于 2015-6-11 18:07
楼主真的没必要的 卓大大说了弯道不会放在急弯的

直线不会放在急弯么?
作者: sw5131899    时间: 2015-7-17 11:23
lcx寥若星辰 发表于 2015-7-15 15:40
出单线的时候容易把单线和一边的边界线当两边边界冲出去,求问有什么好办法么

在单线角度控制的函数,用一个变量保存当前误差,每次进行角度控制时,都和上一次的误差进行比较,两次误差不能出现太大的突变,如实出现不符合的误差,那么便抛弃这次误差值,用上次保存的误差

作者: sw5131899    时间: 2015-7-17 11:24
海阔天9空9 发表于 2015-7-14 13:51
思路都差不多!!!

哎,这些都是我们这些新手能想到的,根本没用什么算法,所以都差不多。那些大神用的都是算法。

作者: sw5131899    时间: 2015-7-17 11:28
M16贯穿伤 发表于 2015-6-30 01:38
我们现在也在处理单线,但是白色背景单线变白色背景双线时,且都为同方向弯道时很容易出问题,总是将双线 ...

用上一次的误差控制舵机,这种情况的误差抛弃

作者: hi希特勒    时间: 2015-7-17 11:38
sw5131899 发表于 2015-7-17 11:19
直线不会放在急弯么?

预赛应该是不会的 决赛说不好

作者: sw5131899    时间: 2015-7-17 11:42
hi希特勒 发表于 2015-7-17 11:38
预赛应该是不会的 决赛说不好

我所有的都能过了,就是速度不咋的,不过唯有一点那就是斜入单线和斜出单线,我们一直把单线放在大S,特别是就放大S那一截急弯,能死人啊

作者: hi希特勒    时间: 2015-7-17 11:55
sw5131899 发表于 2015-7-17 11:42
我所有的都能过了,就是速度不咋的,不过唯有一点那就是斜入单线和斜出单线,我们一直把单线放在大S,特 ...

那就遇见单线减速呗
作者: sw5131899    时间: 2015-7-17 13:31
hi希特勒 发表于 2015-7-17 11:55
那就遇见单线减速呗

确实是减速运行单线,不过斜入单线和斜出单线是根本就不能识别出来那是单线啊

作者: 胡鑫材    时间: 2015-7-17 22:17
hi希特勒 发表于 2015-6-11 18:07
楼主真的没必要的 卓大大说了弯道不会放在急弯的

不确定吧,在急弯,大s确实不好玩,玩不转!




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2