Rpanion‑Server 完整配置指南
Jetson 平台 · MAVLink 遥测管理 · Web 可视化转发 · 视频流集成
MAVLink 路由 Web 界面:3000 systemd 服务 sudoers 免密配置 UDP 转发至 Mission Planner
概述
Rpanion‑server 是专为机载计算机(Jetson / 树莓派)设计的网页版 MAVLink 遥测与视频流管理工具,提供设备管理、串口/UDP 转发、飞行日志记录和实时视频推流能力。
主要功能:Web 配置面板 (http://<Jetson-IP>:3000) · UDP/Serial 转发 · 网络适配器管理 · 飞行日志 · 视频流支持
安装步骤
Step 1: 使用 NVM 安装 Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 16.20.2
nvm use 16.20.2
which node
# 应显示 /home/nvidia/.nvm/versions/node/v16.20.2/bin/node
Step 2: 下载并解压 Rpanion‑server
cd ~
wget https://github.com/stephendade/Rpanion-server/archive/refs/heads/master.zip
unzip master.zip
mv Rpanion-server-master Rpanion-server
cd Rpanion-server
Step 3: 安装依赖
npm install
Step 4: 安装 mavlink‑router(必须依赖)
cd ~
git clone https://github.com/mavlink-router/mavlink-router.git
cd mavlink-router
sudo apt install meson ninja-build -y
meson setup build.
ninja -C build
sudo ninja -C build install
which mavlink-routerd
# 应显示 /usr/bin/mavlink-routerd
cd ~/Rpanion-server/mavlink-router
git submodule update --init --recursive
npm config set registry https://registry.npmmirror.com
npm config get registry
npm cache clean --force
cd ~/Rpanion-server
npm install --legacy-peer-deps
Systemd 服务配置
sudo nano /etc/systemd/system/rpanion.service
[Unit]
Description=Rpanion Server Service
After=network.target
[Service]
WorkingDirectory=/home/nvidia/Rpanion-server
User=nvidia
Environment="PORT=3000"
ExecStart=/home/nvidia/.nvm/versions/node/v16.20.2/bin/node server/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable rpanion
sudo systemctl start rpanion
sudo systemctl status rpanion
● active (running) → 服务正常运行
Sudoers 配置(修复密码/TTY 错误)
Rpanion 会调用
sudo cat /var/lib/NetworkManager/dnsmasq-*.leases 读取 DHCP 客户端列表,若没有正确配置 sudoers,会因缺少 TTY 和密码交互而失败。 创建自定义 sudoers 文件
sudo visudo -f /etc/sudoers.d/99-nvidia-rules
Defaults:nvidia !requiretty
nvidia ALL=(ALL) NOPASSWD: /usr/bin/cat /var/lib/NetworkManager/dnsmasq-*.leases
| 配置行 | 作用 |
|---|---|
Defaults:nvidia !requiretty | 为 nvidia 用户禁用终端强制要求 | '
nvidia ALL=(ALL) NOPASSWD: /usr/bin/cat... | 允许免密读取 dnsmasq 租约文件 |
可选:创建缺失的租约文件
sudo touch /var/lib/NetworkManager/dnsmasq-wlp1p1s0.leases
sudo chmod 644 /var/lib/NetworkManager/dnsmasq-wlp1p1s0.leases
验证免密 sudo 生效
sudo -k
sudo cat /var/lib/NetworkManager/dnsmasq-wlp1p1s0.leases
无密码提示、无 TTY 错误即配置成功
MAVLink 配置
方法 A:Rpanion Web 界面(推荐)
访问 http://<Jetson-IP>:3000 → MAVLink 选项卡 → 配置 Serial Device /dev/ttyACM0 波特率 921600 → 添加 UDP Output 目标(Windows 电脑 IP + 14550)→ 保存并应用
方法 B:命令行 (mavlink-router)
sudo systemctl stop rpanion
mavlink-routerd -e <WINDOWS_PC_IP>:14550 /dev/ttyACM0:921600
# 示例: mavlink-routerd -e 192.168.1.14:14550 /dev/ttyACM0:921600
验证与测试
sudo systemctl status rpanion
sudo journalctl -u rpanion -f --no-pager
curl -I http://localhost:3000
MAVLink 原始数据检查
sudo timeout 3 cat /dev/ttyACM0 | xxd | head -3
应看到 fd 或 fe 模式 (MAVLink 帧头)
Mission Planner 连接
Windows 电脑设置静态 IP(如 192.168.1.14)→ Mission Planner → 选择 UDP 连接 → 端口 14550 → 连接成功
故障排查表
| 错误 | 原因 | 解决方法 |
|---|---|---|
| status=203/EXEC | ExecStart 路径错误 | 使用 which node 获取正确路径并更新 service 文件 |
| sudo: a terminal is required | 缺少 sudoers 配置 | 按上文创建 99-nvidia-rules 并重启服务 |
| Cannot find module 'server/server.js' | 入口点错误 | 将 server/server.js 改为 server/index.js |
| Address already in use:::3000 | 端口 3000 被占用 | sudo netstat -tulpn | grep 3000 并 kill 对应进程 |
| MODULE_NOT_FOUND | 依赖未安装 | cd ~/Rpanion-server && npm install |
| Mission Planner 无数据 | 防火墙/UDP 目标 IP 错误 | 关闭 Windows 防火墙,确保 UDP 14550 目标 IP 正确 |
完整工作配置清单
[Service] # /etc/systemd/system/rpanion.service
WorkingDirectory=/home/nvidia/Rpanion-server
User=nvidia
Environment="PORT=3000"
ExecStart=/home/nvidia/.nvm/versions/node/v16.20.2/bin/node server/index.js
[ Sudoers ] # /etc/sudoers.d/99-nvidia-rules
Defaults:nvidia !requiretty
nvidia ALL=(ALL) NOPASSWD: /usr/bin/cat /var/lib/NetworkManager/dnsmasq-*.leases
[ Directory ] /home/nvidia/Rpanion-server/
server/index.js
node_modules/
settings.json
[ Network ]
Jetson IP: 192.168.1.17
Windows PC: 192.168.1.14
UDP 端口: 14550
飞控串口: /dev/ttyACM0, 921600
常用命令速查
| 命令 | 用途 |
|---|---|
sudo systemctl start rpanion | 启动服务 |
sudo systemctl stop rpanion | 停止服务 |
sudo systemctl restart rpanion | 重启服务 |
sudo systemctl status rpanion | 查看状态 |
sudo journalctl -u rpanion -f | 实时日志 |
curl -I http://localhost:3000 | 测试 Web 接口 |
总结
Node.js 通过 NVM 安装且路径正确
服务入口为
sudoers 已配置免密 + 无 TTY 要求
mavlink-router 作为 MAVLink 后端
飞控串口 /dev/ttyACM0 且波特率 921600
Mission Planner 可通过 UDP 14550 接收遥测
服务入口为
server/index.jssudoers 已配置免密 + 无 TTY 要求
mavlink-router 作为 MAVLink 后端
飞控串口 /dev/ttyACM0 且波特率 921600
Mission Planner 可通过 UDP 14550 接收遥测
打开浏览器访问 http://<Jetson-IP>:3000 即可通过可视化面板完成 MAVLink 转发管理。