Create pgm map from Gazebo world file for ROS localization
Tested on Ubuntu 16.04, ROS Kinetic, Boost 1.58
- Create a catkin workspace
- Clone the package to the src folder
catkin_make
and sourcedevel/setup.bash
- Add your world file to world folder
- Add this line at the end of the world file, before
</world>
tag:<plugin filename="libcollision_map_creator.so" name="collision_map_creator"/>
- Open a terminal, run gzerver with the map file
gzserver src/pgm_map_creator/world/<map file>
- Open another terminal, launch the request_publisher node
roslaunch pgm_map_creator request_publisher.launch
- Wait for the plugin to generate map. It will be located in the map folder
Currently, please update the argument value in launch/request_publisher.launch file.
Tested on docker-ce 20.10.12
-
First install docker-ce from here
-
Clone and change directory to this folder
cd pgm_map_creator
-
Build image with desired tag
docker build -t <myimage> .
-
Create your container
docker run -t -d --name <mycontainer> <myimage:latest>
-
Start bash shell in your container
docker exec -it <mycontainer> /bin/bash
-
Source your ros distro and workspace
source /home/username/.bashrc
-
Build
cd /home/username/catkin_ws/ && catkin_make
-
Find your container IP address
sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" <mycontainer>
-
Open up a new terminal for transfering your .world file to container with nautilus file manager. But make sure you have SAMBA installed on your computer.
nautilus sftp://username@<container-ip-address>