树莓派做数传图传

huangsuo 更新于 2021-03-18 开放度: 公开 浏览: 1002

使用树莓派作为数传和图传,把飞控的遥测(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, 硬件准备
(1) 树莓派3或4,Pi2可能也可以,手头没有,没试过。
(2) 树莓派CSI摄像头
(3) USB读卡器
(4) Pixhawk系列飞控一套,目前最新的型号是FMUV6X,这里用Pixhawk4-Mini来举例。
(5) 电脑
https://make.quwj.com/storage/uploads/images/16160/161608121945vy6gmya7.png

2, 软件准备
(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地面站软件

3, 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

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

4, 飞控设置

   在电脑上安装好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

6, 连接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米左右,可能在电磁环境好的野外,通讯距离会增加。
  
  这只是树莓派的一个简单应用,能够完成自主避障是下一步的目标。