Prometheus地面站是基于Prometheus系统的人机交互界面,地面站采用TCP/UDP通信进行发送和接收数据,而在机载端中则采用ROS/MSG消息进行通信,该地面站可以 更快地让用户复现Prometheus系统的各种功能 ,且同时 适用于真机和仿真系统 。
(资料图片)
这次Prometheus-v2新增的地面站主要是配合Prometheus系统中控制模块(uav_control)开发的一个版本,支持无人机的起飞、降落、悬停、以及惯性系和机体系的移动模式控制,实现 实时监控 无人机的各种数据状态,在操作过程中还会 打印反馈信息 进而提醒用户;且同时 支持windows和ubuntu操作系统 。
一起来看看Prometheus-v2测试版中地面站在仿真中的使用演示吧!
为什么做这个地面站?有哪些优势?
● 为 Prometheus-v2 提供一个可视化工具;
● 简化 Prometheus-v2 使用的步骤、操作;
① Prometheus v1版本中 无地面站 ,全程终端指令需要手动输入进行控制操作,而Prometheus v2版本配备的地面站能够支持图形化界面操作,极大减少手动输入终端命令的频率,使初学者上手更方便。
② Prometheus v1版本中需要打开多个终端观察数据的变化,而在Prometheus v2版本上,地面站将多个终端界面需要查看的数据集成到地面站上同时显示,让开发者观察数据更便捷。
● 配合 Prometheus-v2 测试版本推出,适配控制模块, 方便开发者的使用 。
该地面站支持哪些功能?
数据监控
地面站会实时显示无人机的状态,包括以下两个话题的数据:
● 无人机状态( 注:*代表ID ):
/uav*/prometheus/state
● 无人机控制状态 ( 注:*代表ID ) :
/uav*/prometheus/control_state
具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,UAVState.msg和UAVControlState.msg。
信息反馈
地面站会根据用户操作、触发不同的信息反馈,根据信息反馈的提示可以更好地操作地面站。信息反馈话题如下:
● 信息反馈:/uav*/prometheus/text_info
具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,TextInfo.msg。
无人机控制
地面站会根据用户的操作,发送不同的指令,其中起飞、降落、悬停是已经封装好指令的按钮,点击即可发送对应指令。而移动则不同,需要配合移动模式的选择、共6种移动模式、分别为惯性系和机体系的位置、速度、定高,根据提示输入对应的预期位置或者预期速度,然后点击移动按钮即可。控制话题如下:
● 无人机控制:/uav*/prometheus/command
具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,UAVCommand.msg。
用到了哪些技术?
首先,地面站是配合Prometheus通信节点进行使用的,两者之间是通过 TCP/UDP (TCP通信、UDP组播等)进行通信,而通信节点与其他模块之间采用 ROS/MSG通信 (服务、话题);地面站和通信节点同时采用Prometheus协议进行数据的编解码,并且将数据段进行序列化以及反序列化操作, 实现模版函数 ,大大 提高了可扩展性 ,方便后期传输数据(自定义数据)的添加以及删改;
目前推出的地面站由 Qt开发 ,UI界面主要由 QWidget 实现。QWidget类是所有用户界面对象的基类。通俗来讲, Qt 基本上 所有的UI类都是由QWidget继承出来的。 Widget属于传统界面开发,和VB/VC/Delphi等拖曳控件开发类似,走CPU绘制,能最大化的兼容现有的硬件和过去的相对偏低性能的硬件。
后面我们还会推出的 升级版地面站 ,包含gstreamer、opencv等第三方库,实现视觉模块的控制和显示,如框选、点击跟踪、吊舱控制等;同时还会涉及QML技术,实现离线地图、平面地图上无人机位置的实时显示、轨迹打印等;并且还会支持Prometheus模块中的绝大多数功能模块,以及Rhea小车的部分功能,敬请期待~
Prometheus使用手册(全新) :
https://wiki.amovlab.com/public/prometheus-wiki/
目前Prometheus地面站还处于测试阶段,如果大家在使用过程中发现bug,欢迎在 项目技术交流群/阿木社区/评论区 留言 反馈,项目组将根据 各位开发者 的建议与意见,持续优化与改进,使之更贴近开发者的使用与操作习惯。
同时,在此诚挚邀请广大开发者为Prometheus项目贡献代码,或以全职/兼职形式成为Prometheus课程开发教师,您将有机会获得免费的硬件支持或者相应的报酬。
以下为项目相关介绍
附1:项目简介
Prometheus是一套开源的 自主无人机软件平台 ,为无人机的智能与自主飞行提供 全套解决方案 。本项目基于 PX4 开源飞控固件,旨在为PX4开发者配套成熟可用的 机载电脑端 程序,提供更加简洁快速的开发体验。目前已集成 建图 、 定位 、 规划 、 控制 及 目标检测 等模块,并配套有Gazebo仿真测试代码。
项目wiki:
https://github.com/amov-lab/Prometheus/wiki
社区问答专区:
https://bbs.amovlab.com/forum.php?mod=forumdisplay&fid=101
附3:Prometheus学习路线推荐
附4:Prometheus项目校园赞助
发论文,拿阿木奖学金!
阿木实验室面向所有 在校学生 发起 Prometheus项目校园赞助 活动!只要你是使用Prometheus进行科学研究的在校生,在 指定期刊发表论文 就有机会获得阿木的奖学金~各位同学赶紧加入进来,下一个获得奖学金的可能就是你。