tuw_multi_robot: tuw_multi_robot_ctrl | tuw_multi_robot_demo | tuw_multi_robot_goal_generator | tuw_multi_robot_local_behavior_controller | tuw_multi_robot_msgs | tuw_multi_robot_router | tuw_multi_robot_rviz | tuw_voronoi_graph

Package Summary

Contains different nodes to generate routing graphs for the robot router. voronoi_graph_generator generates a voronoi graph out of a map. dxf_to_graph generates a graph out of a dxf file and segments_to_graph creates a graph using a config file with line segments as input.

  • Maintainer status: maintained
  • Maintainer: Benjamin Binder <benjamin.binder AT tuwien.ac DOT at>, Markus Bader <markus.bader AT tuwien.ac DOT at>, Florian Beck <florian.beck AT tuwien.ac DOT at>
  • Author: Benjamin Binder <benjamin.binder AT tuwien.ac DOT at>
  • License: BSD
  • Source: git https://github.com/tuw-robotics/tuw_multi_robot.git (branch: kinetic)
tuw_multi_robot: tuw_multi_robot_ctrl | tuw_multi_robot_demo | tuw_multi_robot_goal_generator | tuw_multi_robot_local_behavior_controller | tuw_multi_robot_msgs | tuw_multi_robot_router | tuw_multi_robot_rviz | tuw_voronoi_graph

Package Summary

Contains different nodes to generate routing graphs for the robot router. voronoi_graph_generator generates a voronoi graph out of a map. dxf_to_graph generates a graph out of a dxf file and segments_to_graph creates a graph using a config file with line segments as input.

  • Maintainer status: maintained
  • Maintainer: Benjamin Binder <benjamin.binder AT tuwien.ac DOT at>, Markus Bader <markus.bader AT tuwien.ac DOT at>, Florian Beck <florian.beck AT tuwien.ac DOT at>
  • Author: Benjamin Binder <benjamin.binder AT tuwien.ac DOT at>
  • License: BSD
  • Source: git https://github.com/tuw-robotics/tuw_multi_robot.git (branch: master)

Overview

VoronoiGraph.png

This package includes the tuw_voronoi_graph_node, which generates a voronoi graph out of a pixel map and the tuw_segment_to_graph_node, which generates a graph out of segments.

tuw voronoi graph node

Receives a pixel map (occupancy_grid) and converts it into a tuw_multi_robot_msgs/Graph message spanning the whole free space of the map. Additionally the graph is saved to a given folder. If a map is already converted to a graph the graph is loaded from memory to save computation time.

Subscribed Topics

~map (nav_msgs/OccupancyGrid)

  • The map used for planning (used for matching odom pose to graph)

Published Topics

~segments (tuw_multi_robot_msgs/VoronoiGraph)

  • The generated graph

~map_eroded (nav_msgs/OccupancyGrid)

  • erode of the input map if the parameter publish_map_eroded is true

Parameters

~map_inflation (double default: "0.1" [m])

  • Sets the parameter to erode the map for a cleaner Voronoi graph.

~segment_length (float default: "0.9")

  • Defines the length of a graph segment.

~crossing_opimization (float default: "0.2")

  • Crossings which have less distance than this value are merged together

~end_segment_optimization (float default: "0.4")

  • End segments (has only one neighbor) which are shorter than this value are removed.

~graph_path (string default: ".")

  • Defines the path were the generated graphs are saved

~custom_graph_path (string default: "")

  • If this param is set a custom generated graph is loaded from this path

~publish_map_eroded (bool default: "false")

  • on true it will publish the eroded map

tuw dxf to graph node

This is a standard executable which takes a .dxf file as input and generates a graph which is saved to be loaded with the tuw_voronoi_graph_node.

The dxf file must contain the original map.pgm (e.g. used by map server) transformed by scale and offset, to give scale and offset to the application (Theoretically any image with the right scale and offset would work as well). Additionally lines, circles and arcs can be included, which are included to generate the segments. All elements which share an endpoint are connected.

Each resulting segment has a width, given by the command-line argument -w and a length, which has at least the length of the command-line argument [-l] and at max the length of [2*(-l) - epsilon].

Arguments

-h [ --help ]

  • Display help message

-i [ --input ] arg (=./segments.dxf)

  • The path to the file

-o [ --output ] arg (=./graphs/segments)

  • The output directory

-w [ --width ] arg (=0.600000024)

  • The width of a segments in meters

-l [ --length ] arg (=1)

  • The length of a segment in meters

tuw segment to graph node

Receives a pixel map (occupancy_grid) and converts it into a tuw_multi_robot_msgs/Graph message spanning the whole free space of the map. Additionally the graph is saved to a given folder. If a map is already converted to a graph the graph is loaded from memory to save computation time.

Subscribed Topics

Published Topics

~segments (tuw_multi_robot_msgs/VoronoiGraph)

  • The generated graph

Parameters

~segment_file (string default: "segments.yaml")

  • The filepath to the defined segments.

~segments_topic (string default: "/segments")

  • The topic where the graph is published.

~segment_length (float default: "0.9")

  • Defines the length of a graph segment.

Sample Segments File

start_x:      [      0,        2,   3.2,    5]
start_y:      [   -1.5,     -1.5,    -2,   -4]
end_x:        [      2,      3.2,     5,    3]
end_y:        [   -1.5,       -2,    -4,   -4]
space:        [    1.0,      1.0,   1.0,  1.0]
origin_x:     -15
origin_y:     -15
resolution:   0.05

Report a Bug

Use GitHub to report bugs or submit feature requests. [View active issues]

Wiki: tuw_voronoi_graph (last edited 2018-09-30 20:41:54 by Markus Bader)