A prototype tool for segmenting indoor maps and generating a zone graph. The project can also produce PDDL descriptions of the resulting graph for robotic planning experiments.
The application depends on OpenCV and yaml-cpp. On Debian/Ubuntu systems they can be installed with:
sudo apt-get install libopencv-dev libyaml-cpp-devmkdir build
cd build
cmake ..
makeIf CMake cannot find OpenCV or yaml-cpp make sure the development packages are
installed and that the libraries are discoverable via CMAKE_PREFIX_PATH or the
OpenCV_DIR/YAML_CPP_DIR variables.
./mapannotator <map.pgm> [config.yaml]
The program expects a grayscale map image in .pgm format and an optional YAML
configuration. It outputs diagnostic information, generates a PDDL problem file
and creates visual previews of the computed zones.
segmentation/– image processing and segmentation routinesmapgraph/– zone graph data structures and visualisation helperspddl/– utilities for generating PDDL from the graphconfig/– example classification rules
This project is distributed under the terms of the MIT license. See LICENSE for details.
When ROS 2 and the required message packages are available the project can be
built with an additional node that consumes a nav_msgs/OccupancyGrid and
publishes the generated PDDL.
The node subscribes to /map by default and publishes to /pddl/map. Example
build and run steps:
mkdir build && cd build
cmake ..
make mapannotator_ros2
ros2 run mapannotator mapannotator_ros2