5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: c_nmusic
打印 上一主题 下一主题

共轴双桨自动驾驶直升机

[复制链接]
581
 楼主| 发表于 2008-11-26 16:36 | 只看该作者
想要把一个东西做稳定还真不容易呢。今天就又遇到了芯片BUG引起的问题,害我基本上一整天都没有新进展。

今天加上一个监测遥控器输入的屏,这样我的液晶屏上现在就有3屏了。可以显示传感器数据,遗传算法进化情况和遥控器解码后的数据。
本来都很顺利,因为硬件不需要改动,代码也只是复制/粘贴的问题。但奇怪的问题出现了。

如果不切换到遥控器解码屏幕,一切都OK,I2C数据流稳定。可一旦切过去,坚持不过3分钟程序就报告丢失和主机的连接。那万用表量,发现I2C的DATA线一直处于低电平。把液晶屏拔掉也没用,主控板的CPU复位后还是低电平。这就说明是驱动板的ATMega8把数据线给我拉低没有释放造成的。

足足花了5个小时解决这个问题,一点头绪都没有。最后还是把传输的数据调整了一下,不用浮点了,换成百分比然后用BYTE输出。以前需要26个字节的数据现在16个字节就搞定了。

一切终于正常了,现在已经测试过5分钟没有任何问题。

碰到这种问题实在是太让人郁闷了。:em11:  不知道这算不算是M8的芯片BUG?

欢迎继续阅读楼主其他信息

582
发表于 2008-11-26 17:06 | 只看该作者
哥们 加油啊 技术上帮不了你 精神上永远鼓励你
583
发表于 2008-11-26 22:08 | 只看该作者
:em23: ..........无语   帅气
584
 楼主| 发表于 2008-11-27 14:24 | 只看该作者
刚才楼下进行第一次试飞,以摔坏2个桨结束。最后查明原因是ESKY的接收机被干扰导致解码出错误的油门数据所致。

为了能完全手动控制住四轴,我没有把油门信息在代码里写死,而是通过遥控器实时解码。

刚才程序在学习1,3轴的平衡时,四轴慢慢蹭到了一个角落里,忽然被一个莫名其妙的信号干扰,四轴蹭地腾空而起,然后一侧着地,2个桨的2个叶片就这样摔断了。

虽然有光电传感器,但飞起来的话落地时装到也没办法。只能算交学费了,现在换上了T6C的二次变频接收机,看看是不是抗干扰能力能好些。
585
发表于 2008-11-27 15:01 | 只看该作者
LZ强人啊 !!!
做个记号~~~~~~~~~~~~~~~~~~·:em15:
586
 楼主| 发表于 2008-11-27 17:18 | 只看该作者
遗传算法筛选了50个个体后,给出了我第一个P参数,0.083。
这就是今天摔坏2个桨的收获。

修改了程序,加入了一些安全措施,比如在学习前,可以手工设置一个比较满意的油门,开始学习后,将马达油门最大值锁定。还加入了一些暂停操作。希望明天的试飞不要再摔桨了。
587
 楼主| 发表于 2008-11-28 11:25 | 只看该作者
刚才顺利跑完3代,150个个体,得出下面的数据,0.703。没有再坏桨了。:em15:
不过看起来筛选算法有些问题,第二代中的个体净是些让飞机机头砰地的家伙。
588
发表于 2008-11-29 06:56 | 只看该作者
:em26: :em26:
589
 楼主| 发表于 2008-11-29 13:37 | 只看该作者
继续试飞,这回试验X,Y2个轴的P参数。刚才安全跑完150个个体后,程序使用最佳个体供我实际试飞。可惜效果不好。

看来使用俯仰角和倾斜角来作为判断依据并不好,因为飞机很有可能自己蹭到一个不平的地方。2个角度静止状态下就不为0。这样不管代码怎么调整,最后的得分都不如在平地上得出的分高。

下面使用陀螺仪的数据取平均来进行评分,不知道效果如何。

另外一个问题就是油门,开始可以稍微离地的油门,等到测试了2代以后已经只能在地上蹭了。现在代码里给油门稍微增加了一点补偿。

[ 本帖最后由 c_nmusic 于 2008-11-29 13:39 编辑 ]
590
发表于 2008-11-29 16:59 | 只看该作者
今天由俺来顶一下:em15:

[ 本帖最后由 laoma 于 2008-11-29 17:00 编辑 ]
591
 楼主| 发表于 2008-11-30 10:45 | 只看该作者
今天继续试飞。

昨天增加的代码包括种群数据的保存/恢复,最佳个体的飞行测试等等,今天都用上了。现在每次进化一代,然后就以最佳个体进行飞行测试。

效果还是不错的,依照进化了3代的2个参数,已经成功地让四轴完全离地20cm了。虽然不是很稳,有点晃,但没有再向以前那样直接一侧着地。

可惜我对于四轴操作非常不熟练,一看它飞起来了有点慌,然后马上关油门让它降落。结果把起落架给撞断了。:em17: 再次交学费。



下面要上全金属起落架,这样就不怕摔了。:em15:

[ 本帖最后由 c_nmusic 于 2008-11-30 10:46 编辑 ]
592
 楼主| 发表于 2008-12-1 20:48 | 只看该作者
经过这几天的试飞,效果并不理想。目前,我认为这和起落架有关系。由于起落架四平八稳地让四轴呆在地上,只要是油门不够让四轴脱离起落架飞起来就无法准确判断出一组参数的好坏。

经过认真思考,我决定不用起落架了。



在起落架下面又多加了一层,上面用了以前2轮小车的前导向轮。就是一个铁球。



把起落架给挡住了。



放到地上的样子,除非各个参数调整合适了,否则四轴不会再四平八稳地呆在地上。

希望这样能更加准确地测量出PID参数。

由于现在的四轴不再会有一个稳定的状态,我想测试时间也应该可以缩短了。
直接一组参数一组参数地连续跑就可以了,中间不需要停顿了。
593
 楼主| 发表于 2008-12-2 19:40 | 只看该作者
今天实际试飞测试,那个铁球工作地很好,不需要多大油门就可以让四轴改变状态。
只是代码有些问题,现在还没有参数能做到让四轴“金鸡独立”。:em15:
594
发表于 2008-12-3 13:13 | 只看该作者
很久没回复了。:em15:
595
发表于 2008-12-3 14:02 | 只看该作者
来看看进度 继续支持LZ
596
发表于 2008-12-3 18:14 | 只看该作者
支持lz 加油!
597
 楼主| 发表于 2008-12-4 13:59 | 只看该作者
目前主要问题集中在软件上。

首先是遗传算法的筛选算法,评分算法的选择。目前选择的算法收敛速度太快,第二代的时候已经结果基本都确定了,50个个体中只有1-2个不一样,别的都是完全相同的数据。

另外就是马达突然加速的问题。由于不同的PI参数可能造成马达转速差异很大,导致再试验下一组参数时马达突然加速,这就会造成四轴突然一侧“跳起”,然后传感器检测到地面造成保护。这样这个参数上来就被“枪毙”了。
598
发表于 2008-12-4 19:54 | 只看该作者
高手!你的想法很好,很有创意,你现在遇到的问题主要是漂移等不确定因素,这些因素靠现有的硬件及软件很难解决,因为空气对这样轻的小飞机的影响实在是太大了,而且是不确定的,其实你的设计是正确的但是用在这样轻的小飞机上效果不佳,如果换架几吨重的真飞机,可能什么问题也没有。
599
发表于 2008-12-5 12:32 | 只看该作者
用了3天终于看完了。佩服佩服!继续加油!!!
600
 楼主| 发表于 2008-12-5 15:34 | 只看该作者
目前看起来,四轴的平衡控制比预期的要复杂,所以目前还是打算先手工测出平衡参数,然后再考虑遗传算法吧。

现在加上铁球后,可以在屋里安全地测试了,不用担心打到家具或者花花草草。虽然加上这个铁球并不能完全模拟出实际飞行情况,比那个情况复杂了。但如果这样都能平衡住,实际飞行时就没问题了。

现在的问题是螺旋桨的惯性延迟。

比如程序发现第一个轴偏低,于是通过对俯仰角做PID,程序可以增加第一个马达的转速,同时减小和它相对的马达的转速。有那么一个时刻,俯仰角为0了,这时就需要撤销这个调整。但由于螺旋桨的惯性,第一个马达不可能马上降速到正常状态,同样道理,和它相对的马达也不可能马上提高速度。就这差不多1秒的延迟,四轴就变成第3轴挨地了。

周而复始下去,一个四轴跷跷板做得。:em15:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表