四轴飞行器第二次试飞小结

春节期间进行了第二次不拴绳的试飞。总体来说,革命尚未成功,同志仍需努力……

和第一次相比,主要做了以下变化:

1. 给油门控制添加了一点渐变处理,当不小心把油门推高或者降到0的时候,飞行器不会猛升猛降,油门会较为平稳的变化。
好的飞控不会有这个功能,因为控制比较平稳,尤其是玩暴力飞行的朋友,肯定不能有延时。这里主要是为了在调试阶段不要损伤器件。

2. 添加了超声波测距传感器,把离地距离限制在1.5米以内,超出这个高度后,油门就会适当下降,这个主要是为了避免飞出控制范围和直接坠落。

3. 把采样频率从原来的50Hz提高到了350Hz,本来想提高到400Hz,但是某些情况下单个周期里的运算时间会超过2.5ms一点儿,所以最后改为350Hz。

4. 增加了从上面拴绳和下面拴绳两种调试方法,主要是为了调试PID时使用。

这是加了超声波大眼睛的四轴飞行器:

四轴飞行器上的超声波测距传感器

四轴飞行器上的超声波测距传感器

飞行视频:

从飞行的状态看,超声波测距起了一定的作用,四轴没有像上次那样飞的太高和直线下降。但是起飞以后侧飞的非常严重,看上去像是在很大尺度上摆动。做一个小小的总结,下个阶段准备在以下几个方面进行改进:

1. 减少震动,把控制板用弹簧或者橡胶垫稍微做点隔离,减少电机震动对传感器的影响
2. 校准螺旋桨,刚刚知道我买的螺旋桨(5元一对)平衡性能不是很好,不校准的话震动很大。建议的校准可以用一根细的针穿过中心轴,看看不会向一侧偏。轻的一边用透明胶带绕几圈配重。但是不知道透明胶带会不会影响气动性能
3. 没有做误差标定,就是把四轴放在平地上,在启动电机前记录平地时的各种读数
4. 除了1和2中的物理减震外,还应该做软件减震,按老薛的建议,打算把平均滤波改为卡曼滤波
5. 挂绳的试飞和无绳的试飞并不完全相同,挂绳时有垂直或水平的作用力,会辅助四轴平衡。所以这个四轴在挂绳时有时表现的还凑合,一到实战就横着飞
6. 初期犯了个经验主义错误,我以为气压计只能测量较大尺度上的高度,毕竟上下几米气压几乎没有变化;另外也担心在快速上升下降的过程中,气压会受到风速的影响。但是通过网友们的实战看来,气压计的高度估计可以精确到0.25米左右,并且在高速飞行时的表现也还不错。真是小看了当前的电子设备,这个在下一步可以考虑加上。

另外还有一个小小的经验可以分享:刚开始挂绳时,发现挂绳也不安全。当四轴上升的时候,会把挂绳吸进螺旋桨,结果叮叮咣咣,你懂的……
后来找了一些叫做易拉宝的东西,本来是用来拴钥匙门卡的,自重小而且伸缩性挺好,绳子也挺结实。四轴上升下降的时候,绳子也跟着伸缩,这样就不怕螺旋桨卷绳子啦。

用可伸缩的挂绳来测试四轴

用可伸缩的挂绳来测试四轴



对 “四轴飞行器第二次试飞小结” 的 30 条 评论

  1. lx 说:

    博主加油,一直跟踪读你的飞行器。

  2. SSS_SXS 说:

    加油!

    楼主相当给力,不仅仅深入钻研,更懂得无私分享,字里行间都能引起我深思

    好啊!

  3. boboking 说:

    侧飞是不是,超声波传感器不总是垂直的,倾斜时测的是倾斜距离?

  4. 糖伯虎 说:

    感觉是P没调好?不知道动力哥超声波的代码是如何写的,中断还是阻塞?是否处理了丢信号的超时处理?这个得注意,不然会炸鸡的吧?

    • 伯虎兄,PID参数确实没调好,但是有人说这还没到细调pid的时候,主要是传感器在震动条件下读数跳动比较大,需要先做好滤波才可以。
      超声波用的是中断,所以不会等在那里读数据,另外也做了丢信号的处理(发出信号后没有返回值,按超出量程处理)

      • 糖伯虎 说:

        根据我以前看到别人做的源码(KK_C),一般都是用的平均值滤波或者是中值滤波,效果也很不错。如果MCU的速度够的话,是不是可以增加采样数量来提高滤波效果呢?卡尔曼滤波好像是很高端,我看了好久,还是没看明白,等您分享经验了。

      • 糖伯虎 说:

        在您面前班门弄斧了,我们之前翻译过一篇名为《用于乐高机器人的PID控制器》,地址为:http://bbs.cmnxt.com/thread-5688-1-1.html,文章通俗易懂,我觉得里面的参数整定办法挺好用,希望能对您有些帮助。

  5. 老薛 说:

    我是外行看热闹。觉得飞的不错了!
    从视频里能感受到京城冬天的冷。。。

    • 北京最近相当冷啊,呵呵,触屏手机用手套摸不动,只能赤手上阵,一早上过去手背上就裂了几个小口子……
      这个视频如果以为是我遥控成这样,那还算是飞了几秒钟,可惜我目前只是遥控上下而已,哈哈,悲剧啊

  6. 法国公鸡 说:

    博主的博客很喜欢,支持一个了!同时祝各位网友龙年吉祥、平安!

  7. boboking 说:

    四轴编队飞行 http://www.xici.net/d162567489.htm
    期待博主的进度啊,到时候我们仿制,然后大家聚会,编队飞行!

  8. obK仔 说:

    请教动力老哥
    最近买了四轴的相关零件
    发现电调电机的线有点短,够不着连接板,想延长电线
    应该延长电调到连接板的两根线还是电机到电调的三根线会好点呢?
    感谢你的指导!

    • 我的电调线也有点短,延长的是两根电源线那个,毕竟弄两根比弄三根容易点,延长谁本质其实是一样的

      • obK仔 说:

        谢谢你啦~

        还有个问题想请教请教,之前你提到用陀螺仪来达到误差修正的功能,大体是如何实现的呢??

        想了很长时间都没想通..呵呵..

        • 这里有个假设,就是陀螺仪测量角速度比较准确,而加速度器测量误差比较大(因为震动的原因)
          所以我们想知道飞行器倾斜角度的时候,主要靠角速度积分来计算;
          积分的问题就是时间长了,会产生很大的误差;所以就需要再引入加速度的测量值进行修正,
          只有加速度本身的测量误差,可以用多次读数取平均值的办法修正。
          此外,角速度用
          0.9*积分角速度+0.1*加速度测量值
          计算,也就是说,更信任角速度的结果

          • obK仔 说:

            好的..非常感谢..可能还需要结合实际编程来深入理解..

            请问介绍角速度相关理论的网站是参考你介绍帖里的哪个页面呢?可以提供一下吗?呵呵..

            最近还在折腾几个传感器芯片的焊接啊..有热风烙铁来吹焊..但就怕温度过高会把芯片吹死了..

          • to: obK仔
            具体的地址我不记得了,大概是搜了几个关键词:四轴,平衡,算法。或者再加上陀螺仪和加速度。

            另外,那几个芯片太难焊了,我没有风枪,用电烙铁把芯片弄坏了,最后还是买了现成的小板子

          • obK仔 说:

            动力老哥.再请教一下.

            一般电调上电以后没有响声代表是出厂以后没有经过初始化吗??

            你的电调是怎么控制的呢?Servo.write设置的值最大和最小大概是多少呢?

            很困惑啊.感谢!!

          • 电调上电以后,只要PMW周期合适就会有响声,初始化前的响声和之后不同。
            如果没响声,应该是PWM出错了。
            一般好盈程序用的是标准航模PWM范围,每个周期是20ms,其中高电平占0.9ms~2.1ms,分别对应电机的最低和最高转速。
            我没有用Servo.write,是用digitalWrite隔一段时间分别输出0或1来控制PWM的,主要是觉得这样比较精确。

          • obK仔 说:

            谢谢啦~~刚刚学会如何第一次设置油门最大转速和最小转速..

            现在可以让他们转起来了..

            但如果要重设这个最大和最小的转速..

            是不是和第一次设的时候是一样的呢?因为我发现现在同一个PWM周期,但每个马达转起来的速度却会不一样..

          • 重设应该是一样的,我是把4个都并联起来,统一发PWM进行设置的。
            但是转速确实不完全相同,油门从小向大调的时候,四个电机是陆陆续续开始启动的

          • obK仔 说:

            是的..后来我终于看懂了那款电调的说明书..
            现在能够比较线性地控制马达的转速了..

            现在就差蓝牙模块调试好就可以做点简单的飞行了..呵呵..
            感谢你呀动哥..

            对了..动哥有没加个开关和大电容在电池旁边做个滤波这样呢?

          • 不错不错!
            我没有做电池的滤波

  9. leon 说:

    建议改用PIDT。最好先采集电机的特征函数,建立数学模型,用Matlab先模拟一下,优化以后再进行飞行试验。可以改用ArduPilot的板子,新版的带有GPS和各种必要的传感器

    • PIDT是什么,以前没听说过啊,有没有详细点的说明?:)
      我先用现有的板子和传感器实验实验,主要在于学习经验。实在不行了再换ArduPilot或者其他飞控板试试。

  10. leon 说:

    PIDT是考虑到系统延时的PID

发表评论

可以使用下列 XHTML 标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>