ROS中map_server地图服务器的参数配置及使用方法
map_server简介
map_server是ROS的一个节点,它将作为一个服务器为其他的节点提供地图数据,同时还提供保存地图的功能。官方文档:http://wiki.ros.org/map_server
图像配置
map_server会将一张灰度图转化为地图信息并发布,melodic之后的版本不再支持png格式的图片,建议将图片保存为pgm格式。map_server会根据参数配置文件中的阈值信息判断栅格是否可以是可以通过的并发布信息
参数配置
在使用map_server之前需要配置yaml参数文件,文件名我们命名为map.yaml
image: map.pgm
resolution: 0.1
origin: [0.0, 0.0, 0.0]
occupied_thresh: 0.65
free_thresh: 0.196
negate: 0
参数解释:
- image 需要填写地图图片的绝对地址或相对于yaml文件的相对地址
- resolution 地图的分辨率,单位是米/像素
- origin 地图的原点的姿态(x,y,yaw)
- free_thresh 每个栅格的被视为障碍物的阈值
- negate 是否颠倒障碍栅格与自由栅格
roslaunch编写
编写roslaunch来启动map_server:
<launch>
<arg name="map_fig" default="$(find YOUR_PACKAGE_NAME)YOUR_YAML_PATH"/>
<node name ="map_server" pkg="map_server" type="map_server" output="screen" respawn="false" args="$(arg map_fig)"/>
</launch>
其中YOUR_PACKAGE_NAME
需要替换成你的launch所在功能包的名字,YOUR_YAML_PATH
需要替换成map.yaml的地址,这里给出我的文件地址作为参考
<arg name="map_fig" default="$(find navigation_test)/map/map.yaml"/>
然后map_server就会发布地图话题,在rviz中选择/map话题就可以可视化地图信息: