• 智能车学习(二十一)——浅谈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,膜拜膜拜

  • 相关阅读:
    toolblock 编写脚本并运用。
    C#等待子线程执行完毕
    win10+python3.7+dlib+opencv+face_recognition实现人脸识别
    c# tcp/ip通信
    【微信Xposed】kotlin反射异常RuntimeException:looper or serial is null
    安卓APK开启调试
    常用汇编指令对标志位的影响
    简单的.net反调试,调试检测
    虚拟机VMware和win10 hyper-v不兼容的问题
    对某城APP抓包分析--过SSL证书校验
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/5772590.html
Copyright © 2020-2023  润新知