nav_msgs::OccupancyGrid数据结构,坐标系及索引概述

本文详细介绍了nav_msgs::OccupancyGrid数据结构及其坐标系。解析了如何通过坐标求索引及通过索引求坐标的方法,并给出了具体的计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nav_msgs::OccupancyGrid的数据结构

header: 
  seq: 
  stamp: 
  frame_id:  # 地图所在坐标系
info: 
  map_load_time:
  resolution: # 分辨率
  width:  # 宽度:在x方向的栅格数
  height: # 高度:在y方向的栅格数
  origin:  # 地图原点在frame_id坐标系下的值;
    position:  
    orientation: 
data:  #  int8[] 一维数组,按照索引存放栅格数据;

nav_msgs::OccupancyGrid的坐标系

地图的原点在矩形的一个顶点,如下图所表示前左上(x,y,y)坐标系(俯视图):
原点为右下顶点,x轴向上,y轴向左;
OccupancyGrid坐标系与车辆坐标系的关系,一般按如下方式建立:
                               ^
    ---------------------------| x
    |                          |  
    |              ^           |
    |              | car_x     |
    |              |           |
    |              |           |
    |     <--------*           |
    |   car_y     car_origin   |
    |                          |  
 <-----------------------------|---
    y                   OccupacyGrid_origin

参数计算关系:
OccupacyGrid_origin.x = - car_origin_to_map_back;
OccupacyGrid_origin.y = - 0.5*height*resolution;
OccupacyGrid_origin.yaw = 0;

nav_msgs::OccupancyGrid的数据索引

索引号的排序关系

索引号沿着x轴方向逐行累加,取值如下图所示:
                               ^
    ---------------------------| x
    |   |        ...       |w-1|  
    |---|----------------------|
    |            ...           |  
    |---|--------------|---|---|
    |   |        ...   |w+1| 1 |
    |---|--------------|---|---|
    |   |        ...   | w | 0 |
 <-----------------------------|---
    y                     OccupacyGrid_origin

点在map系的坐标值(x,y)与索引号(idx)的关系

已知坐标求索引:
ix = x/resolution;
iy = y/resolution;
idx = ix + iy * width;

已知索引求坐标:
iy = idx / width;
ix = idx % width;
x = ix * resolution;
y = iy * resolution;
                               ^
    ---------------------------| x
    |                          |  
    |                          |
    |                          |
    |             (x,y)        |
    |               * ---------| ix
    |               |          |
    |               |          |  
 <-----------------------------|---
    y               iy             OccupacyGrid_origin
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值