kortan 发表于 2008-9-17 23:59:07

想做四轴飞行器 自动驾驶(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.

kortan 发表于 2008-9-21 01:32:11

【8楼】 luzhengmao 

有没有3轴的?

luzhengmao 发表于 2008-9-20 18:11:05

单轴电子罗盘 我选雅马哈的芯片 好像1-2美金,我是那他们样片  i2c 接口的。

zy_sh_npk 发表于 2008-9-20 12:07:42

呵呵,先把德国佬的那个实现,再说你的这个自动导航吧。至于这个3轴磁力计(电子罗盘),有人能给些更多的信息吗?

yzjzs007 发表于 2008-9-20 11:15:58

应该再加个还有摄像头 DSP 

这个没有自动化博士 机电硕士肯定搞不出来

luzhengmao 发表于 2008-9-18 23:05:48

RTCM 的数据源一般人是没有的。



一般GPS只能使用RTCM 1 3 作伪距差分,就是这样的数据源一般你也很难搞到。

另RTCM 需要数据链路的 这个框图中没有

kortan 发表于 2008-9-18 16:31:42

【3楼】 zhcool_521 

难度确实比较大,投入也会不少。现在只处在技术准备阶段。待准备足够充分了才敢开工。

可以先实现有人驾驶的。

zhcool_521 发表于 2008-9-18 14:21:06

牛,楼主 开始施工了吗? !

microyao 发表于 2008-9-18 02:01:39

难度甚高。。。支持楼主。

xj_1232005 发表于 2008-9-18 00:16:34

我顶!

kortan 发表于 2008-9-22 20:55:25

【15楼】 zhengwei2005 

想法不错 等项目启动肯定会像开源充电器那样分工的。

zhengwei2005 发表于 2008-9-22 19:22:02

确实是件很具挑战性的项目。建议四轴飞行DIY论坛分若干攻关小组。第一组:飞行姿态估算及控制;第二组:电机驱动及动力电池选型;第三组:碳纤机架(包括螺旋桨)设计;第四组:应用开发,如图像视频设备等。。。以后老外都要到这里找资料。

kortan 发表于 2008-9-21 20:38:18

【12楼】 TroyLee 

谢谢!顺便说一下那个autopilot项目后来变成商业产品了。开源的只有很早期的版本2.5板。上面贴的v3的框图是经过验证可以工作的。v3的原理图和程序好像没有开源。

有兴趣的朋友可以参考另一个开源项目。

http://vicacopter.com/



【13楼】 Alex_rcpilot 

我也在北京 希望用和你交流一下,我的QQ1998585。

Alex_rcpilot 发表于 2008-9-21 15:34:45

很明显这个系统构架是把物理层的很多东西交给了一片AVR来完成。惯性测量、地磁测量、舵机信号产生,都是把AVR当作一个接口在用,这样的效果也挺好的嘛。



我目前是把惯性测量器件做在一起成为IMU,用一片MCU来完成接口。电子罗盘与舵机准备另接一片物理层MCU。



有的朋友说16MHz下的AVR用来做数据采集、Kalman滤波、通讯等一系列运算速度不够。不知道在IMU上做Kalman具体怎么实现才算够用。

TroyLee 发表于 2008-9-21 14:08:22

http://autopilot.sourceforge.net/



幫你補上圖片出處...

Alex_rcpilot 发表于 2008-9-21 13:14:30

寒!刚才问了Honeywell的2300要几KRMB。

Alex_rcpilot 发表于 2008-9-21 13:09:42

Honeywell出一些罗盘。

colorat 发表于 2009-11-26 22:26:08

学习下吧。。

newencn 发表于 2009-11-27 00:13:04

  15楼的提议不错,在整个开源项目中分工更加明确一点,有利于加快项目的进展。

  目前,应用方面有同志开始着手研究了吗?最基础的就是四轴与PC机的无线通信,如有资料,一同分享!

caosix 发表于 2009-11-27 11:47:44

目前大家的四轴,,都已经可以::人工遥控 飞行了...本论坛也有个帖子说:做成了自主飞行!??不过,俺持疑问态度!!

自主飞行,确实是需要:楼主所列出来的东西,,越齐备越好..就是担心整个飞控板造价???能控制到 一千 RMB以内就好!!(包括传感器)

wchp314 发表于 2010-3-27 18:06:18

MARK!

jhzhao2004 发表于 2010-6-2 11:40:14

mark

neil 发表于 2010-6-2 16:11:22

要是想玩玩原理,3轴的磁、3轴的加速度计可以选择美心半导体。有谁用过三轴的陀螺啊?

newencn 发表于 2010-8-19 22:46:41

还好,买个座位学习……

thl315 发表于 2010-8-20 08:44:54

很好的资料.谢谢.

mosidao 发表于 2011-4-23 06:18:28

顶下

jmp2002911 发表于 2011-4-23 10:28:18

楼主有没有新的进展啊?

cloudxxcloud 发表于 2012-10-20 23:08:31

mark一下
页: [1]
查看完整版本: 想做四轴飞行器 自动驾驶(UAV) 的朋友注意了 关于 系统构架 的建议【恢复】