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

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

【新人贴】【已经更新】树莓派飞控、无人机物联网节点,已经能飞了,有视频

  [复制链接]
跳转到指定楼层
发表于 2017-2-2 20:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
点击查看详情
本帖最后由 crossa 于 2017-8-30 12:42 编辑

QQ群:174913329,欢迎加入,共同学习
========================================================================================================

如题。没图,先放出程序吧,然后贴一个地面站的图凑个数,陆续更新
飞控程序,基于px4firmware,重写了PPM  Decode程序,树莓派7号针脚输入,最多支持8通道。
输出采用 pca9685模块,使用12BIT遥控器的筒子们有福了。

顺便说一句,关于实时性的问题,只要你的在树莓派上构建好px4firmware的本地编译环境,实时性就不是问题,
只要使用root身份或者sudo 启动飞控程序,就是实时模式运行了,并且是抢占式的。飞控内的任务变成了任务队列。
硬件模块

mpu9250 模块(spi模式)
ms5611   模块(i2c模式)
pca9685 模块(i2c)
12V转5V  电源模块

关于px4的介绍,看这儿
https://dev.px4.io
https://www.gitbook.com/book/px4/devguide/details

打算基于ARM和Linux系统上用开源程序构建飞行器的,可以放弃APM了。
顺便说一句,px4用起来比APM好用不少,比较轻,更新发布起来也比APM快,最重要的是,这玩意飞行稳定性好,故障率低。
====================================================================================================================

目前,我已经放弃Pi0,专用Pi3.  pi0的话接口太少,外接设备太麻烦,性能也低了pi3太多,虽然比stm32不会差,但是有更好的硬件
为啥还要死守着pi0。pi3的性能应该不成问题。飞控占不满一个核。pxh控台全部启动完毕后再没有出现恼人的FIFO OVERFLOW。






==========================================================================================================

串口供电改为USB供电了,不再需要任何辅助器件了!

==========================================================================================================
之前胃出血住院了,麻烦,最近才刚缓过来,这周上海天天下雨,暂时懒得出去飞了,今天放出动力输出视频,至此,所有基本模块都以调试完毕,因为没有电流计,所以没有电量提示,后续会开发的
现在放出解锁视频




==========================================================================================================
今天天公作美,出太阳了,赶紧抓紧时间去飞。GPS好想忘记编译了,算了就飞稳定模式吧,等调整完试飞POSITION。pixhawk的position模式已经可以稳的一动不动了,我不担心树莓派表现会比pixhawk差,毕竟性能高出了数倍。
众所周知,对于会飞的人来说,其实多旋翼比6通道直升机难飞的多,不过,树莓派的飞控真心不错,因为稳定模式下,手感优于pixhawk,毕竟1000hz刷新不是盖的。
下面放出视频。Linux是不是不如rtos这种争论已经没意义了,因为这货经历了快20年的互联网环境的考验,从高并发到承受各种攻击,起码证明这货相对来说是稳定的,
但是很多rtos并没有在这样的环境里经受过考验,而且跑Linux的同时代硬件,大部分性能都很强悍,所以只要搞成抢占模式,实时性从来不是问题,
何况飞控还是异步的orb系统,计算速度快才是关键!

此次飞行配置 花牌3S2200 40C + 9045桨,飞行时间约总3~4分钟,Wi-Fi数传,没有装摄像头。降落后,电压表量了一下,还剩11.6V (充满是12.6)


=============================================================================================================

更新下GPS和PWM参数设定。GPS 采用M8N,通过USB接口与树莓派直接连接。
PWM设定需要修正,使用PPM输出的,futaba的遥控器,请根据下面的图修正参数,修正原则为 disarmd pwm 必须大于0,且小于油门最低值,PWM 最大值要小于油门最大值(推荐用油门最大值-100)



====================================================================================================

最近太忙,所以耽搁了,离我长久以来的梦想又近了一步,我不指望一个能有10公里远的图传,因为我的飞机如果飞出10公里,怎么飞回来还是个麻烦问题。
所以先解决百米吧,wifi中继我还没有测试过,不过已经入手了一个室内能保证两百平方米信号的中继,估计室外距离也短不了,后续可以开发无线串口图传。
不过这样的手机端地面站也要配合修改才行了,先不管那么多,普通娱乐性质的飞行,也很少飞出十公里,大家买的很多图传有些也只有3,500米,甚至买的
飞机都飞不了太远。云台先不开发了,买成品,因为我想做9g舵机的云台,我的摄像头很轻,用市面上的云台只能配点金属条来配重了。
不说了,上图,手机充当地面站图像接收










=======================================================================================

今天更新下最新的状况,S550脚架已经升级为龙门脚架,我买的这个机架因为底板孔位的问题,无法使用SK500的碳纤维脚架。
逛遍淘宝就找到一家任意S500的通用脚架, 感谢淘宝商家 “乐趣智玩”,在他那儿我找到能用于10MM挂杆的脚架。

目前已经更新的配置如下

1. 飞行电池4200mah,25C,3S
2. 电机2216 950kv
3. 1147桨
4. 云台电池 2S 850MAH

整机重量1700g,接近1800g,但还没有到。预算充裕的推荐使用2810电机。考虑到各种因素,不再考虑升级成可长时间飞行的机器了。




接下来释放出图传使用方法

1. 安装gstreamer
$ sudo apt-get install "^gstreamer-1.0*"

2. 树莓派下使用普通摄像头当图传的方法

对于不使用h264直接编码的摄像头:
$ gst-launch-1.0 v4l2src ! video/x-raw,width=1280,height=720 ! omxh264enc ! h264parse ! rtph264pay ! udpsink host=$1 port=5600
请将 $1 替换为 你的地面站IP地址,目前支持Android手机,Linux系统,苹果电脑不支持。

============================================================================================================
今天放出早晨试飞的视频,有条件的建议使用60fps摄像头,定点模式飞行,风力3到4,手机充当监视器,推荐使用懒人支架,这样就能轻松看监视了
目前使用的摄像头速度不是很理想,据测试, 1280x720p分辨率下,有时只有9fps,640x480时,才有30fps,不过无视了,因为需要更好的效果买更好的工业摄像头就行了。
山狗毕竟需要额外的图传模块。 目前已经验证,可以通过mavlink相关的px4stream中间件,将图传和数传合二为一,使用数传来传输,目前暂不试验


关于Linux实时补丁的问题,我在这儿重申一遍。
经实践得出结论:
1.只需要有抢占式任务管理,无需实时补丁
2.对于px4来说,任何实时补丁,都会导致不稳定因为需要手工指定irq和权重,相当于把树莓派变成了一个大号单片机,这是个愚蠢的行为。因为高性能硬件下,即使异步的,只要保证时间片抢占的够多,就能保证所谓实时性。即时,因为线程队列的巡检也是一个固定的周期,内核里可以设定的。所以,高速硬件上打了实时补丁,不光不会增加稳定性,反而还会带来调试的麻烦,甚至会可能会出现一个进程卡住,其他任务阻塞的情况(很多不懂系统的家伙,经常把这条说反了)如果要玩大号单片机,也没关系,不过如果是这样,我当初直接就不用做了。在任何一个Linux系统里,内核里的模块默认就是实践不严格的,异步与无阻塞,是稳定和性能妥协的产物。

3. 不打实时补丁时,Linux的进程切换,并不会因为一个进程卡住而切不回来,只要不是互斥锁,本身就是非阻塞的,同样的,px4的所有内部程序模块,都在同一个进程里,orb通信方式本来就是异步通信,没有考虑时序的必要,只要保证采样到数据不太旧就可以(事实上是能保证的)

4. 任何一个应对高并发的系统,都不会去屁颠屁颠的打上一个实时补丁(参考服务器端,这一领域对于硬件工程师来说,大部分都没接触过,甚至完全都没概念,飞控这点负载,除了视觉、深度这类以外,目前就没有能让系统跑的气喘吁吁的),实际上强行加个时序进去,一旦某个进程卡住了,发生死锁,可能整个系统就有崩溃的可能。

6.不要去拿ucos这类做对比,这就好比用DOS和UNIX类系统比

以上,就是对于为什么这个飞控什么实时补丁都没打的原因,不要去看手动模式飞的如何,手动模式下,就算用pixhawk,飞起来也不能可能比没有飞控的6通直升机舒服。

祝大家周末飞行愉快

=======================================================================================================================================
今天公布下最新进展
1. 目前的nanopi的项目暂时搁置,编写的程序,移树莓派继续使用。nanopi不够稳定,在修改i2c通信速率重新编译内核后并升级后,spi设备莫名消失了。暂时放一
2. 已完成的驱动程序移回树莓派
3. 狗SJ4000摄像头,Linux系统下有驱动,支持720p 60fps
4. 以完成的版本,已转让给相关单位,用于研发安防用无人机
5. 电池监控已经找到了除ADS1115之外的最便捷解决方案





=====================新版编译教程,以后基本是这样弄了,因为官方也这么来了=======================================
编译安装方法:
推荐编译环境 Debian (如果使用Debian9,因为需要复制交叉工具链的libstdc++.so.6.3到目标机,这个对于搞不清Unix类系统的同学如同天书,所以乖乖用Debian 8)

编译前准备步骤如下
1.  安装编译环境
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt-get install python-catkin-pkg
sudo apt-get install python-pip
sudo apt-get install python-empy
sudo apt-get install ninja-build
sudo apt-get install cmake
sudo apt-get install python-argparse
sudo apt-get install git

2. 下载源代码
mkdir src
cd src
git clone https://github.com/crossa/Firmware.git # 不怕麻烦的你可以下官方版,因为所有的东西都已经合并到官方版本,这版支持很多东西,甚至GPS RTK
cd Firmware
git checkout v1.6.5-rpi  #注意,版本号会随着更新而变化,不会使用开发工具的请绕道,乖乖买成品
git submodule update --init --recursive
make posix_rpi_cross
export AUTOPILOT=<Ip of your raspberry pi> # ip自己填
make posix_rpi_cross upload

3. 启动
以pi用户身份登录到树莓派后  sudo ./px4 px4_no_shield.config
注意: linux_pwm_out 我可能能正常用,上周给他们的修的bug,星期天他们才进行合并。
关于S.Bus接收机的使用,我已经向官方提交了文档,下礼拜我抽空提交下原理图。
遥控输入文档看这儿
https://dev.px4.io/en/tutorials/linux_sbus.html
看不大明白的,看这儿 https://dev.px4.io/zh/tutorials/linux_sbus.html


==============================================================================================================================================
之前使用过v1.5.5-rpi版本,我提供一个升级的程序,用来支持sbus遥控输入
https://github.com/crossa/raspx4-sbus-rc-in
自行下载编译和安装,现有的v1.6.5-rpi中,包含rpi_rc_in驱动,可从通过外部程序共享遥控信号数据,比px4中内嵌遥控数据读取更可靠。






IMG_20170217_220958.jpg (143.93 KB, 下载次数: 1063)

IMG_20170217_220958.jpg

IMG_20170220_235922.jpg (124.92 KB, 下载次数: 1157)

IMG_20170220_235922.jpg

IMG_20170220_235934.jpg (102.95 KB, 下载次数: 1052)

IMG_20170220_235934.jpg

IMG_20170221_002039.jpg (119.42 KB, 下载次数: 1136)

IMG_20170221_002039.jpg

IMG_20170221_002043.jpg (108.69 KB, 下载次数: 1116)

IMG_20170221_002043.jpg

c3.jpg (130.39 KB, 下载次数: 1157)

c3.jpg

c2.jpg (129.42 KB, 下载次数: 1097)

c2.jpg

c1.jpg (295.49 KB, 下载次数: 1074)

c1.jpg

uav.jpg (120.66 KB, 下载次数: 1015)

uav.jpg

GPS.jpg (89.17 KB, 下载次数: 1054)

GPS.jpg

pilot.jpg (114.58 KB, 下载次数: 1040)

pilot.jpg

1.jpeg (153.24 KB, 下载次数: 1087)

1.jpeg

2.jpeg (98.27 KB, 下载次数: 1078)

2.jpeg

3.jpeg (151.5 KB, 下载次数: 1074)

3.jpeg

4.jpeg (142.02 KB, 下载次数: 1058)

4.jpeg

nano3.jpeg (120.29 KB, 下载次数: 1079)

nano3.jpeg

nano2.jpeg (156.9 KB, 下载次数: 1013)

nano2.jpeg

nano1.jpg (191.15 KB, 下载次数: 1021)

nano1.jpg

finish1.jpeg (134.37 KB, 下载次数: 1006)

finish1.jpeg

finish3.jpeg (78.51 KB, 下载次数: 1048)

finish3.jpeg

finishi2.jpeg (182.63 KB, 下载次数: 1097)

finishi2.jpeg

linux_sbus2.jpeg (138.19 KB, 下载次数: 1156)

linux_sbus2.jpeg

linux_sbus3.jpeg (206.64 KB, 下载次数: 1074)

linux_sbus3.jpeg

linux_sbus.png (92.14 KB, 下载次数: 1027)

linux_sbus.png

3.jpeg (116.84 KB, 下载次数: 998)

3.jpeg

2.jpg (106.61 KB, 下载次数: 995)

2.jpg

1.jpg (153.91 KB, 下载次数: 1061)

1.jpg

task3.png (29.63 KB, 下载次数: 1001)

task3.png

304428CF-351F-4748-AFDE-C246B7CE55BA.png (29.62 KB, 下载次数: 1040)

304428CF-351F-4748-AFDE-C246B7CE55BA.png

task2.png (29.62 KB, 下载次数: 968)

task2.png

task.png (29.49 KB, 下载次数: 1048)

task.png

qgc.png (163.72 KB, 下载次数: 891)

qgc.png

top.png (36.21 KB, 下载次数: 891)

top.png

version.png (27.09 KB, 下载次数: 944)

version.png

new1.jpeg (200.92 KB, 下载次数: 865)

new1.jpeg

new3.jpeg (270.67 KB, 下载次数: 937)

new3.jpeg

new4.jpeg (230.85 KB, 下载次数: 894)

new4.jpeg

评分

参与人数 4威望 +8 模币 +10 收起 理由
战斗机001 + 2 + 10 很给力!
ht868788 + 2 赞一个!
永丰狼人 + 2 很给力!
lv333ming + 2 很给力!这代码能不能飞固定翼?

查看全部评分

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

152
发表于 2021-11-20 18:32 | 只看该作者
楼主能出个新教程不,我想装在树莓派4上

151
发表于 2021-11-5 13:31 | 只看该作者
px4推荐的树莓派系统镜像已经是打过RT补丁的了……
https://docs.px4.io/master/en/flight_controller/raspberry_pi_navio2.html

软实时说破大天也是软实时
150
发表于 2021-9-6 10:56 | 只看该作者
学习了,同样在做linux飞控
149
发表于 2020-8-25 07:59 | 只看该作者
强贴留名,点赞插眼
148
发表于 2020-3-15 11:50 | 只看该作者
厉害了 学门语言还是挺重要的
147
发表于 2020-3-10 13:38 | 只看该作者
楼主太强了吧,求学习,我想做这个
146
发表于 2019-10-4 21:42 | 只看该作者
changlizhong 发表于 2019-7-21 12:07
首先是mpu9250无法正常的启动 找了好久没找到在哪里配置mpu9250的spi

老哥你的树莓派无人机做出来了嘛?
145
发表于 2019-7-21 12:07 | 只看该作者
首先是mpu9250无法正常的启动 找了好久没找到在哪里配置mpu9250的spi
144
发表于 2019-7-21 12:06 | 只看该作者
还有在大佬没,v1.6.5rpi版本在树莓派上使用,有疑问呐
143
发表于 2019-7-3 23:27 | 只看该作者
如果是树莓派3b是不是可以直接使用两个i2c接口呀?
142
发表于 2019-6-10 18:32 | 只看该作者
楼主综合知识很丰富,好帖收藏了,贴头那个QQ群一直没搜到是不是群号错了?
141
 楼主| 发表于 2019-3-26 13:05 | 只看该作者
1724136570 发表于 2019-2-28 11:02
楼主你好 很喜欢你的项目,请问mpu9250等传感器的驱动怎么办,是需要自己写吗

项目里有,以后不出新教程了,也不会放新的固件。好多人连git切换版本都不会,就拿去编译,飞起来闯祸就麻烦了
140
发表于 2019-2-28 11:02 | 只看该作者
楼主你好 很喜欢你的项目,请问mpu9250等传感器的驱动怎么办,是需要自己写吗
139
发表于 2019-2-14 22:46 | 只看该作者
牛逼,这个是开源不懂的人可以玩不
来自安卓客户端来自安卓客户端
138
发表于 2019-2-14 18:46 | 只看该作者
希望博主重新出个Debian9的完整教程,博主要实现麻烦,我学会后也可以帮博主整理,谢谢
137
发表于 2019-1-1 16:49 | 只看该作者
trigger1996 发表于 2017-10-16 13:18
昨天自己解决了~

我的问题是EKF那边的问题,罗盘干扰,简单说就是罗盘重新校准就可以了

大哥,你的无人机成功了吧!我想请假一些问题
来自安卓客户端来自安卓客户端
136
发表于 2018-12-27 12:21 | 只看该作者
楼主debian用的是8.几,我用8.2在安装编译环境的时候出现一堆依赖问题
来自安卓客户端来自安卓客户端
135
发表于 2018-10-5 19:37 | 只看该作者
厉害,厉害。支持
134
发表于 2018-10-5 00:57 | 只看该作者
我也模仿着在学但不懂linux,只成学得很吃力,花很多精力和时间,太累了
133
 楼主| 发表于 2018-9-10 18:03 | 只看该作者
cqzk 发表于 2018-8-28 22:57
GPS定点和返航效果怎么样?

GPS精度高于原版pixhawk



您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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