本帖最后由 ultramarine1939 于 2023-12-12 09:29 编辑
【鲁班猫创意大赛2期】Rpanion-server 可视化飞控信息管理前言最近在做Ardupilot相关的智能无人机,需要一款机载电脑来完成飞行器的远程控制。鉴于目前树莓派的价格还是有些高,在搜罗迷你主机的过程中发现了LubanCat Zero W这样一款小巧且不占位置的主机,于是便决定着手以LubanCat Zero W为主机做一下移植和汉化。由于使用了同款SOC,鲁班猫1理论上也可以使用该方法刷入固件 目前基本的控制和信息读取转发都简单测试通过,数传信号稳定范围在十米以内,如果需要更远的传输距离可以考虑更换功率更大的网卡; ov5647、ov8858测试通过,帧数大概在20帧左右,帧数低是由于野火的固件适配有些问题,期待技术团队尽早解决。 基本功能演示1、飞控基础信息读取 连接飞控后,rpanion-server能够自动获取设备相关信息并将其显示出来 2、本地网络图形化配置 用户能够直接使用web界面对网络进行配置,已连接设备ip直接显示,无需另外花时间寻找 3、数传管理 通过数传管理页面,用户能够便捷地配置相关飞行数据的发布位置 4、视频流传输 通过视频流传输,用户能够远程观看已连接摄像头的画面 5、网络代理 rpanion-server内置zerotier端口,方便用户利用4g实现内网穿透,远程控制飞行器等功能 使用方法操作设备:LubanCat Zero W 系统环境:lubancat-rk3566-ubuntu22.04-xfce-20230713_update 1、系统更新 #需要注意的是upgrade过程中如果提示gstreamer是否需要覆盖安装,两个选项都要选择N,否则视频流传输功能无法使用
sudo apt update
sudo apt upgrade -y2、自动安装(默认配置npm run实现开机启动运行于3000端口,有条件的可以利用nginx等实现) git clone https://github.com/Ultramarine1939-syujie/Rpanion-server
cd ./Rpanion-server/Luban_deploy && ./install_Luban_libraries.sh && ./Luban_deploy.sh
#如果无法开机自启请修改rpanion.service内的路径名并执行以下指令
sudo cp rpanion.service /etc/systemd/system3、测试运行(服务运行于3001端口) npm run server4、已出现问题 在使用过程中如果对usb设备进行过权限操作,那么网卡驱动很容易掉,可以通过安装以下内核解决:linux-image-4.19.232_4.19.232-10_arm64.deb 摄像头功能的移植与使用1、列出摄像头设备并查看支持的格式 #列出设备
v4l2-ctl --list-devices
#查看支持的格式
v4l2-ctl --list-formats-ext --device=/dev/video0与我们平时常见到的直接输出/dev/videoX不同,可以看到对应设备显示的是一个拓扑结构,但这不影响相关移植工作,因为视频流传输是依托于python的gst库的,而野火官方驱动直接提供了对相关摄像头的支持,因此,只需要修改python/gstcaps.py的内容即可(对应分辨率参见“查看支持的格式”指令): elif "rkisp_mainpath" in name:
caps.append({'value': "3264x2448", 'label': "3264x2448", 'height': 2448, 'width': 3264, 'format':'video/x-raw', 'fpsmax': '15'})
caps.append({'value': "1640x922", 'label': "1640x922", 'height': 922, 'width': 1640, 'format': 'video/x-raw', 'fpsmax': '15'})
caps.append({'value': "1280x720", 'label': "1280x720", 'height': 720, 'width': 1280, 'format': 'video/x-raw', 'fpsmax': '15'})
caps.append({'value': "640x480", 'label': "640x480", 'height': 480, 'width': 640, 'format': 'video/x-raw', 'fpsmax': '15'})
|