想做四轴飞行器 自动驾驶(UAV) 的朋友注意了 关于 系统构架 的建议【恢复】
这里给想做四轴飞行器完全自动驾驶(非短时辅助平衡)的朋友一些建议,以免刚入门的一些朋友走弯路。最近研究了一些国外无人驾驶直升机的成功案例。他们的硬件构架有一些共同点。
主要构件如下
传感器部分:
1.3轴陀螺仪
2.3轴加速度传感器
3.3轴磁力计(电子罗盘)
4.大气压力传感器(用于测量高度)
5.GPS模块
控制部分:
1.1个单片 负责采集1-4传感器的数据,对PPM接收的信号进行解码,驱动马达和伺服器。
2.1个高性能的ARM处理器 与单片机通过串口通讯。 负责把单片机采集的数据导航数据进行处理,接受GPS位置信息,计算出飞行器的
倾角和各个轴的速度和加速度。根据这些数据通过控制策略把驱动信号通过串口送回单片机。
其他部分:
1.PPM发送、接收
2.数据链路
3.地面站单片机、PC机。
重点讨论这几个问题。
首先这里的传感器是否必须加入呢?这些传感器都比较昂贵,要是能少几个也能行该多好啊。传感器需要3轴吗?2轴的行不行?
陀螺仪就不讨论了,没有3轴陀螺你手动飞行都别想。
Q:有GPS了,为什么还要加速度传感器呢?加速度传感器能得到位移,为什么要GPS?
A:GPS能得到真实的位置,也能得到速度和加速度,但是它太慢了,而且精度不高,所以必须结合加速度传感器的数据对真实的速度和加速度进
行估算。
举个例子,A点位置为xy(0,0),B点位置为xy(10,10). GPS是绝对定位,由于误差大约是10米,它能告诉你A点和B的位置,而A点到B点直线上的
任意位置它无法给出。你不可能等你的飞行器跑出10米后再进行位置校正,你需要得到精确的位置信息。怎么办?这时候加速度传感器上场了
,它能告诉你飞行器沿着y走了1m 这时候你就能估算出你的位置是(0,1)。接着加速度传感器告诉你沿着x轴走了1m。你能估算出现在你的位置
是(1,1)。在GPS定位精度不够的情况下也能得到飞行器准确的位置信息了。
加速度通过积分能得到速度,再积分能得到位移。积分的过程会把很小的误差累计进取,最终形成无法容忍的巨大误差,需要GPS进行校正。
接着上面的例子,加速度传感器能告诉你沿着x走了多少,沿着y走了多少。如果没有GPS只听加速度传感器的话我能得到准确的位置吗?答案是
不能。由于加速度传感器是有误差的,他告诉你的每一步都有误差,如果你只按照他说的走有可能把你带到河里去。 而且随着时间的推移加速
度传感器测量位置的误差越来越大,他说的话越来越不能让人相信了。必须找GPS大哥问一声“喂!我到底走到哪里了”。
另外加速度传感器的作用之一是测量倾斜角度(在动态条件下需要结合陀螺仪数据才能得出真实倾角)。如果飞行器的倾角不知道就别谈控制了
。
Q:一定要磁力计吗?那个东西这么贵,不要它好不?一定要3轴吗,2轴的行不行?
A:不要还真不行。GPS是可以测出行进中的方向,但是精度不够。如果我得不到准确的方向信息,不只是不知道该往哪个方向走那么简单。如果
我不得不到准确的方向信息,我就不知道加速度计测量加速度值是哪个方向的,也就不知道速度和位移的方向。造成的结果是我无法估算飞行
器的位置,或者估算的值是错误的。
2轴的磁力计在飞行器倾斜角度不大的时候可以工作,倾斜角度很大时不能工作。在倾斜角度很大时你可能要屏蔽磁力计的数据,以防止方向出
现错误。(方向角错误会造成位置误算的严重错误) 结论是可以用,但是要作特殊处理。推荐使用3轴的。
Q:大气压力高度计一定要用吗?
A:GPS的高度测量很不精确,如果没有大气压力高度计很难维持高度。需要用。
接下来讨论控制部分。
Q:一定要单片机+Strong ARM吗?能不能只用单片机就搞定,或者只用ARM? 需要多高性能的ARM处理器?
A:只用单片机构成的飞行器是可以飞的,但只是手动飞行。自动驾驶需要进行大量的计算。我所见到的一个非常成功的设计是使用的神经网络
进行控制。神经网络所需的运算量是巨大的。卡尔曼滤波、坐标变换都是相当耗费资源的。
只用ARM可以实现,但是例如传感器数据采集、读取PPM遥控信号、输出控制电机、伺服的PWM信号这样的任务都会占用处理器资源。
所以最好的方法是用单片机做辅助性的工作,Strong ARM进行导航数据处理工作。他们之间使用串口通讯的。由于数据量不大所以串口完全可
以胜任。用串口的好处是如果你发现你现在用的ARM性能不够可以换个高性能的,只需要连接串口就行了,而不需要更改整个设计。
ARM处理器需要很高的性能。据国外一个成功经验,处理器用的是一个600Mhz的ARM处理器,而且他本人说 yes!it use all of them. 最低配置
为200Mhz的ARM处理器。
这里要强调一个问题就是不要使用性能不高不低处理器。比如AVR32的低端系列AT32UC3A*。作为单片机辅助处理使用它的性能有很大浪费。作为导航数据处理用它的
性能不足。
随着代码的优化对处理器性能的要求是否会降低是另一个问题了,据我所知目前要达到很好的控制效果需要最低200Mhz的ARM处理器。
另:也可以使用非ARM构架的高性能处理器,只是ARM处理器通用性强一些。
下面是一个成功的直升机自动驾驶仪的方框图。
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_421204.gif
(原文件名:autopilot_rev3block.gif)
本贴被 kortan 编辑过,最后修改时间:2008-09-18,00:23:47. 【8楼】 luzhengmao
有没有3轴的? 单轴电子罗盘 我选雅马哈的芯片 好像1-2美金,我是那他们样片 i2c 接口的。 呵呵,先把德国佬的那个实现,再说你的这个自动导航吧。至于这个3轴磁力计(电子罗盘),有人能给些更多的信息吗? 应该再加个还有摄像头 DSP
这个没有自动化博士 机电硕士肯定搞不出来 RTCM 的数据源一般人是没有的。
一般GPS只能使用RTCM 1 3 作伪距差分,就是这样的数据源一般你也很难搞到。
另RTCM 需要数据链路的 这个框图中没有 【3楼】 zhcool_521
难度确实比较大,投入也会不少。现在只处在技术准备阶段。待准备足够充分了才敢开工。
可以先实现有人驾驶的。 牛,楼主 开始施工了吗? ! 难度甚高。。。支持楼主。 我顶! 【15楼】 zhengwei2005
想法不错 等项目启动肯定会像开源充电器那样分工的。 确实是件很具挑战性的项目。建议四轴飞行DIY论坛分若干攻关小组。第一组:飞行姿态估算及控制;第二组:电机驱动及动力电池选型;第三组:碳纤机架(包括螺旋桨)设计;第四组:应用开发,如图像视频设备等。。。以后老外都要到这里找资料。 【12楼】 TroyLee
谢谢!顺便说一下那个autopilot项目后来变成商业产品了。开源的只有很早期的版本2.5板。上面贴的v3的框图是经过验证可以工作的。v3的原理图和程序好像没有开源。
有兴趣的朋友可以参考另一个开源项目。
http://vicacopter.com/
【13楼】 Alex_rcpilot
我也在北京 希望用和你交流一下,我的QQ1998585。 很明显这个系统构架是把物理层的很多东西交给了一片AVR来完成。惯性测量、地磁测量、舵机信号产生,都是把AVR当作一个接口在用,这样的效果也挺好的嘛。
我目前是把惯性测量器件做在一起成为IMU,用一片MCU来完成接口。电子罗盘与舵机准备另接一片物理层MCU。
有的朋友说16MHz下的AVR用来做数据采集、Kalman滤波、通讯等一系列运算速度不够。不知道在IMU上做Kalman具体怎么实现才算够用。 http://autopilot.sourceforge.net/
幫你補上圖片出處... 寒!刚才问了Honeywell的2300要几KRMB。 Honeywell出一些罗盘。 学习下吧。。 15楼的提议不错,在整个开源项目中分工更加明确一点,有利于加快项目的进展。
目前,应用方面有同志开始着手研究了吗?最基础的就是四轴与PC机的无线通信,如有资料,一同分享! 目前大家的四轴,,都已经可以::人工遥控 飞行了...本论坛也有个帖子说:做成了自主飞行!??不过,俺持疑问态度!!
自主飞行,确实是需要:楼主所列出来的东西,,越齐备越好..就是担心整个飞控板造价???能控制到 一千 RMB以内就好!!(包括传感器) MARK! mark 要是想玩玩原理,3轴的磁、3轴的加速度计可以选择美心半导体。有谁用过三轴的陀螺啊? 还好,买个座位学习…… 很好的资料.谢谢. 顶下 楼主有没有新的进展啊? mark一下
页:
[1]