ROS 2 中用于建图的一些 topic
1、/map
nav_msgs/OccupancyGrid 类型,Nav2 的 map_server
会把整张地图发布一次,之后就不再连续推送;新订阅者会收到这条“最后一次”的缓存消息,地图若有增量变化,会走另一个话题 /map_updates
(nav_msgs/OccupancyGridUpdate
),而不是反复发整张 /map。
header
stamp
:时间戳(这里是 14.200000000 s),通常来自地图发布时的时间或回放时间。frame_id: map
:该消息所在坐标系(地图坐标系)。
info
map_load_time
:地图生成/加载时刻(与上面时间一致)。resolution: 0.05
:每个栅格 0.05 m,即 5 cm/格。width: 314
,height: 233
:栅格宽高(单位:格)。对应实物尺寸约宽:
314 × 0.05 = 15.70 m
高:
233 × 0.05 = 11.65 m
origin
:(0,0) 号栅格的左下角在map
坐标系中的位姿。这里位置
(-6.0, -5.54)
,四元数(0,0,0,1)
表示无旋转。第
(x, y)
个格中心的世界坐标计算:world_x = origin.x + (x + 0.5) * resolution
world_y = origin.y + (y + 0.5) * resolution
data:实际的占据数据(一维数组,长度应为
width * height = 314 * 233 = 73,162
)。编码约定(标准
OccupancyGrid
):-1
:未知0
:自由(free)100
:占据(occupied)中间值(1–99)表示概率/置信度
2、/odom
nav_msgs/msg/Odometry 类型
header
stamp
:时间戳,表示数据的采集时间frame_id
:父坐标系(通常是"odom"
)
child_frame_id
子坐标系(通常是
"base_link"
,即机器人机体中心)
pose
(位姿 + 协方差)pose.position
:机器人在odom
坐标系下的 X、Y、Z 位置pose.orientation
:机器人姿态(四元数)covariance
:位姿的不确定性(6×6 协方差矩阵)
twist
(速度 + 协方差)twist.linear
:机器人在base_link
坐标系下的线速度 (m/s)twist.angular
:机器人在base_link
坐标系下的角速度 (rad/s)covariance
:速度测量的不确定性