又一次悲剧的试飞

在闲置了一个多月之后,今天又进行了一次试飞。首先说说最近的修改:

1. 把电机控制的频率改到了400Hz,之前是50Hz;
2. 把螺丝固定的Arduino板子改成4个弹簧支撑,用来减少电机高频振动对传感器的影响;
3. 顺便把45度安装的X型改成了垂直安装的十型,作用不大,节省一点代码和减少可能出错的环节;
4. 尝试增加一个自动调节平衡位置的代码;(好几个参数需要调节,都调准了才能飞稳)
5. 加了一个安全的控制,如果飞行器倾角超过45度,则所有电机同时停止;

传感器改用弹簧连接

传感器改用弹簧连接

用手握的方式测试看来,目前四轴飞行器的姿态判断还算可以。基本上晃动它的时候,能感觉到电机速度的变化以及带来的反向阻力。
所以目前的调试主要在PID参数的调节和XY方向的偏移量调节。这个偏移量,是因为电机和飞行器不对称带来的误差。简单的说,假如飞行器已经处于平稳飞行的状态,这时候计算得到的左右两侧的螺旋桨转速应该相同,但是由于飞机本身的不对称,这时候反而会发生倾斜,所以需要给它设置一个平衡的偏移量。

这几天跟wnq同学请教了一下,据他介绍kk飞控仅用陀螺仪就可以上天,至于陀螺仪长期积分带来的漂移误差,可以由“飞行员”通过遥控器手动调节。我之前一直调试的目标是让飞行器实现平衡自稳,这样说来可能有点儿冒进了。wnq提醒我适当的斜飞是可以通过手动调节修正的,这样可以不用太纠结在完美的水平悬停上

另外最近的新朋友darkorigin也提醒了“近地效应”,因为贴近地面的时候,各种气流互相干扰,反而不如飞上天以后稳定。

下一阶段的一些想法和目标:
1. 暂时放弃手机控制,改用遥控器和接收器进行控制,主要优势在于控制距离、手感和便利性;
2. 增加运动的控制,就是在倾斜状态下手动调节平衡;
3. 进行电子指南针的一组小实验,因为我的遥控经验不足,争取先实现“无头模式”避免炸鸡;
4. 组装一台wnq同学的飞控练练手;
5. 自动寻常平衡点的算法需要再多测试和验证。

最后附上今天悲催的试飞视频。今天有点小风,犹豫了一下还是去阳台试飞了。前40秒使用的PID参数看上去还不算太离谱,之后试着调了下参数,结果振动失控了,摔碎若干小配件……



对 “又一次悲剧的试飞” 的 44 条 评论

  1. Recercar 说:

    又赶上更新了…是不是飞行器的重量太过集中于重心了?电机毕竟控制精度有一定长度的误差,重心集中,静不安定就更突出,电机稍微的误差就会放大影响…

    • 你说的重心还是有点道理,如果重量都分布在四个螺旋桨下面,应该会稳定很多。不过这个被结构限制了,不太容易实现 :)
      据说玩微型四轴的,不用专门调平衡,自然就挺稳的,因为电池把重心拉的很低(相对于螺旋桨)

  2. Recercar 说:

    还有 加弹簧 可以削减突发加速度 但是不会减少震动,你需要在弹簧上加阻尼…将弹簧震动势能及时转化为热能

  3. weihan 说:

    四軸飛行器是如何平衡的阿? 請問可否教教我? PID參數我一直搞不定 :(

    • 我现在就是想用PID来调节四轴飞行器的平衡,理论上是可行的。但是PID调参数真是个体力活,目前我也还没有调试成功

      • 乐乐寺 说:

        猛男啊,单轴的pid就已经很让人不爽了,你还要一次四轴一起联调么?不容乐观啊。你把结构改改吧,重心分布真的不是太好,还有那一坨坨的线哪……看着就影响平衡。上泡沫吧,我见过成品都是泡沫壳子包装好的,很轻,只要不是直摔下来的就好说。再说摔泡沫根本不费钱也不会砸到里头的部件。导线,如果电流不是很大的话,用一些细漆包线来连接好了,接头只要少数焊点,这样四个电机的重量可以控制得误差很小。尽量在静态上做好这些平衡的工作嘛,下回去给你弄个尸体参考参考。

  4. wnq 说:

    电机控制400多?这么高,好像不行吧。不管arduino能搞出多高的频率,还是要通过电调的。目前常见的电调速度都很慢的,才20多吧。
    减震的话,目前没有用了会变好效果了例子,一般用尼龙柱固定,我之前试过用橡皮筋固定的,没有让飞控更好,但也没更坏,觉得意义不大。我觉得橡皮筋会比弹簧更柔和。

    视频最后好帅啊,哈哈哈,不要怕炸。换木头架子呗,吸能型的,炸的时候坏架子不坏设备。另木架子吸收震动的效果会更好

    • 电调应该可以支持到400Hz,我倒是担心电机的惯性比较大,即使调高调低,最终是需要延时一会儿才有反应 :)
      这个视频最后是参数调坏了,不然的话虽然晃来晃去,但是总体看还是平的

  5. darkorigin 说:

    。。好心疼啊

    一个实用的小建议,建议做个训练支架。

    很多卖飞机模型的都有,一般是软结构的2跟塑料交叉摆放,固定到直升机脚上,末端有小球起到脚的作用,由于塑料管有弹力,一般的摔机(只要不是太高或者是旋翼部分着地)都能有效保护。制作成本很低。
    可以参考了之后做一个适应4轴的。

    在淘宝搜索 航模 练习架 能看到的。

    • 航模的好东西还真不少啊,我想弄几个圆形的东西,把这几个螺旋桨围起来。我倒是不担心四轴摔坏,因为我家在十几层的楼顶,特别担心它失控以后掉下楼,太危险了……

      • darkorigin 说:

        很多成品都有保护环的。旋翼外侧是被保护住的。之前看人家俄国佬做的可以负载机枪的那东东好像就是有防护的,除了防摔之外,可以有效的防止卷入东西,比如在复杂环境下卷入的树枝,晾晒的衣服等。
        并且个人感觉是不是对集中风力也有关系(毕竟四周扩散的空气少了,更多空气下压会不会好很多)

  6. darkorigin 说:

    调整参数一定要停下来,然后还是在手上感受下,最后在使用,
    严谨点似乎好些!
    就好像药品研制,一般是先理论推理,推理完了才动物试验,N多轮动物试验之后才可以临床试验。

    期待你的平稳测试尽快通过鸟~~

    • 唉,我在手里试过,摇摆的时候能感觉到螺旋桨的纠正力,但是没有加大到很高的油门试过,听声音太吓人了,没敢用手抓着

      • darkorigin 说:

        调试的时候自身安全确实。
        毕竟安全是第一位的。
        前些时学航模的时候教材也都是这么说的,毕竟旋翼,特别是大号旋翼飞出去的话杀伤力是非常大的。

        记得接触的第一个玩具级(3.5通的)的直升机 遥控器上面就有2个模式,新手和高手级的。区别我分析了下就是信号的幅度,新手级的飞行速度,上升速度都是比高手级的低很多。这样安全。高手级的则更快,玩的变化更多。

        调试的时候,代码是不是除了安全代码外,对于4个电机的转速也做限制,先慢速调试。

  7. zEus 说:

    受教受教,哈哈,原来这种伸缩绳是这样用的,的确是个安全试飞的利器。另外,最近几天看了您的源码,有个疑问:就是我觉得十字模式的四轴飞行器,X轴、Y轴应该是独立平衡的吧,难道不需要用两套PI参数分别进行pid运算吗。

    • 你说的对,我是觉得对于相同的电调和电机,差不多对称的四轴,它们的PID参数应该是差不多相同的,这个假设可能不一定合理。
      但是参数再多,真不知道该怎么调了

      • darkorigin 说:

        看样子。很可能存在这个问题。
        因为即使机器本身可以做到重心能平稳的在中间并且4个旋翼负载完全相等
        但是户外的话,风是必须考虑的。XY轴双稳似乎。。。。。

  8. daifei58 说:

    http://bbs.5imx.com/bbs/viewthread.php?tid=613933&extra=page%3D2
    已经有人DIY手机控制小四轴,WIFI实时H.264视频,可惜这人不愿公开硬件配置和程序,悲哀!

    • 哇,去年还没有见到这种240轴距的小四轴,看上去还挺不错。刚才在淘宝上翻了翻,貌似已经很多卖这种240轴距的配件了,据说机身全重350克左右。

  9. peter cao 说:

    can you give a phone# to call and discuss.

    Thanks

  10. darkorigin 说:

    其实如果测试的话,可以尝试搭建一个测试平台。
    对于参数设定没有帮助,主要目的是便于测试,防止摔起机。节约成本(毕竟摔机基本上都会要换或者修配件)和调试时间。

    底座。关节结构(类似动物的关节囊和关节头)伸缩结构
    关节结构中关节囊焊接在底座上。关节头部分焊接伸缩结构,连接到4轴上

    这样飞行器能运动的区域也仅限于关节囊活动的区域,高度仅限于伸缩结构的长度。
    即使失控,也可有效的控制在安全的范畴内,不会摔下。

    关节结构可以参照万向轮,或者机械鼠标反过来的样子,伸缩结构可以参照天线(不过如果要负载一个四轴,天线的长度和粗细可能不足以承担。)

    • darkorigin 说:

      再说下,我想到我说的原型了。 小时候玩的街头游戏机的摇杆,,对 就是那样的结构,摇杆是被牢牢的控制在一个幅度内,前后左右都有幅度。

      只是上面做个伸缩结构。伸缩叉衣的杆子(或者类似轻质鱼竿)差不多的东西。。上头固定飞行器。

      这样就不怕失控了。 还有个好处,就是你的电源可以把电池换下了。毕竟电池充电时间不短吧。 用大号的电源带着。 测试一下午想必很多参数都有了解了吧

      而且可以用电脑不断的记录参数,状态。

    • 我理解你说的这个设备了,就是又能旋转,又能伸缩的天线。不过这个做起来可能有点儿困难,今天买了一大堆高弹性橡皮筋,明天试试看好不好用 :)

  11. darkorigin 说:

    找到一个带源码的成品飞控了。里面PID部分代码能看到。
    可以参考下
    http://code.google.com/p/multiwii/downloads/list

    早上看4轴商品飞控找到个方案
    介绍:
    以上搭配为主流MWC硬件平台常用的组合,相当于把Arduino Pro Mini与FFIMU 0.35 9DOF IMU传感器组合起来,一体化的设计会让飞控工作更稳定。

    CRIUS MWC MultiWii SE 标准版4轴/四轴飞控板 2~6轴

    也就是说,有好几种模式,对应不同的机架,2轴到6轴都支持。

    • darkorigin 说:

      这个飞控仔细的看了下法国作者的官网,发现居然是个开源项目
      从电路图(额,当然我们不是盗版商,我只需要知道它对应的接口,免费翻程序找了),到源码,还有就是调试工具都开源了(Oh mygod!)

      其实代码本身可以举一反三,其实个人觉得核心PID算法对于很多飞行器都很有用处。不仅仅是4轴。

      当然,我不是为了制作成品,我是为了学习。

    • 这些开源的我下载过,看得我晕头转向,再加上有点轻敌,想自己先琢磨琢磨看看。现在看来,是得静下心好好看看别人的代码先 :)

      • darkorigin 说:

        站在巨人肩膀上的动力老男孩,我看好你哦
        呵呵。
        http://bbs.5imx.com/bbs/viewthread.php?tid=562214
        这里是他们配置好的PID参数,对应程序可以用的。

        只是传感器和你的不同。没细究他的传感器的接口。如果不是IIC好像还要改代码的。

      • darkorigin 说:

        mwc的代码确实看的很晕。不知道是我编程水平已经清零了,还是他写的太乱
        昨天为了找他IMU通讯的几个传感器地址,翻遍了IMU那个文件,最后愣是没找到。CONFIG 也没有,乱点个文件反而看到了。。

  12. SSS_SXS 说:

    动力兄,这两天仔细看了你关于PWM的代码,有个疑问,调速区间实在0.9–2.1MS,但你在计算不同频率的值取得是0.9-1.9MS,是否有问题?

    • 这个电机功率比较大,PWM到1.4ms左右就升空了,到1.5ms的时候就已经无法控制(飞到10多米高)所以我几乎没有把它调到2.1过

  13. weihan 说:

    想請問一下,前40秒所使用的PID参数有確切的數值可以參考嗎? 我們的四軸飛行機連穩定的停在空中飛行都無法實現 該怎麼辦呢?? 謝謝

  14. 螃蟹狂飙 说:

    可以从滤波上减少震动。

  15. xiao9 说:

    动力哥,您那个四轴上的Arduino板子是哪个型号的?

发表评论

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