写在前面:

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

摄像头入环


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参数来调节),    当然希望大家能独立思考下,

总结:

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

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

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

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

 

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