功能介绍

注意

下方ROS话题的发布者和订阅者为相关节点,括号内为对应文件,如无超链接则表示该文件为阿木实验室闭源仓库文件;如需查看,请联系相关人员。

数据监控

地面站会实时显示无人机的状态,包含以下话题的数据:

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg文件,UAVState.msgUAVControlState.msgUAVCommand.msgSwarmCommand.msgGimbalState.msg

消息反馈

地面站会根据用户操作、触发不同的信息反馈,根据消息反馈的提示可以更好的操作地面站。消息反馈话题如下:

  • 信息反馈:/uav*/prometheus/text_info

    发布者:uav_control_main_*(uav_controller.cpp),swarm_control_node(swarm_control.cpp)等
    订阅者:communication_bridge(uav_basic_topic.cpp

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,TextInfo.msg

单机控制

地面站会根据用户的操作,发送不同的指令以控制无人机,包含当前点悬停、初始点悬停、降落,以及移动模式下惯性系、机体系中的位置、速度、定高,轨迹、姿态、经纬高控制等。单机控制话题如下:

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,UAVCommand.msg

集群控制

地面站会根据用户操作,发送不同的指令以控制总个集群系统,包含位置控制、控制模式设置、队形变换设置、队形间距设置等。集群控制话题如下:

  • 集群控制指令:/prometheus/swarm_command

    发布者:communication_bridge(swarm_control_topic.cpp
    订阅者:swarm_control_node(swarm_control.cpp)

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,SwarmCommand.msg

吊舱控制

地面站会根据用户操作,发送不同的指令去控制吊舱,包含roll、pitch、yaw、焦距等控制。吊舱控制话题如下:

  • 吊舱控制话题::/uav*/gimbal/control

    发布者:communication_bridge(gimbal_basic_topic.cpp
    订阅者:gimbal(gimbal_server.cpp)

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,GimbalControl.msg

视觉控制

地面站会根据用户操作,去框选、取消框选,以及获得目标检测的结果,去点击对应目标ID框、取消点击对应目标ID框。相关话题如下:

  • 目标检测话题:/deepsort_ros/object_detection_result

    发布者:deepsort(main.cpp)
    订阅者:communication_bridge(object_tracking_topic.cpp

  • 视觉控制话题:/detection/bbox_draw

    发布者:communication_bridge(gimbal_basic_topic.cpp
    订阅者:tracker_ros(kcf.cpp)

具体数据内容可以参考Prometheus中common模块的prometheus_msgs功能包的msg,MultiDetectionInfoSub.msgWindowPosition.msg

百度地图

地面站内嵌百度地图,并使用相关SDK,实现下列功能:

  • 支持在线、离线两种模式,同时支持街道图、卫星图等多种观看模式,并且可以使用百度地图部分API接口。
  • 提供离线地图瓦片下载
  • 根据无人机经纬度信息,实时显示无人机当前位置
  • 配合单机控制中的经纬高控制,通过点击地图,自动填入经纬度,实现点哪儿飞哪儿
  • 支持OFFBOARD模式下航点规划功能

平面地图

地面站内嵌平面地图,实现下列功能:

  • 根据无人机位置(position)信息,实时显示无人机位置
  • 根据控制指令信息,在平面地图上指明各无人机要飞到的位置
  • 集群控制自主分配后,可以查看预期飞往的位置,避免交叉情况出现
  • 提供打点功能,记录轨迹、集群多机、定位精度等数据,可将数据保存为xlsx文件,然后通过散点图复现轨迹。

虚拟摇杆

地面站支持如下功能:

  • 支持鼠标或者键盘控制
  • 提供三轴、偏航最大速度设置接口
  • 提供回到初始点按钮

视频流拉取

地面站支持如下功能:

  • 支持rtsp流
  • 支持rtmp流

ROS参数

地面站支持如下功能:

  • 加载参数
  • 支持修改参数,达到调参作用
  • 支持一键修改全部无人机

一键启动

地面站支持一键启动程序功能,支持如下功能:

  • 一键启动对应程序,如单机控制、集群控制等相关程序。
  • 提供自定义一键启动接口,用户通过自己设置生成对应程序启动按钮。

日志记录

地面站支持日志记录功能,记录数据如下:

  • 无人机状态数据
  • 无人机控制状态数据
  • 信息反馈数据

三维数据可视化图

主要为适配路径规划功能所开发,ubuntu版本和windows版本采用不同实现方式,其中ubuntu版本基于librviz开发,windows则采用qtopengl开发。

支持以下三维数据显示:

  • OCTOMAP点云图
  • 膨胀点云图
  • 无人机模型
  • 无人机轨迹
  • 无人机规划轨迹
  • 无人机目标点

串口转发

一般用于H16遥控器和RTK模块同时使用情况,用于转发rtcm协议数据,支持如下功能:

  • 串口数据接收查看
  • 串口数据转发(目前仅支持UDP转发)

图像操作

根据拉取的图像,支持如下功能:

  • 截图
  • 录像

自定义消息发送

根据自行设定自定义数据,将其发送到机载端通信节点,然后通信节点提供对应接口,进行二次开发。