一、数据内容

下面是对应的一帧数据:

header: 
  seq: 1496
  stamp: 
    secs: 1606808683
    nsecs: 736963033
  frame_id: "GPS_back_link"
status: 
  status: 2
  service: 1
latitude: 39.99266605166667
longitude: 116.32828818
altitude: 42.037000000000006
position_covariance: [0.00032400000000000007, 0.0, 0.0, 0.0, 0.00032400000000000007, 0.0, 0.0, 0.0, 0.005184000000000001]
position_covariance_type: 1
---

二、数据格式说明

1. 数据格式

std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
sensor_msgs/NavSatStatus status
  int8 status
  uint16 service
float64 latitude
float64 longitude
float64 altitude
float64[9] position_covariance
uint8 position_covariance_type

2. 格式说明

  • header:std_msgs/Header 类型的数据,包含时间戳和坐标系等信息。
  • status:sensor_msgs/NavSatStatus 类型的数据,包含 GPS 信号的质量信息。
  • latitude:以度为单位的浮点数,表示纬度。
  • longitude:以度为单位的浮点数,表示经度。
  • altitude:以米为单位的浮点数,表示相对于海平面的高度。
  • position_covariance:以协方差矩阵表示的位置不确定性。是一个长度为9的一维数组,按照 [covariance_xx, covariance_yy, covariance_zz, covariance_xy, covariance_xz, covariance_yz, covariance_roll, covariance_pitch, covariance_yaw] 的顺序排列。(协方差的开平方是数据波动的范围)
  • position_covariance_type:表示 position_covariance 中协方差的类型。

2.1 sensor_msgs/NavSatStatus

Raw Message Definition 官网说明

# Navigation Satellite fix status for any Global Navigation Satellite System
 
# Whether to output an augmented fix is determined by both the fix
# type and the last time differential corrections were received.  A
# fix is valid when status >= STATUS_FIX.
# 是否输出增强的定位 取决于 定位类型 和最后一次收到差分校正的时间。 
# 当状态 >= STATUS_FIX 时,此定位才有效。
 
int8 STATUS_NO_FIX =  -1        # unable to fix position 不能定位
int8 STATUS_FIX =      0        # unaugmented fix        未增强的定位
int8 STATUS_SBAS_FIX = 1        # with satellite-based augmentation 
int8 STATUS_GBAS_FIX = 2        # with ground-based augmentation   
 
int8 status
 
# Bits defining which Global Navigation Satellite System signals were
# used by the receiver.
# 定义接收机使用了哪种全球导航卫星系统信号
 
uint16 SERVICE_GPS =     1      # GPS导航系统
uint16 SERVICE_GLONASS = 2      # GLONASS导航系统
uint16 SERVICE_COMPASS = 4      # includes BeiDou.
uint16 SERVICE_GALILEO = 8      # 伽利略导航系统
 
uint16 service

Compact Message Definition

int8 STATUS_NO_FIX=-1
int8 STATUS_FIX=0
int8 STATUS_SBAS_FIX=1
int8 STATUS_GBAS_FIX=2
uint16 SERVICE_GPS=1
uint16 SERVICE_GLONASS=2
uint16 SERVICE_COMPASS=4
uint16 SERVICE_GALILEO=8
int8 status
uint16 service

2.2 sensor_msgs/NavSatFix

Raw Message Definition 官网说明

# Navigation Satellite fix for any Global Navigation Satellite System
#
# Specified using the WGS 84 reference ellipsoid
# 使用 WGS 84 坐标系
 
# header.stamp specifies the ROS time for this measurement (the
#        corresponding satellite time may be reported using the
#        sensor_msgs/TimeReference message).
# header.stamp指定此测量的ROS时间(可以使用sensor_msgs/TimeReference消息报告相应的卫星时间)
#
# header.frame_id is the frame of reference reported by the satellite
#        receiver, usually the location of the antenna.  This is a
#        Euclidean frame relative to the vehicle, not a reference
#        ellipsoid.
# header.frame_id 是卫星接收器报告的坐标系,通常是GPS天线的位置。
# 这是相对于车辆(中心)的欧几里得坐标变换,而不是参考椭球坐标系。
 
Header header
 
# satellite fix status information    卫星定位状态信息
NavSatStatus status
 
# Latitude [degrees]. Positive is north of equator; negative is south.
# 纬度[度]。 正数位于赤道以北; 负面是南方。
float64 latitude
 
# Longitude [degrees]. Positive is east of prime meridian; negative is west.
# 经度[度]。 正数位于本初子午线以东; 负面是西方。
float64 longitude
 
# Altitude [m]. Positive is above the WGS 84 ellipsoid
# (quiet NaN if no altitude is available).
# 海拔[m]。 正值高于WGS 84椭球(如果没有可用的海拔高度,则为NaN)。
float64 altitude
 
# Position covariance [m^2] defined relative to a tangential plane
# through the reported position. The components are East, North, and
# Up (ENU), in row-major order.
# 位置协方差[m ^ 2]: 相对于切线平面的位置协方差。 组件是East,North和Up(ENU),按行优先顺序排列。
#
# Beware: this coordinate system exhibits singularities at the poles.
# 注意:此坐标系在极点处表现出奇异性。
 
float64[9] position_covariance
 
# If the covariance of the fix is known, fill it in completely. If the
# GPS receiver provides the variance of each measurement, put them
# along the diagonal. If only Dilution of Precision is available,
# estimate an approximate covariance from that.
# 3 - 如果已知修正的协方差,请完全填写。
# 2 - 如果GPS接收器提供了每次测量的方差,请将其沿对角线放置。
# 1 - 如果只有“精度稀释”可用,请据此估计近似协方差。
 
uint8 COVARIANCE_TYPE_UNKNOWN = 0
uint8 COVARIANCE_TYPE_APPROXIMATED = 1
uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN = 2
uint8 COVARIANCE_TYPE_KNOWN = 3
 
uint8 position_covariance_type

Compact Message Definition

uint8 COVARIANCE_TYPE_UNKNOWN=0 			# 未知类型。表示协方差的具体类型未知,可能是由于某些原因无法确定
uint8 COVARIANCE_TYPE_APPROXIMATED=1		# 协方差未知。表示协方差矩阵中的元素值未知,即不提供具体的协方差信息
uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN=2      # 对角协方差已知。表示协方差矩阵是对角矩阵,对角线上的元素已知,而非对角线上的元素未知。这种情况下,只有位置坐标之间的不确定性(方差)已知,协方差矩阵的其他元素未提供
uint8 COVARIANCE_TYPE_KNOWN=3				# 完全协方差已知。表示协方差矩阵的所有元素都已知,包括位置坐标之间的不确定性和它们之间的协方差。这种情况下,提供了协方差矩阵的所有元素

std_msgs/Header header
sensor_msgs/NavSatStatus status
float64 latitude
float64 longitude
float64 altitude
float64[9] position_covariance
uint8 position_covariance_type
01-17 08:29