zoukankan      html  css  js  c++  java
  • 智能车学习(二十一)——浅谈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,膜拜膜拜

  • 相关阅读:
    Codeforces #548 (Div2)
    Codeforces #550 (Div3)
    UVA
    ios 动画
    CAAnimation
    iOS三种定时器的用法NSTimer、CADisplayLink、GCD
    iOS使用宏写单例
    iOS完美的网络状态判断工具
    iOS开发
    iOS自定义控件教程:制作一个可重用的旋钮
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/5772590.html
Copyright © 2011-2022 走看看