把树莓派当作无人机的数传和图传

huangsuo 60cm2021-03-167068 次点击1 人收藏1 人感谢
使用树莓派作为数传和图传,把飞控的遥测(Mavlink)数据和摄像头视频通过WIFI网络转送到远端的地面站。这种应用方式是基于Rpanion-server软件实现的。

Rpanion-server是一款开源软件,可以安装在任何具有Linux(或者基于Linux开发的操作系统,如Ubuntu,raspberry)操作系统的电脑上,它提供了一个基于Web的界面,在界面上可以配置树莓派网络、遥测路由参数、摄像头视频参数和从连接的飞行控制器进行日志记录。在树莓派上安装了这个软件之后,你可以在地面用电脑去连接树莓派的WIFI网络,从而去获取无人机的遥测信息,并控制飞机起降,航线规划等;还可以查看无人机上摄像头的视频。Rpanion-server的逻辑拓扑结构如下图:

![](https://make.quwj.com/storage/uploads/images/16160/1616080872az1xrkkrqb.png)

### 硬件准备
(1)树莓派3或4,Pi2可能也可以,手头没有,没试过。
(2)树莓派CSI摄像头
(3)USB读卡器
(4)Pixhawk系列飞控一套,目前最新的型号是FMUV6X,这里用Pixhawk4-Mini来举例。
(5)电脑

![](https://make.quwj.com/storage/uploads/images/16160/161608121945vy6gmya7.png)

### 软件准备
(1)集成Rpanion-server软件的树莓派操作系统镜像,下载地址如下:
https://github.com/stephendade/Rpanion-server/releases/download/v0.7.0/Rpanion-Server-0.7.0-RasPiOS.img.xz
有志于研究的读者,可以从GitHub下载源码,在树莓派上编译安装。
(2)镜像烧写软件Balena etcher, 下载地址如下:
https://www.balena.io/etcher/
(3)gstreamer-1.0-msvc-x86_64-1.18.4,一个创建流媒体应用程序的插件,想要在地面站上显示摄像头视频,需在运行地面站的电脑上安装此插件。无人机端的树莓派镜像已包含此插件,不需用户自己安装。
(4)QgroundControl地面站软件

### Rpanion-server的安装和设置
(1)准备一张8G MicroSD卡,通过读卡器接到电脑;
(2)安装并打开Balena etcher,点击“Flash from file”选择之前下载的树莓派操作系统镜像,烧写设备(Select target)选择接入的8G卡,点击“Flash”开始烧写;

![](https://make.quwj.com/storage/uploads/images/16160/1616080872sxql72z1mq.png)

(3)等待烧写完成后,把卡插入树莓派,接USB TypeC线上电,等待1~2分钟,树莓将启动完毕。你可以通过树莓派的MicroHDMI接口连接一个显示器来看是否启动完成。如果正常启动,你会在显示器上可以看到系统启动到登录界面,如下图:

![](https://make.quwj.com/storage/uploads/images/16160/1616080873eulgtqegis.png)

(4)在电脑上搜索WIFI,你会看到一个SSID为rpanion的网络,密码为rpanion123。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872pjwtai3jvo.png)

(5)连上它之后在浏览器访问http://10.0.2.100:3000地址,你将登录到Rpanion-server的设置页面。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872djdqsilrfv.png)

(6)点击Flight Logs页面,设置树莓派如何处理飞控发出的遥测数据。Telemetry Logs是记录全部遥测数据,Bin Logs是只记录飞行日志,飞行日志包含在遥测数据包里面,默认就自动记录。如果你希望在树莓派上把全部遥测数据存下来,可以勾选Enable Telemetry Logging,在File Name那一栏将看到记录的日志文件。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872wtj02fcbu6.png)

(7)点击Flight Controller页面,设置树莓派串口的参数,从而能够正确接收飞控发出的遥测数据。
Serial Device指定树莓派的串口号,当前版本镜像只支持serial0一个串口;
Baud Rate设置串口波特率,尽量选择921600,速率越高连接速度越快;
MAVLink Version选择2.0,除了非常老版本固件的飞控,这两年的版本几乎全部都已经支持到2.0了;

MAVLink dialect选Ardupilot;
UDP Outputs这里要新增加一个连接,用于地面站和树莓派的互联。点击Add,在弹出的窗口输入“运行QGroundControl地面站”的电脑的IP地址(电脑连接树莓派网络后,在命令行窗口用ipconfig可获得IP地址),端口号固定14550。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872kff3myw1o9.png)
![](https://make.quwj.com/storage/uploads/images/16160/1616080872iqljo2nzyv.png)
设置好了之后点击Start Telemetry即开始遥测数据的记录和转发。需注意的是,这些设置会保存在SD卡上,下次上电启动会自动运行,不需要再次设置。

(8)点击NetWork Config可以进行网络设置,包括WIFI网络SSID,密码,树莓派的IP地址等,这里不再详述。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872ayncjaierv.png)

(9)点击Video Streaming进行摄像头和视频传输设置。
https://make.quwj.com/storage/uploads/images/16160/1616080872comje39gzt.png

到此,树莓派的软件安装和设置就结束了,断电进入下一步。

### 飞控设置
在电脑上安装好QgroundControl和gstreamer之后,用USB数据线把飞控连接到电脑,然后打开QgroundControl对飞控进行设置。
(1)设置飞控遥测数据接口参数
飞控要跟树莓派连接成功,需保证两边的串口参数设置一致。在本例中我们用的是飞控的Telemetry1接口,使用其它Telemetry接口设置方法类似。
使用默认的1200B MAVlink数据包发送速率会导致带宽不足而频繁报错,所以先要把数据包发送速率设置到9600B以上;

![](https://make.quwj.com/storage/uploads/images/16160/1616080872q8y3bu9ccp.png)

在parameters-》MAVlink页面下设置数据包速率

![](https://make.quwj.com/storage/uploads/images/16160/1616080872a0eqhpmudd.png)

然后在parameters-》serial页面把Telemetry1串口波特率设置到921600.

![](https://make.quwj.com/storage/uploads/images/16160/16160808721dcntqx8mu.png)

设置完了之后,要重启飞控(断电或软重启都可以),使参数生效。

(2)设置视频输入源
Qgroundcontrol支持RSTP视频流输入,只需要在general页面去设置Video参数即可。
Video Source选择RTSP Video Stream方式
RSTP URL填入树莓派Video Streaming设置页面给出的链接“rstp://10.0.2.100:8554/video”
Aspect Ratio是视频宽高比,大部分摄像头都是16:9宽屏,使用默认的1.7777即可。如果你的摄像头不是16:9宽高比,请按实际值填入,否则画面比例会失真。

![](https://make.quwj.com/storage/uploads/images/16160/16160808724zlfykdbgl.png)

到这里,飞控的设置就结束了,从飞控拔下USB线,进入下一步。

5,装机和连线
先把各个模块装到机架上,再按下图的连线关系把各模块连接起来。

![](https://make.quwj.com/storage/uploads/images/16160/1616082237isofv6besq.png)

![](https://make.quwj.com/storage/uploads/images/16160/1616082237hegfrcraqw.png)

装机完成图

![](https://make.quwj.com/storage/uploads/images/16160/1616080873zif37sphyv.png)

### 连接QGC地面站
装机完成后,接上电池上电,等飞控和树莓派启动完毕后,电脑连接树莓派的WiFi,然后打开QGC软件,你会发现飞控会自动连接,等连接进度条走完后,你会看到飞控的一个摘要信息,如下画面:

![](https://make.quwj.com/storage/uploads/images/16160/1616080872byv0ujei8s.png)

鼠标点击切换到飞行页面,你将看到摄像头视频已经叠加显示在地图上,用手动一下飞机,你会看到飞机的姿态会跟着变化。

![](https://make.quwj.com/storage/uploads/images/16160/1616080872rdflobquqj.png)

到此,基于树莓派的图传和数传就完成了。不过由于树莓派上的WIFI模块发射功率不大,且天线集成在板上增益也不大,所以通讯距离有限,笔者在城市空旷地测试过树莓派3B和4B,通讯距离都只有50米左右,可能在电磁环境好的野外,通讯距离会增加。

这只是树莓派的一个简单应用,能够完成自主避障是下一步的目标。
收藏 ♥ 感谢
相逢已是初识 135.75m 2021-03-17 
cool
huangsuo 60cm 2021-03-17 
好像不能再次编辑,过程没写完
Spoony 小组长 2021-03-18 
@huangsuo 发布超过30分钟系统就不让编辑了。可以贴在评论里面。
huangsuo 60cm 2021-03-18 
@Spoony
关于树莓派的这种应用方式,我有完整的文字记录和测试步骤,当时发帖还没码完字,有急事走开,就发出来了,可以把本贴删掉重发吗?
Spoony 小组长 2021-03-18 
@huangsuo 可以创建一个页面
https://make.quwj.com/page/create

然后我帮你把内容复制过来。
huangsuo 60cm 2021-03-19  ♥ 1
@Spoony
已写完。
https://make.quwj.com/page/118
Spoony 小组长 2021-03-19 
@huangsuo 好了,完美
相逢已是初识 135.75m 2021-03-20 
cool
huangsuo 60cm 2021-03-20  ♥ 1
装了两架飞机,第一架500毫米轴距,用了树莓派3B
另一架380毫米轴距,用了树莓派4B
城市里没有场地,只能在家里试飞一下,得找个机会去荒郊野岭拉一下距离
Spoony 小组长 2021-03-20 
@huangsuo 炫酷
YSK 2022-09-07 
请问我那个图传回QGC的画面很模糊,这是什么原因呢?我就那个MAVlink 1200改9600没改
linlinlin 2023-05-07 
这个方法很棒。但我传回来的视频实时性不佳,有朋友知道改进的方法吗?
linlinlin 2023-05-07 
@huangsuo 请问你较远距离的视频传输效果怎么样

登录注册 后可回复。