天天看点

nav_msgs/OccupancyGrid中data的取值分析

最近工作上需要在rviz上显示栅格化的map,便于分析问题。并且不同的map属性需要不同颜色来显示(也可使用不同灰度),使用GridCells发现一个颜色的属性需要单独发布一个topic才能实现彩色的map显示,因此开始研究使用OccupancyGrid来进行这项工作。

std_msgs/Header

nav_msgs/OccupancyGrid中data的取值分析

http://docs.ros.org/en/api/std_msgs/html/msg/Header.htmlstd_msgs/Header header

nav_msgs/MapMetaData info

int8[] data

整个msg很简单,就上面三个值。

data为int8的数组,官方解释概率取值[0-100],未知为-1,不过我们知道int8取值范围为0-256,因此多出的155表示什么呢?实测发现其中0-99每增加1表示一个灰度值,从0白色向100黑色渐变,101-127纯绿色,128-254从红色向黄色渐变,256表示青色。

nav_msgs/OccupancyGrid中data的取值分析

 上图为实测的色值图,从左下开始向右以行计算0-260,每行20个值。越界的值从0开始重新显示。

参考资料:

nav_msgs/OccupancyGrid Documentation (ros.org)

(56条消息) ROS发布栅格地图nav_msgs/OccupancyGrid数据并在rviz中显示_小球球plus的博客-CSDN博客_ros 发布地图

(56条消息) ROS——SLAM实时更新显示栅格地图之nav_msgs::OccupancyGrid_不懂音乐的欣赏者的博客-CSDN博客