[Documentation] [TitleIndex] [WordIndex


The MRRP uses a prioritized planning approach to find the robots routes. Additionally, there are a Priority and a Speed Rescheduler as well as a Collision resolver integrated to solve special scenarios not solvable by standard prioritized planning approaches as shown in the figure below.

SampleScenario_1_Wait.png SampleScenario_2_Avoid.png SampleScenario_3_Avoid.png SampleScenario_4_Push.png SampleScenario_5_Prio.png SampleScenario_6_Speed.png

Figure Sample Scenarios

The route can be used for multiple vehicles or for just one to plan paths on a given or generated graph.

Multi Robot Mode

The Multi Robot Mode is the default mode. The planner listens to /robot_info see how many robots are online and available for planning. A list of goals can be send to goal Since the results generated for these scenarios are interdependent, the given routes have to be executed in a synchronized fashion. Therefore, the Router publishes a tuw_multi_robot_msgs/Route containing preconditions, when a robot is allowed to enter a segment. Additionally a unsynchronized version via nav_msgs/Path is published for every robot.

Single Robot Mode

In this mode the planner just plans a path for one robot but on a graph which is faster and depending how the graph was generated saver to drive e.g. on a voronoi graph the path would always be center in the hallway and not cut corners such as A-star. In order to activae this mode have a look on the paramter path_endpoint_optimization and robot_name.


For an example see the tuw_multi_robot_demo package.

Subscribed Topics

/robot_info (tuw_multi_robot_msgs/RobotInfo)

map (nav_msgs/OccupancyGrid)

segments (tuw_multi_robot_msgs/Graph)

goals (tuw_multi_robot_msgs/RobotGoalArray)

/goal (geometry_msgs/PoseStamped)

Published Topics

planner_status (tuw_multi_robot_msgs/PlannerStatus)

[robot_name]/path (nav_msgs/Path)

[robot_name]/route (tuw_multi_robot_msgs/Route)


robot_name (string default: "")

RQT Reconfigure Parameters

voronoi_graph (bool default: "true")

priority_rescheduling (bool default: "true")

speed_rescheduling (bool default: "true")

router_time_limit_s (float default: "10.0")

topic_timeout_s (float default: "10.0")

path_endpoint_optimization (bool default: "false")

collision_resolver (enum default: "Avoidance")

goal_mode (enum default: "use_voronoi_goal")

router_type (enum default: "standard_router")

nr_threads (int default: "1")

Report a Bug

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

2024-07-13 14:39