ardupilot开发 --- Rpanion-server 篇
安能以血补天哉
- 前言
- 实践
- 20240801 与周工的交流
前言
Rpanion Server 是一个用于配套计算机(如Raspberry Pi)的开源软件包,它提供了一个基于网络的接口,用于配置网络、遥测(MAVLink)路由和从连接的飞行控制器进行日志记录。
功能包括:
- 网络RTK注入;
- 视频流转发;
- mavlink数据包的UDP/TCP转发;
- 网络配置;
- 云端;
- 等等…
实践
待续…
20240801 与周工的交流
- 1.关于无人机4g数传方案的实现
方案1:clover.coex.tech/en/zerotier_vpn.html 看文档
机载计算机运行一个zerotier客户端,另一台联网的PC运行一个zerotier客户端,那么机载计算机和PC就会处在一个“虚拟”的局域网中(机载计算机和PC都会出现一个虚拟的网卡,类似于向日葵远程),这样就可以在机载计算机端建立一个固定IP的mavlink数据UDP/TCP转发(这个固定IP就是PC虚拟网卡的ip,转发软件可以使用Rpanion-server 或mavproxy),这样连接以太网的PC端地面站就可以通过UDP/TCP连接接收到飞控的mavlink数据了。
方案2:https://github.com/fatedier/frp 看 README.md
反向代理,局域网运行一个服务器,公网运行一个服务。 - 2.关于RTSP推流
使用 ZLMediaKit - 3.关于使用MQTT与云平台调度系统的通讯
搭建MQTT服务器,开源方案多,如…
Linux MQTT客户端程序(访问MQTT服务器的程序)的一个例子:https://github.com/eclipse/paho.mqtt.cpp
业务逻辑:
1)机载计算机通过4g/5g sim网卡(或4g/5g 模块)连接以太网,使得机载计算机可以访问到MQTT服务器;
2)MQTT客户端1运行在机载计算机上;MQTT客户端1通过mavsdk得到飞控数据,打包成json格式,json数据以主题订阅和发布的形式被发布到MQTT服务器;
MQTT客户端2运行在云平台调度系统上,MQTT客户端2通过订阅相关的主题,接收到消息后进行数据解析,得到飞控数据。
3)MQTT客户端2与飞机的控制链路则同理,MQTT客户端2的控制指令通过MQTT服务器传递给MQTT客户端1,MQTT客户端1再通过mavsdk控制飞机!