No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro lyrical showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.0.4
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/plansys2/ros2_planning_system_examples.git
VCS Type git
VCS Version rolling
Last Updated 2026-10-23
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Two robot armies on a battlefield: PlanSys2 replanning as the battle unfolds

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Combat example

Two robot armies on a battlefield. Each side plans with what it knows, the battle does not go as planned, and PlanSys2 replans: a shot misses, infantry walks into a zone and finds enemies there, an enemy is not where it was seen. Each side that plans has its own PlanSys2 in its namespace (/blue, /red), with its own controller; an arbiter, shared and outside them, keeps the true state of the battle. The side that takes every control point, or the only one with robots left, wins.

Running it

PlanSys2 recommends Zenoh. In every terminal:

source install/setup.bash
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

and in one of them, the router:

ros2 run rmw_zenoh_cpp rmw_zenohd

Each mode has its launcher, which starts the arbiter, the PlanSys2, performers and controller of every side that plans, and RViz2 with the battle. The battle is told in the terminal of the launcher, in colors: what really happens, from the arbiter, in yellow; what blue decides in light cyan; what red decides in red. Captures, robots destroyed and the end of the battle stand out in bold.

The PlanSys2 TUI shows each side’s plan, its execution and its knowledge. Each side has its PlanSys2 in its namespace, so the TUI of a side runs in it. Its Behavior tree tab (key 3) shows the tree of the plan as it runs: each side’s executor publishes it on a port of its own, blue’s on 1800 and red’s on 1802 (type it with p in the tab).

Fog defense

Blue attacks a red defense that holds still on a 3x3 map: an infantry in the center, a tank in the north and artillery in the east. Blue only knows its base: its drone surveys ahead, and every enemy found changes the plan. Infantry takes the three control points in the middle column; the artillery fires while the drone spots its target. Blue wins when it holds them all.

ros2 launch plansys2_combat_example fog_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Known defense

The same defense, with the whole map surveyed from the start: blue plans knowing where every enemy is, and only misses and losses change the plan.

ros2 launch plansys2_combat_example known_defense.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue

Duel

Blue and red, each with its PlanSys2 and its controller, fight for the three control points of the same 3x3 map. Each one only knows its base at the start, and its tank guards a control point (blue’s the north one, red’s the south one): only tanks and artillery can clear it. They find each other as they move, shoot at each other and take points from each other. The first to hold every point, or the only one with robots left, wins.

ros2 launch plansys2_combat_example duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Big duel

A big battle of the same kind: twelve robots a side (two drones, six infantry, two tanks and two artillery) on a 6x6 map crossed by a river with two bridges, and eight control points in pairs on both banks. Each side’s tanks guard its two central points. Plans have dozens of actions and take seconds, so time runs slower: a battle lasts a few minutes.

ros2 launch plansys2_combat_example big_duel.launch.yaml
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/blue
ros2 run plansys2_tui_cli plansys2_tui --ros-args -r __ns:=/red

Arguments

Every launcher takes:

  • goal: capture (every control point) or total (also destroy every enemy found).
  • seed: the shots that hit or miss; by default, the world’s.
  • rviz: false to run without RViz2.
  • colors: false to tell the battle without colors, e.g. into a file.
  • shutdown_at_end: true to stop everything when the battle ends; by default RViz2 keeps the last view.

combat_launch.py takes a world of config/worlds and the sides that plan (armies, by default those of the world). In a world, time_scale sets how many real seconds one second of the plan takes; rviz the RViz2 configuration that frames its map, and water what is only drawn (the river of big_duel).

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged plansys2_combat_example at Robotics Stack Exchange