pgm_map_creator 项目使用教程
1. 项目目录结构及介绍
pgm_map_creator
是一个用于从 Gazebo 仿真环境中生成 PGM 地图的 ROS 包。以下是该项目的目录结构及其介绍:
pgm_map_creator/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── launch/
│ ├── request_publisher.launch
│ └── <其他启动文件>
├── maps/
│ ├── map.pgm
│ └── map.yaml
├── msgs/
│ ├── collision_map_request.proto
│ └── <其他消息文件>
├── src/
│ ├── collision_map_creator.cc
│ └── request_publisher.cc
├── world/
│ ├── <你的世界文件>.world
│ └── <其他世界文件>
└── package.xml
目录结构说明
- CMakeLists.txt: 项目的 CMake 配置文件,用于编译项目。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍文档,包含基本的使用说明。
- launch/: 存放项目的启动文件,用于启动 ROS 节点。
- maps/: 存放生成的 PGM 地图文件及其对应的 YAML 配置文件。
- msgs/: 存放项目中使用的自定义消息文件,通常是
.proto
文件。 - src/: 存放项目的源代码文件,包括主要的 C++ 源文件。
- world/: 存放 Gazebo 仿真环境的世界文件。
- package.xml: ROS 包的元数据文件,包含包的依赖信息等。
2. 项目的启动文件介绍
在 launch/
目录下,主要有两个启动文件:request_publisher.launch
和 <其他启动文件>
。以下是这些文件的介绍:
request_publisher.launch
该文件用于启动 request_publisher
节点,该节点负责生成 PGM 地图。以下是该文件的内容示例:
<launch>
<!-- 定义地图文件路径 -->
<arg name="map_file" default="$(find pgm_map_creator)/maps/map.pgm"/>
<!-- 启动 request_publisher 节点 -->
<node name="request_publisher" pkg="pgm_map_creator" type="request_publisher" output="screen">
<param name="map_file" value="$(arg map_file)"/>
</node>
</launch>
<其他启动文件>
其他启动文件可能用于启动 Gazebo 仿真环境或其他相关节点。具体内容根据项目需求而定。
3. 项目的配置文件介绍
在 maps/
目录下,主要有两个配置文件:map.pgm
和 map.yaml
。以下是这些文件的介绍:
map.pgm
map.pgm
文件是生成的 PGM 地图文件,用于表示 Gazebo 仿真环境中的二维地图。该文件通常由 request_publisher
节点生成。
map.yaml
map.yaml
文件是 PGM 地图的配置文件,包含地图的元数据信息,如分辨率、原点位置等。以下是该文件的内容示例:
image: map.pgm
resolution: 0.01
origin: [-15.0, -15.0, 0.0]
occupied_thresh: 0.65
free_thresh: 0.196
negate: 0
配置文件说明
- image: 指定 PGM 地图文件的路径。
- resolution: 地图的分辨率,表示每个像素代表的实际距离。
- origin: 地图的原点位置,通常是地图左下角的坐标。
- occupied_thresh: 占据阈值,表示被认为是障碍物的像素值。
- free_thresh: 自由阈值,表示被认为是自由空间的像素值。
- negate: 是否反转像素值,通常为 0 表示不反转。
通过以上配置文件,可以确保生成的 PGM 地图在 ROS 中正确加载和使用。