智能车学习(二十一)——浅谈CCD交叉以及横线摆放

一、CCD为何要交叉摆放?

      首先使用横线摆放,CCD前瞻如果远一点,弯道丢线,再远一点直接窜道。所以需要很多很多代码的工作量,而且过弯的过程相当于没有任何的调节过程,就是一个偏差保持,或者就是根据前面拟合(三次样条效果可以),但是终究是盲跑,写得好就跑的好,写不好各种窜道,各种问题。

      其次可能会想到加个舵机做摇头CCD,想法很好,就是会重了那么一点点,就是会很容易不对称,就是可能不能加前瞻。

      最后,综合以上两种思路,可以做一个交叉摆放的CCD支架。使用成熟的3D打印技术,辅助一些胶水固定,可以达到随便翻车,随便撞,都可以稳定对称,而且不会至少一个CCD不会丢线,算法简单好写,赛道元素识别容易,偏差连续,前瞻可以无限远,就是有点浪费。因为加减速单靠这个的话会有一点点问题,所以一般加一个CCD辅助一下。

image

 

二、CCD交叉摆放算法设计

1、方法一:

       左CCD算一偏差,右CCD算一偏差,两个相加。

   A、直道对称,偏差为0

   B、弯道丢掉的CCD不要,另一个CCD偏差乘以2

   C、丢与不丢交界处有跳变

 

2、方法二:

       使用模糊算法,提取出来交叉的部分,给定经验值,使用Matlab进行培训,得到一组表

   优点:肯定连续且可调

   缺点:特殊元素偏差要修正,可移植性不强

 

3、方法三:

       使用神经网络进行培训,但是由于CCD信息量还是过少,导致有3到4个地方需要进行特殊处理,加以识别。

   优点:稳定,参数不用调= =

   缺点:要识别比较麻烦,毕竟CCD信息量少。

(最后使用了这个方法,因为小S可以走直线。。)

 

 

三、支架制作:

     使用3D打印,可以外发(有钱人任性),可以直接做一个打印机,很简单,材料也有,一般400搞定,淘宝可以买现成的大概也就1500左右吧。基本上这种3D打印机,有了一台就可以做第二台。。鸡生蛋,蛋生鸡。。。。

image

使用SolidWork画出来,然后转成STL,然后使用打印机对应的上位机进行打印就行了(上位机一般转化为Gcod)。

制作打印机的话,教程另发,也是大神教的啊,已经去了MIT,膜拜膜拜

原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/5772590.html