安能以血补天哉
0. 前言
Rpanion Server 是一个运行在无人机板载计算机上的开软软件方案,是ardupilot生态中的一个开源方案。
它的功能包括:
-
配置页面
浏览器访问http://localhost:3000
或http://<本机IP>:3000
可以进入配置页面。
假如运行 Rpanion-server 的主机有两个网卡,一个有线网卡IP为192.168.100.197,另一个是无线网卡IP为10.0.2.100,并且无线网卡创建了一个wifi热点叫 RepanionWifi。
那么你的PC如何进入到Rpanion-server配置页呢?
【方法1】
用网线让你的PC与主机192.168.100.197处在同一个局域网内,那么你的PC可以直接访问192.168.100.197:3000进入Rpanion-server配置页面。
【方法2】
让你的PC连接到热点RepanionWifi,那么你的PC可以直接访问10.0.2.100:3000进入Rpanion-server配置页面。
-
通过UART 或 USB 连接飞控;mavlink数据包的UDP、TCP转发;
- UDP client
相当于mavproxy中的ouput add 功能。
往地址为<remoteIP> : <remotePort>
的远程 UDP client 发送mavlink包。 - UDP Server
接收并处理来自UDP client 的mavlink包。
告诉那些个UDP client 们,要给老子发消息,就往<IP of 老子> : <UDP Server Port>
这个地址发!发错地址一概不理,哼!! - TCP Server
本机与远程主机建立TCP连接,以相互发收mavlink包,建立mavlink通讯链路。
- UDP client
-
访问USB摄像机(如webcam);搭建RTSP流媒体服务;为USB相机创建视频流供客户端拉流;
(1)在主机上用GStreamer搭建RTSP流媒体服务器;
(2)获取USB相机的视频帧,制作成视频流并发布(注册)到 (1) 中创建的流媒体服务器上;
(3)那么用户终端(客户端)就可以从该流媒体服务器上拉流了。
注意:客户端主机和机载计算机(流媒体服务器)要处在同一个(虚拟)局域网中,不然客户端是无法拉流的。
-
网络RTK注入;
-
网络设置、wifi热点配置
(1)设置有线网卡:动态获取IP?静态IP?
(2)设置无线网卡:
(2.1)无线网卡的连接参数:连接哪个无线网络(需要手动添加)?动态获取IP?静态IP?
(2.2)wifi热点配置:无线网卡可以创建一个wifi热点(又称 wifi access point、wifi hotspot),PC连接该热点后就可以用浏览器访问Rpanion server配置页面,如http://10.0.2.100:3000
根据你配置的IP而定!
注意:修改网络配置需要在命令行输入密码!
-
Ad-Hoc Wifi 网络模式
目前几乎用不到这个功能!
Ad-Hoc是点对点网络连接模式,两台或多台具备无线网卡的PC直接进行无线网络互联,不用结过AP设备(如路由器)。更多知识点请参考这里。 -
vpn配置
联合ZeroTier一起使用!
可实现异地组网、内网穿透,使得飞控的数传数据可通过4g网络UDP给接入互联网的移动终端!
step1)注册、登录zerotier(本人用的谷歌账号授权登录)、并创建一个网络。
step2)配置Rpanion-server中的VPN使得板载计算机加入这个网络,从而获得一个虚拟局域网IP,如10.147.19.107
step3)Windows PC 运行ZeroTier.exe,输入 step1 创建的Network ID,让Windows PC也加入这个网络,同样得到一个虚拟局域网IP。
step4)此时Linux板载计算机和 Windows PC 处在同一个由ZeroTier提供的“虚拟”局域网中。
step5)Windows PC 成功 ping 通 Linux 板载计算机!
step6)在Rpanion-server中新增一个 Mavlink 的 UDP 转发,或开启一个 Mavlink 的 UDP Server.
step7)在Windows PC 中成功用mission planner 连接上飞控。
-
日志上传云端
待续…
1. 实践
文档
- 用户手册:https://www.docs.rpanion.com/software/rpanion-server#web_interface
- 开发文档:https://github.com/stephendade/Rpanion-server/blob/master/README.md
安装
- 下载源码
mkdir RpanionServer-ws & cd RpanionServer-ws git clone --recursive https://github.com/stephendade/Rpanion-server.git
- 安装依赖
Nvidia Jetson平台:cd ./deploy && ./jetson-deploy.sh
树莓派平台:cd ./deploy/ && ./RasPi-ubuntu20-deploy.sh
其他:https://github.com/stephendade/Rpanion-server/blob/master/README.md
以开发模式运行
以开发模式运行,任何代码改动都会触发重新编译并重新加载Rpanion-server,便于调试。
Rpanion-server = React前端页面程序 + node.js后端服务程序
前端代码+后端代码
前端程序:运行在端口3000
后端程序:运行在端口3001
cd ~/shd/RpanionServer-ws/Rpanion-server
## 单独运行no