RTT上实现四轴飞行器的例子

2014-7-18 14:09 [复制链接] 31 19661

虽然我的毕设题目是:四轴飞行器的控制,但飞行器的算法都是用最基本的算法。
; |& t- Y+ W# S! ~4 S# Z而让我自己感到更加有价值的部分是如何在RTT上运行一个飞控并较好的协调各个模块的工作。. R4 }" v, G- H$ y+ z1 |
  P( E0 M3 P3 ^* o
断断续续做了5个月,因为这几年都做类似的东西,所以做起来难度不大,我的目标是够用就行。: k1 e3 d2 A! k" C! K

, \9 |6 J. e$ s2 {  Z主要参数如下:: j1 N( K9 j$ t) Y  x$ o/ a1 O
        空机重量:390g;2 m: f, B. }3 ~
        起飞重量(11.1V 2200mAh):550g;
6 U0 C6 f" d6 \  C        续航时间:20分钟;% {# C/ m+ E- l/ e" N
        载重能力:200g;
- U1 A& ]- [. Z4 N0 x7 ^' Y9 Z3 q- F% B        悬停力效率:>10g/w8 F1 u/ i- Z$ _. X' E' Q

+ u+ e! @; t: q, l& @        电机:2206 kv12009 z: y& _$ b/ A& B
        桨:8043
: Z5 ^) t1 c! d9 F        单个电机最大推力 290g;
9 i; P. b/ j! K9 ~$ N
1 O% M. \0 J9 }1 o8 @        陀螺仪 MAX21000/ G7 m8 e. h! n3 D: H
        加速度计 ADXL362( A9 M+ P+ O) B" r) u9 S" G
        磁阻  HMC5983
  o9 {! J& {/ ^- [$ [        气压计 MS56119 Q! D4 h* ?7 v8 _
2 n2 h# a: Z5 z5 r
传感器全部使用SPI接口,软件利用RTT的SPI驱动,所以ODR非常高。
4 p0 q" n+ L2 B4 ?' V0 a) V5 d- R' h3 h* p8 N; j; j
陀螺仪ODR             2kHz
! a$ q5 m1 E# S5 C姿态解算更新率        1kHz; [7 @  V, e6 b( V4 n5 o, O; a$ f
控制更新率              1kHz0 g( C; h1 }. _' T, S
电调接受更新率        1kHz
  M/ G" s- _5 c. I7 a7 c6 Z9 Z' v(个人觉得以上都不需要那么高)
* Q- l! x2 s% g/ t% s5 z
* C# E* j1 K( t) Y全机一共9个微控制器,1个STM32F4 其他的STM32F1,全部运行RTT,全部使用CAN BUS 通信。8 D8 a( ]: w% n5 N
飞控集成度较高,可以单独完成飞行任务。0 h/ I; ~* k# q. c% o
拓展模块包括电源板,电调板,各个传感器,PWM解码模块等,因为有了CAN Bus,使用很方便,论文内有详细说明。
5 G; t. z8 K. y$ ~. a4 H# l, x5 e3 T
电调为自制兼容ESC32的硬件(感谢开源模型兴趣组的群主提供了ESC32的原理图)9 m* m8 d2 L2 v. [: j" |( }
软件上在ESC32与硬件之间加入RTT层,劫持了PWM更新函数,从而实现控制数据流使用 飞控<->CANBUS<->RTT<->ESC32 代替了传统的 飞控->WM->ESC32的过程,降低延迟,提供了反馈。
- L: ~- H+ K, _  c- J并以此来实现传统方法无法达到的1k控制更新率(意义不大)。
4 @- L! z' x2 c2 z2 g
. I" J+ g! S* Z. [论文里面提到几个新的思路,包括虚拟终端,大的PCB机架+电路,单总线在四轴上的应用,都是我在以前的制作中,感觉非常不方便后,提出的解决方案,在实际中也帮我省了很多精力去调试。
, s1 }. B" W# Z6 E7 rRTT也在做sensors了,以后做飞机就不那么累了。# y9 C0 G+ c6 ?
/ a# w& G# {" s9 }" q- y
如果需要,请在回帖中说明,如果是我经过理论去推导的,尽量讲解,根据经验给出的,我也只能说说经验。因为这是个比较大的工程,并非所有的算法都是有依据的。
3 y3 t9 s; x/ P! r* c1 L但大部分都没有经过推导,感觉那样就做了。% R8 L1 T2 V" P! K) Z
它帮我拿了校优一等,也算圆满了。. J! F3 _1 u& `  q9 }2 S
5 j5 `5 H- M( H' d- v( e
最后感谢RT-Thread提供了这个非常好的交流平台8 A/ D- X7 }. {( u) i6 O
感谢 AHRS&IMU 算法讨论群的 胡哥,黑条哥,麦兜,张博士(zht9961020),无雪大哥,信爷,FBI,军长,小菜,匿名四轴 等等等等,还有不发粽子的群主  Idolin。
0 @, [' ?0 h3 G" k( L4 q5 w# f感谢 RTT bernard和aozima的支持。
4 ]* e7 v" R- z3 U9 e4 t% z$ k! q! R
视频地址如下:# V; R9 y7 K. y" f
http://v.youku.com/v_show/id_XNzIyMTU5MTky.html3 h2 E0 I6 E5 m' S9 b( e: M

/ E+ F% l6 W1 d5 \1 m源文件较大,请在百度云下载:(链接已更新:2014.08.26)0 B' p; p) }) z( q
http://pan.baidu.com/s/1o6MAF6E
) S2 i+ s6 T  E3 Q! e5 _# w4 W1 q( ^% Y
图片如下
& Z, i. j" Z3 W6 u! ^$ h
6 x! C5 y3 ^1 j  ]3 @7 u6 X5 U) ]3 P% h  S  R# a, `

) J, K' c. t0 `% _& Z: B
: _% }/ S! S+ O0 b1 B% h. ^
& T& G$ t0 M1 ?  R+ }, n6 z2 {- V. T8 d+ ^3 R
3 B; K$ h8 v( O7 \

MAVLink微型飞行器的通信协议.pdf

3.43 MB, 下载次数: 73

MAVLink

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2014-7-18 14:16:37 | 显示全部楼层

RTT上实现四轴飞行器的例子

拜读中。。。。
使用道具 举报 回复
发表于 2014-7-18 16:46:17 | 显示全部楼层

RTT上实现四轴飞行器的例子

好厉害,9个MCU都跑RTT~
使用道具 举报 回复
发表于 2014-7-18 22:54:46 | 显示全部楼层

RTT上实现四轴飞行器的例子

本科毕设做成这样,不可思议
使用道具 举报 回复
发表于 2014-7-19 07:35:35 | 显示全部楼层

RTT上实现四轴飞行器的例子

图片添加上了
使用道具 举报 回复
发表于 2014-7-19 23:58:18 | 显示全部楼层

RTT上实现四轴飞行器的例子

很好,很强大,顺便问下,你这个四轴的控制距离是多少米?
使用道具 举报 回复
发表于 2014-7-21 09:27:46 | 显示全部楼层

RTT上实现四轴飞行器的例子

楼主的地面站用的APM?
使用道具 举报 回复
发表于 2014-7-23 02:51:43 | 显示全部楼层

RTT上实现四轴飞行器的例子

楼主的地面站用的APM?

, i+ o4 F# a% c! T2 }( }我用的是叫做QGC的地面站 来自pixhawk的项目 后来单独立项后 apm也使用 所以看起来一样的 : n" `3 G1 @1 a; ~  O" |) y2 j* S
论文里面也有一些简介
使用道具 举报 回复
发表于 2014-7-23 02:52:31 | 显示全部楼层

RTT上实现四轴飞行器的例子

图片添加上了
- f. u7 Q: {1 I: U+ T8 V+ C$ _; `! h( b

8 o+ R" U/ J* e) w7 [- x, L# T谢谢!!
使用道具 举报 回复
发表于 2014-7-23 09:38:00 | 显示全部楼层

RTT上实现四轴飞行器的例子

相当不错~~~~~~~     
使用道具 举报 回复
发表于 2014-7-23 19:43:30 | 显示全部楼层

RTT上实现四轴飞行器的例子

[quote]楼主的地面站用的APM?
: G0 R9 S. u- i
我用的是叫做QGC的地面站 来自pixhawk的项目 后来单独立项后 apm也使用 所以看起来一样的 & {1 ^4 _% q  j% ~# w
论文里面也有一些简介[/quote]
9 A+ b- d' H. W, C# O向您学习!
使用道具 举报 回复
发表于 2014-8-7 08:59:25 | 显示全部楼层

RTT上实现四轴飞行器的例子

毕设啊。。。,好强大
使用道具 举报 回复
发表于 2014-8-16 09:50:48 | 显示全部楼层

RTT上实现四轴飞行器的例子

百度网盘下不了。。
2 z0 y, [  n6 w3 ]; L! @2 x3 k/ L" `* {" _. c3 A9 G' D
为啥都用SPI而不用I2C?
使用道具 举报 回复
发表于 2014-8-23 09:54:33 | 显示全部楼层

RTT上实现四轴飞行器的例子

下载链接没有了,请再分享一下!
使用道具 举报 回复
发表于 2014-8-26 19:58:51 | 显示全部楼层

RTT上实现四轴飞行器的例子

百度网盘下不了。。& z+ C  u" X, K! s2 Y' k
- C- `1 I" R0 l5 n7 x4 s7 X0 e" ?
为啥都用SPI而不用I2C?
9 f2 d+ }, R$ w! a- l! h7 ~
SPI速度上有优势,读取数据延迟在10us级别,I2C在100us级别。
使用道具 举报 回复
发表于 2014-10-9 18:25:41 | 显示全部楼层

RTT上实现四轴飞行器的例子

lz,能不能讲一下,那个QGroundControl是怎么用的,MAVLink怎么结合到代码中,和使用,还有ESC32,lz留了那些接口,怎么校准的
使用道具 举报 回复
发表于 2014-10-12 04:27:54 | 显示全部楼层

RTT上实现四轴飞行器的例子

你好,  n9 B. j# @5 _+ m  R; l
关于QGC和Mavlink,可以看他们的官网 http://www.qgroundcontrol.org/。里面都有移植教程。
9 q( W+ H  d6 r& y, {( x飞控通过串口透传传到电脑上,QGC内打开电脑的串口,即可接受到数据。mavlink是一个头文件库,只需要包含他的头文件到工程即可。将数据转换成字符串后,使用mavlink的API建立一个帧。这个帧即是一个字符串数据,调用串口发送函数发送出去即可,飞控内是用消息队列实现发送缓冲。7 }! V0 q! K* m  z( |

+ v& y* ?  b( O) D9 PESC32只保留了UART,PWM,CAN这几个接口。使用UART和QGC连接进行调试,CAN在飞行中使用
使用道具 举报 回复
发表于 2014-10-12 15:47:44 | 显示全部楼层

RTT上实现四轴飞行器的例子

无线传输模块,是SPI接口,还是rx,Tx,能传送那么远,淘宝搜的远距离的大都是spi的,能不能说一下型号,QGC和Mavlink这移植教程,要仔细看了,看来。 ESC32也想试试,O(∩_∩)O谢谢。 好吧,现在还是先把自己的飞起来.......
使用道具 举报 回复
发表于 2014-10-12 20:58:12 | 显示全部楼层

RTT上实现四轴飞行器的例子

mavlink是个什么东西啊?谁来做些科普呀
使用道具 举报 回复
发表于 2014-10-12 22:18:43 | 显示全部楼层

RTT上实现四轴飞行器的例子

http://wenku.baidu.com/link?url= ... 7X4u8k57g6QdL3SUs2W
" ]: F+ i' m; l1 s. O$ e' ]
) P% T. D& L/ H' c6 K! w' G' l我觉得这篇比较仔细的介绍( Q3 u: t! f8 A0 D( A5 z# w
+ }; U2 Z! x) o! X
使用Mavlink的国外飞控
5 _: M" y0 O" Z& G) }ArduPilotMega (main protocol)( V, w5 E+ o3 q3 m
pxIMU Autopilot (main protocol)2 `4 ]& p# }' \* j2 I
SLUGS Autopilot (main protocol)
) E7 i( }) I1 K, E; h" |FLEXIPILOT (optional protocol)
) I1 d) x& ^7 P% U, PUAVDevBoard/Gentlenav/MatrixPilot (optional protocol)" @1 D& c% s' c, }
SenseSoar Autopilot (main protocol)0 e+ M0 v# O% V. V8 l
SmartAP Autopilot (main protocol)& r* [6 A5 e6 {7 q" j5 l! M& N' L9 m
AutoQuad 6 AutoPilot (main protocol)
使用道具 举报 回复
发表于 2014-10-14 17:31:25 | 显示全部楼层

RTT上实现四轴飞行器的例子

http://wenku.baidu.com/link?url= ... 7X4u8k57g6QdL3SUs2W8 u. G( y) O1 W5 X1 T7 k) N$ c
1 \3 D1 ]3 I, m5 v$ M9 |# A6 |
我觉得这篇比较仔细的介绍
* h2 [8 u6 n  T: K8 ~" t8 Q; n
- x; [7 Z+ Q/ C使用Mavlink的国外飞控9 ]" ~% J- Z2 {4 s; Q- p
ArduPilotMega (main protocol)! r( G' w8 l; {3 h
pxIMU Autopilot (main protocol). I; d6 Q$ E3 a' ^& J( c
SLUGS Autopilot (main protocol)
3 l, s+ T6 R# v6 p! n$ pFLEXIPILOT (optional protocol)7 s( O- F+ M; p: f" Z/ M) K& {
UAVDevBoard/Gentlenav/MatrixPilot (optional protocol)6 H# d; f" ^" e: U4 A( J' I
SenseSoar Autopilot (main protocol)% s( f1 r% S, x( I+ u
SmartAP Autopilot (main protocol)
3 N) W: q& V/ U! l& _( F* U2 C6 EAutoQuad 6 AutoPilot (main protocol)
" f  ~; F9 @% h: z0 M' G) I0 t9 f# ?
多谢,这个mavlink原来非常专业(用)化。
使用道具 举报 回复
发表于 2014-10-14 18:28:13 | 显示全部楼层

RTT上实现四轴飞行器的例子

[quote]http://wenku.baidu.com/link?url= ... 7X4u8k57g6QdL3SUs2W' x& {( s( ]8 r. y8 M9 C- o7 u# y

5 L4 ?7 C7 P; _8 M我觉得这篇比较仔细的介绍3 H  c4 J& ?$ K/ i0 [6 y& z

) h$ L) a: f' `& T8 K+ U2 ^' ]使用Mavlink的国外飞控- J+ U3 C' L, j! l
ArduPilotMega (main protocol)
; ?% r9 g; t. d( XpxIMU Autopilot (main protocol)+ I! \) D" n6 z9 k. c) ?
SLUGS Autopilot (main protocol)* P. }1 R6 r" U2 D# D
FLEXIPILOT (optional protocol)* L9 U- ?+ f/ f+ d  z! r2 I- [9 K* u
UAVDevBoard/Gentlenav/MatrixPilot (optional protocol)1 N% T% C& Z; r4 P3 h# l8 a
SenseSoar Autopilot (main protocol)2 e# V: G4 V) T% P: U# y# J
SmartAP Autopilot (main protocol)
& }5 V6 \! S) n$ K9 y5 \2 N$ M: r, r: bAutoQuad 6 AutoPilot (main protocol)

( S7 U0 l6 F, [. W& I7 l多谢,这个mavlink原来非常专业(用)化。[/quote]. p. N# ]2 S% h( n( n* R
1 f2 ]; J! f9 N8 H
是的,这个是一个通信标准吧,算是,许多飞控都是用这个的,也有一些机器人是用这个的。,RT-thread可以把他当一个组件,加入的。
使用道具 举报 回复
发表于 2014-10-14 20:56:27 | 显示全部楼层

RTT上实现四轴飞行器的例子

欢迎移植欢迎提交到git上
使用道具 举报 回复
发表于 2014-10-14 21:27:13 | 显示全部楼层

RTT上实现四轴飞行器的例子

lz不是已经把他移植到RT-thread上了吗,其实我想说,我还不能熟练的应用rt-thread,希望自己的飞控也能跑,但是还没调好基础的,一直在挣扎。不过,我之后可以做下,不过可能到时已经有人做了很好了。。。。
使用道具 举报 回复
发表于 2014-10-17 20:53:09 | 显示全部楼层

RTT上实现四轴飞行器的例子

无线传输模块,是SPI接口,还是rx,Tx,能传送那么远,淘宝搜的远距离的大都是spi的,能不能说一下型号,QGC和Mavlink这移植教程,要仔细看了,看来。 ESC32也想试试,O(∩_∩)O谢谢。 好吧,现在还是先把自己的飞起来.......
请搜索“串口透传模块”。
* P) P# s" k% |" ?# h如果是买SPI的,需要自己写飞控部分的SPI驱动,然后还要在电脑端再写一次。。建议如果不涉及保密和其他要求,直接使用串口透传会简化很多工作。: G9 Y# u7 u. m9 w5 _) `
调试时,直接串口链接到电脑上即可,省略无线的部分。
使用道具 举报 回复
发表于 2014-10-18 11:25:41 | 显示全部楼层

RTT上实现四轴飞行器的例子

[quote]无线传输模块,是SPI接口,还是rx,Tx,能传送那么远,淘宝搜的远距离的大都是spi的,能不能说一下型号,QGC和Mavlink这移植教程,要仔细看了,看来。 ESC32也想试试,O(∩_∩)O谢谢。 好吧,现在还是先把自己的飞起来.......
请搜索“串口透传模块”。
# _9 G: d" i" O) R如果是买SPI的,需要自己写飞控部分的SPI驱动,然后还要在电脑端再写一次。。建议如果不涉及保密和其他要求,直接使用串口透传会简化很多工作。
( [1 D3 l. G3 j' N1 M. {调试时,直接串口链接到电脑上即可,省略无线的部分。[/quote]* c& f4 Q) ]( z1 q
3g,我现在已经把我飞控的各个模块调式好了,没有gps(还没买),还没有整合,希望接下来,整合顺利,起飞,(*^__^*) 嘻嘻……
使用道具 举报 回复
发表于 2014-12-29 13:29:11 | 显示全部楼层

RTT上实现四轴飞行器的例子

非常棒
使用道具 举报 回复
发表于 2016-9-17 17:21:56 | 显示全部楼层

RTT上实现四轴飞行器的例子

在吗,我大二学生,喜欢四轴,可以提供你的制作资料吗。我想学习一下,谢谢,
使用道具 举报 回复
发表于 2019-4-21 11:34:11 | 显示全部楼层
膜拜大佬
使用道具 举报 回复
发表于 2019-4-22 09:28:28 | 显示全部楼层
膜拜
使用道具 举报 回复
发表于 2019-5-6 15:30:50 | 显示全部楼层
网页刷新等好长时间,图片就是不出来,只转圈
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

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