马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Prometheus-v2新增地面站,助力高效研发!
阿木实验室
已认证帐号
Prometheus地面站是基于Prometheus系统的人机交互界面,地面站采用TCP/UDP通信进行发送和接收数据,而在机载端中则采用ROS/MSG消息进行通信,该地面站可以更快地让用户复现Prometheus系统的各种功能,且同时适用于真机和仿真系统。
这次Prometheus-v2新增的地面站主要是配合Prometheus系统中控制模块(uav_control)开发的一个版本,支持无人机的起飞、降落、悬停、以及惯性系和机体系的移动模式控制,实现实时监控无人机的各种数据状态,在操作过程中还会打印反馈信息进而提醒用户;且同时支持windows和ubuntu操作系统。
一起来看看Prometheus-v2测试版中地面站在仿真中的使用演示吧!
为什么做这个地面站?有哪些优势?① Prometheus v1版本中无地面站,全程终端指令需要手动输入进行控制操作,而Prometheus v2版本配备的地面站能够支持图形化界面操作,极大减少手动输入终端命令的频率,使初学者上手更方便。 ② Prometheus v1版本中需要打开多个终端观察数据的变化,而在Prometheus v2版本上,地面站将多个终端界面需要查看的数据集成到地面站上同时显示,让开发者观察数据更便捷。 该地面站支持哪些功能?1、数据监控 地面站会实时显示无人机的状态,包括以下两个话题的数据: ● 无人机状态(注:*代表ID): /uav*/prometheus/state ● 无人机控制状态(注:*代表ID): /uav*/prometheus/control_state 具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,UAVState.msg和UAVControlState.msg。
2、信息反馈 地面站会根据用户操作、触发不同的信息反馈,根据信息反馈的提示可以更好地操作地面站。信息反馈话题如下: ● 信息反馈:/uav*/prometheus/text_info 具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,TextInfo.msg。
3、无人机控制 地面站会根据用户的操作,发送不同的指令,其中起飞、降落、悬停是已经封装好指令的按钮,点击即可发送对应指令。而移动则不同,需要配合移动模式的选择、共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使用手册(全新)中第7节内容:
Prometheus使用手册(全新):
目前Prometheus地面站还处于测试阶段,如果大家在使用过程中发现bug,欢迎在项目技术交流群/阿木社区/评论区留言反馈,项目组将根据各位开发者的建议与意见,持续优化与改进,使之更贴近开发者的使用与操作习惯。 如需申请进入Prometheus项目交流群,请添加客服微信jiayue199506。
|