菜单

Sunray地面站通信协议 V2.5.0

下载

通信协议概览表

消息编号 消息名称 消息作用 通信方式 消息流向 对应ROS话题 备注
#1 心跳包 HeartbeatData 用来确认TCP连接的状态 TCP Sunray通信模块➡️ Sunray Station地面站 -
#2 无人机状态 UAVState 回传无人机当前状态 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray Station地面站/其他Sunray智能体 • 话题类型:sunray_msgs::UAVState
• 话题名:/uav_id/sunray/uav_state
• 自定义消息:UAVState.msg
集群时,存在机间通信
#3 无人机PX4状态 PX4State 回传无人机PX4状态 UDP - • 话题类型:sunray_msgs::PX4State
• 话题名:/uav_id/sunray/px4_state
• 自定义消息:PX4State.msg
-
#4 无人机PX4飞控参数 PX4Parameter 回传无人机PX4飞控参数 UDP Sunray通信模块(编码)➡️Sunray Station地面站//其他Sunray智能体 - -
#20 无人车状态 UGVState 回传无人车当前状态 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray Station地面站/其他Sunray智能体 • 话题类型:sunray_msgs::UGVState
• 话题名:/ugv_id/sunray/ugv_state
• 自定义消息:UGVState.msg
集群时,存在机间通信
#30 机载电脑ROS节点 NodeData 智能体机载电脑在线ROS节点显示 UDP Sunray通信模块(编码)➡️Sunray Station地面站 从ros master获取
#31 智能体电脑状态 AgentComputerStatus 智能体电脑状态包括:CPU占用率和温度、以及内存占用率 UDP Sunray通信模块(编码)➡️Sunray Station地面站 从系统获取
#32 FAC比赛地图数据 FACMapData 回传比赛地图数据 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray Station地面站/其他Sunray智能体 • 话题类型:sunray_msgs::Competion
• 话题名:/CompetionState
• 自定义消息:Competion.msg
-
#33 FAC比赛状态 FACCompetitionState 回传比赛状态数据 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray Station地面站/其他Sunray智能体 • 话题类型:std_msgs::String
• 话题名:/CompetionDebug
-
#34 航点状态 WayPointState 回传航点数据 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray Station地面站 • 话题类型:sunray_msgs::WayPointState
• 话题名:/ugv_id/sunray/uav_waypoint_state
• 自定义消息:WayPointState.msg
-
#40 编队切换 Formation 编队的控制 UDP Sunray控制模块➡️Sunray通信模块(编码)➡️Sunray通信模块(解码)➡️其他Sunray控制模块 • 话题类型:sunray_msgs::Formation
• 话题名:/sunray/formation_cmd
• 自定义消息:Formation.msg
-
#41 编队切换(地面站) Formation 地面站的编队控制指令 TCP Sunray Station地面站➡️Sunray通信模块(解码)➡️Sunray控制模块 • 话题类型:sunray_msgs::Formation
• 话题名:/sunray/formation_cmd/ground
• 自定义消息:Formation.msg
-
#102 无人机控制指令 UAVControlCMD 在不同模式下通过控制量控制无人机 TCP Sunray Station地面站➡️Sunray通信模块➡️Sunray控制模块 • 话题类型:sunray_msgs::UAVControlCMD
• 话题名:/uav_id/sunray/uav_control_cmd
• 自定义消息:UAVControlCMD.msg
-
#103 无人机设置指令 UAVSetup 无人机设置指令 TCP Sunray Station地面站➡️Sunray通信模块➡️Sunray控制模块 • 话题类型:sunray_msgs::UAVSetup
• 话题名:/uav_id/sunray/setup
• 自定义消息:UAVSetup.msg
-
#104 航点 WaypointData 将航点数据发送给无人机 TCP Sunray Station地面站➡️Sunray通信模块➡️Sunray控制模块 • 话题类型:sunray_msgs::UAVWayPoint
• 话题名:/uav_id/sunray/uav_waypoint
• 自定义消息:UAVWayPoint.msg
-
#105 Viobot算法开关 ViobotSwitch 控制Viobot算法开关 TCP - • 话题类型:sunray_msgs::algo_ctrl
• 话题名:/baton/stereo3_ctrl
• 自定义消息:algo_ctrl.msg
-
#106 RTK原点设置 RTKOrigin 设置RTK原点 TCP - • 话题类型:sunray_msgs::RTKOrigin
• 话题名:/sunray/global_rtk_origin
• 自定义消息:RTKOrigin.msg
-
#120 无人车控制指令 UGVControlCMD 在不同模式下通过控制量控制无人车 TCP Sunray Station地面站➡️Sunray通信模块➡️Sunray控制模块 • 话题类型:sunray_msgs::UGVControlCMD
• 话题名:/ugv_id/sunray_ugv/ugv_control_cmd
• 自定义消息:UGVControlCMD.msg
-
#200 搜索在线智能体 SearchData 搜索在线智能体 UDP Sunray Station地面站➡️Sunray通信模块 无实际意义,通信连接用
#201 智能体应答 ACKData 在线智能体应答UDP广播 UDP Sunray通信模块(编码)➡️Sunray Station地面站 无实际意义,通信连接用
#202 智能体demo DemoData 在线无人机通过launch文件启动demo TCP Sunray Station地面站➡️Sunray通信模块 启动指定ROS launch
#203 功能脚本 ScriptData 在线智能体远程启动功能脚本 TCP Sunray Station地面站➡️Sunray通信模块 启动指定脚本
#204 规划点 Goal 发送x、y、z数据给智能体,用于集群智能体的目标点 TCP Sunray Station地面站➡️Sunray通信模块➡️Sunray控制模块 • 话题类型:geometry_msgs/PoseStamped
• 话题名:/goal_id
-
#205 二维码坐标 QRCodeCoord 无人机识别到的二维码坐标 UDP • 话题类型:geometry_msgs::PointStamped
• 话题名:/uav/target_global_position
• 话题类型:geometry_msgs::PointStamped
• 话题名:/target_global_position
-
表1-1 通信协议概览表

数据帧具体定义

心跳包 - HeartbeatData(#1)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 agentType 智能体类型
uint32 4字节 count 心跳包计数(未使用)

无人机状态 - UAVState(#2)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 uav_id 无人机编号
bool 1个字节 connected 是否与飞控建立连接
bool 1个字节 armed 是否解锁,true为已解锁,false则不是
uint8_t 1字节 mode PX4飞行模式(PX4飞控端)
uint8_t 1字节 landed_state 降落状态,枚举参见mavros_msgs::msg:
float 4个字节 battery_state 电池电压,单位:[V]
float 4个字节 battery_percentage 电池百分比,[0-1]
uint8_t 1个字节 location_source 无人机定位来源
bool 1个字节 odom_valid 里程计是否有效
bool 1个字节 vio_start viobot算法是否开启
uint16_t 2个字节 viobotStateSize viobot算法状态名长度
char[300] viobotStateSize algo_status viobot算法状态
float[3] 12个字节 position 位置,单位:[m]
float[3] 12个字节 velocity 速度,单位:[m/s]
float[3] 12个字节 attitude 姿态,单位:[rad]
float[4] 16个字节 attitude_q 姿态,四元数
float[3] 12个字节 attitude_rate 角速率,单位[rad/s]
float[3] 12个字节 pos_setpoint 位置控制设定值,单位:[m]
float[3] 12个字节 vel_setpoint 速度控制设定值,单位:[m/s]
float[3] 12个字节 att_setpoint 姿态控制设定值,单位:[rad]
float 4个字节 thrust_setpoint 推力设定值,[0-1]
uint8_t 1个字节 control_mode 无人机控制状态机(Sunray端无人机控制)
uint8_t 1个字节 move_mode 无人机移动模式(Sunray端无人机控制)
float 4个字节 takeoff_height 起飞高度
float[3] 12个字节 home_pos 起飞点
float 4个字节 home_yaw 起飞点
float[3] 12个字节 hover_pos 悬停点
float 4个字节 hover_yaw 悬停点
float[3] 12个字节 land_pos 降落点
float 4个字节 land_yaw 降落点

无人机PX4状态 - PX4State(#3)

数据类型 消息长度 变量名 备注
bool 1个字节 connected 是否与飞控建立连接
bool 1个字节 armed 是否解锁,true为已解锁,false则不是
uint8_t 1字节 mode PX4飞行模式(PX4飞控端)
uint8_t 1字节 landed_state 降落状态,枚举参见mavros_msgs::msg:
float 4个字节 battery_state 电池电压,单位:[V]
float 4个字节 battery_percentage 电池百分比,[0-1]
uint8_t 1字节 external_source 外部定位数据来源(sunray_msgs:ExternalOdom)
bool 1个字节 odom_valid 里程计是否有效(sunray_msgs:ExternalOdom)
bool 1个字节 fusion_success 外部定位数据与飞控融合是否成功(sunray_msgs:ExternalOdom)
float[3] 12个字节 originalPosition 原始位置,单位:[m](sunray_msgs:ExternalOdom)
float[3] 12个字节 originalVelocity 原始速度,单位:[m/s](sunray_msgs:ExternalOdom)
float[3] 12个字节 originalAttitude 原始姿态,单位:[rad](sunray_msgs:ExternalOdom)
float[4] 16个字节 originalAttitude_q 原始姿态,四元数(sunray_msgs:ExternalOdom)
bool 1个字节 vio_start viobot算法是否开启(sunray_msgs:ExternalOdom)
uint16_t 2个字节 viobotStateSize viobot算法状态名长度(sunray_msgs:ExternalOdom)
char[300] viobotStateSize algo_status viobot算法状态(sunray_msgs:ExternalOdom)
float[3] 12个字节 position 位置,单位:[m]
float[3] 12个字节 velocity 速度,单位:[m/s]
float[3] 12个字节 attitude 姿态,单位:[rad]
float[4] 16个字节 attitude_q 姿态,四元数
float[3] 12个字节 attitude_rate 角速率,单位[rad/s]
uint8_t 1字节 satellites GPS卫星数量
int8_t 1字节 gps_status GPS状态
uint8_t 1字节 gps_service GPS服务
double 8字节 latitude 融合纬度,单位:[°]
double 8字节 longitude 融合经度,单位:[°]
double 8字节 altitude 椭球高度,单位:[m](WGS84椭球面)
double 8字节 latitude_raw 原始纬度,单位:[°]
double 8字节 longitude_raw 原始经度,单位:[°]
double 8字节 altitude_amsl 海拔高度,单位:[m](平均海平面)
float[3] 12个字节 pos_setpoint 位置控制设定值,单位:[m]
float[3] 12个字节 vel_setpoint 速度控制设定值,单位:[m/s]
float[3] 12个字节 att_setpoint 姿态控制设定值,单位:[rad]
float[4] 16个字节 q_setpoint 姿态设定值,四元数
float 4个字节 thrust_setpoint 推力设定值,[0-1]

无人机PX4飞控参数 - PX4Parameter(#4)

数据类型 消息长度 变量名 备注
double 8字节 MPC_XY_VEL_MAX 最大水平速度
double 8字节 MPC_Z_VEL_MAX_UP 最大垂直上升速度
double 8字节 MPC_Z_VEL_MAX_DN 最大垂直下降速度
double 8字节 MPC_XY_P 水平位置误差的比例增益
double 8字节 MPC_TILTMAX_AIR 空中最大倾斜角
double 8字节 MPC_THR_HOVER 悬停推力
int64_t 8字节 MAV_0_RATE 最大 MAVLink 发送速率
int64_t 8字节 EKF2_HGT_REF EKF 所使用的高度数据参考源

无人车状态 - UGVState(#20)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 ugv_id 无人车编号
bool 1个字节 connected 无人车连接状态
float 4个字节 battery_state [V]
float 4个字节 battery_percentage [0-1]
uint8_t 1个字节 location_source 无人车定位来源
bool 1个字节 odom_valid 里程计是否有效
float[2] 8个字节 position [m]
float[2] 8个字节 velocity [m/s]
float 4个字节 yaw [rad]
float[3] 12个字节 attitude [rad]
float[4] 16个字节 attitude_q 四元数
uint8_t 1个字节 control_mode 无人车控制命令及目标设定值
float[2] 8个字节 pos_setpoint 位置控制目标点
float[2] 8个字节 vel_setpoint 速度控制目标
float 4个字节 yaw_setpoint 姿态控制目标
float[2] 8个字节 home_pos 原点
float 4个字节 home_yaw 原点
float[2] 8个字节 hover_pos 悬停点
float 4个字节 hover_yaw 悬停点

机载电脑ROS节点 -NodeData(#30)

数据类型 消息长度 变量名 备注
uint16_t 2个字节 nodeCount 节点数量
uint16_t 2个字节 nodeID 节点ID(序号)
uint16_t 2个字节 nodeSize 节点名大小
char[300] nodeSize nodeStr 节点名

智能体电脑状态 -AgentComputerStatus(#31)

数据类型 消息长度 变量名 备注
double 8个字节 cpuLoad CPU 负载百分比(0.0-100.0)
double 8个字节 memoryUsage 内存使用率(0.0-100.0)
double 8个字节 cpuTemperature CPU 温度(摄氏度,保留小数精度)

FAC赛地图数据 -FACMapData(#32)

数据类型 消息长度 变量名 备注
float 4个字节 centralObstacleSideLength 中心障碍物边长
float[2] 8个字节 dropZoneCenterCoords 投送区中心点坐标
float[2] 8个字节 firstObstacleCoords 第一个障碍物坐标
float[2] 8个字节 secondObstacleCoords 第二个障碍物坐标
float[2] 8个字节 thirdObstacleCoords 第三个障碍物坐标
float 4个字节 obstacleRadius 障碍物半径
float[2] 8个字节 largeFrameCoords 大框中心点位置
float[2] 8个字节 smallFrameCoords 小框中心点位置

FAC比赛状态 -FACCompetitionState(#33)

数据类型 消息长度 变量名 备注
uint16_t 2个字节 stateSize 状态名大小
char[300] stateSize stateStr 状态

航点状态 -WaypointState(#34)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 wp_state 当前航点状态
uint8_t 1个字节 wp_index 当前正在执行的航点序号
uint8_t 1个字节 wp_num 所有航点数量
float[3] 12个字节 waypoint 正在执行的航点[m]
float[2] 8个字节 velocity 执行速度(x,y)[m/s]
float 4个字节 yaw 偏航角[rad]

编队切换 - Formation(#40)

数据类型 消息长度 变量名 备注
uint8_t1个字节cmd指令类型
uint8_t1个字节formation_type-
uint16_t2个字节nameSize编队名字大小
uint8_t1个字节leader_id-
char[300]nameSizename编队名字

无人机控制指令 - UAVControlCMD(#102)

数据类型 消息长度 变量名 变量范围 变量显示范围 备注
uint8_t 1个字节 cmd 枚举值 枚举值 控制命令
float[3] 12个字节 desired_pos 期望位置,单位:[m]
float[3] 12个字节 desired_vel 期望速度,单位:[m/s]
float[3] 12个字节 desired_acc 期望加速度,单位:[m/s²]
float[3] 12个字节 desired_jerk -
float[3] 12个字节 desired_att 期望姿态,单位:[rad]
float 4个字节 desired_thrust 期望推力,[0-1]
float 4个字节 desired_yaw rad
(-π~π)
角度制
(-180~180)
期望偏航角,单位:[rad]
float 4个字节 desired_yaw_rate rad 角度制 期望偏航角角速率,单位:[rad/s]
float 4个字节 latitude 无人机期望经度
float 4个字节 longitude 无人机期望纬度
float 4个字节 altitude 无人机期望高度

无人机设置指令 - UAVSetup(#103)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 cmd 控制模式
uint8_t 1个字节 px4_mode PX4模式
uint8_t 1个字节 control_mode 参见uav_control.h中无人机控制模式枚举

航点 - WaypointData(#104)

数据类型 消息长度 变量名 变量范围 变量显示范围 备注
bool 1个字节 start 开始执行指令
uint8_t 1个字节 wp_num 20 航点数
uint8_t 1个字节 wp_end_type 枚举值 枚举值 结束事件
uint8_t 1个字节 wp_yaw_type 枚举值 枚举值 偏航角类型
float 4个字节 wp_move_vel 航点间移动速度
double[20][4] 32个字节 wp_points 航点 xyzyaw

Viobot算法开关- ViobotSwitch(#105)

数据类型 消息长度 变量名 变量范围 变量显示范围 备注
bool 1个字节 algoEnable Viobot算法启停
bool 1个字节 algoReboot Viobot算法重启
bool 1个字节 algoReset Viobot算法重置

RTK原点设置- RTKOrigin(#106)

数据类型 消息长度 变量名 变量范围 变量显示范围 备注
double 8个字节 latitude 原点纬度 [度],范围: -90 ~ 9
double 8个字节 longitude 原点经度 [度],范围: -180 ~ 180
double 8个字节 altitude 原点高度 [米],海拔高度(AMSL)

无人车控制指令 - UGVControlCMD(#120)

数据类型 消息长度 变量名 变量范围 变量显示范围 备注
uint8_t 1个字节 cmd 枚举值 枚举值 控制命令
uint8_t 1个字节 yaw_type 枚举值 枚举值 偏航角类型
float[2] 8个字节 desired_pos [m]
float[2] 8个字节 desired_vel [m/s]
float 4个字节 desired_yaw [rad]
float 4个字节 angular_vel [rad/s]

搜索在线智能体 - SearchData(#200)

数据类型 消息长度 变量名 备注
uint64_t 8个字节 port 目的端口

智能体应答 - ACKData(#201)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 agentType 智能体类型
uint8_t 1个字节 id 智能体编号
uint16_t 2个字节 port 机载TCP服务端监听端口

智能体demo - DemoData(#202)

数据类型 消息长度 变量名 备注
bool 1个字节 demoState demo启动还是停止
uint16_t 2个字节 demoSize demo命令大小
char[250] demoSize demoStr demo命令

功能脚本 - ScriptData(#203)

数据类型 消息长度 变量名 备注
uint8_t 1个字节 scripType 脚本类型
bool 1个字节 scriptState 脚本启动还是停止
uint16_t 2个字节 scriptSize 脚本名字大小
char[250] scriptSize scriptStr 脚本名

规划点- Goal(#204)

数据类型 消息长度 变量名 备注
double 8个字节 positionX [m]
double 8个字节 positionY [m]
double 8个字节 positionZ [m]
double 8个字节 yaw rad

二维码坐标- QRCodeCoord(#205)

数据类型 消息长度 变量名 备注
double 8个字节 x [m]
double 8个字节 y [m]
double 8个字节 z [m]
上一个
Sunray地面站通信逻辑
最近修改: 2026-01-28