Skip to content

Create pgm map from Gazebo world file for ROS localization

License

Notifications You must be signed in to change notification settings

udacity/pgm_map_creator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgm_map_creator

Create pgm map from Gazebo world file for ROS localization

Environment

Tested on Ubuntu 18.04, ROS Melodic, Boost 1.65

Install Protocol Buffers v2.6.1

  • Download the zip file
  • Remove the previous protocol buffer version
  • $ cd /usr/local/include/google
  • $ sudo rm -rf protobuf
  • Download the zip file of Protocol Buffers v2.6.1
  • Follow the installations given here:
    1. $ ./autogen.sh

    2. $ ./configure

    3. $ make

    4. $ make check

    5. $ sudo make install

    6. $ sudo ldconfig

Usage

Add the package to your workspace

  1. Create a catkin workspace / Open the catkin workspace
  2. Clone the package to the src folder
  3. Comment the following lines in CMakeLists.txt in the msgs folder of pgm_map_creator and save it.(Edit it using gedit)
    #${PROTOBUF_IMPORT_DIRS}/vector2d.proto
    #${PROTOBUF_IMPORT_DIRS}/header.proto
    #${PROTOBUF_IMPORT_DIRS}/time.proto
  1. catkin_make and source devel/setup.bash

Add the map and insert the plugin

  1. Add your world file to world folder in the pgm_map_creator folder
  2. Add this line at the end of the world file, before </world> tag: <plugin filename="libcollision_map_creator.so" name="collision_map_creator"/>

Create the pgm map file

  1. Run gazebo /home/jit/catkin_ws/src/pgm_map_creator/world/<map file> with full path to the map and check if it opens correctly. If yes, the close it and follow the next steps.
  2. Run source devel/setup.bash in the following terminals before running the next commands to setup the environment variables
  3. Open a terminal, run gzerver with the map file (Enter the entire path to the map file) gzserver /home/jit/catkin_ws/src/pgm_map_creator/world/<map file>
  4. Open another terminal, launch the request_publisher node roslaunch pgm_map_creator request_publisher.launch
  5. Wait for the plugin to generate map. Track the progress in the gzserver terminal. It will be located in the map folder

Map Properties

Currently, please update the argument value in launch/request_publisher.launch file.

Acknowledgements

Gazebo Custom Messages Gazebo Perfect Map Generator

About

Create pgm map from Gazebo world file for ROS localization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 52.6%
  • CMake 47.4%