Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version jazzy-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version kilted-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version lyrical-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Description
Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2026-10-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

PlanSys2 plan solver plugin that runs the Kairos PDDL planner in-process

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Kairos Plan solver

Plan solver plugin that uses Kairos, a temporal and numeric PDDL planner, as a library: no files are written and no process is started, so PlanSys2 examples plan in a few milliseconds.

  • Temporal (durative actions, timed initial literals), numeric and classical domains, derived predicates, conditional effects and quantifiers.
  • Anytime: the first plan comes fast, then Kairos improves it (shorter makespan) until no better plan arrives for no_improvement seconds or the time runs out.
  • Every plan is validated before it is returned.
  • The parsed domains are cached (by hash and text), so replanning with the same domain does not parse it again; a changed domain is parsed again.
  • cancel() stops the search at once and returns the best plan found so far, if any.
  • isDomainValid checks the domain without planning, and logs errors with line and column.

Usage

planner:
  ros__parameters:
    plan_solver_plugins: ["KAIROS"]
    KAIROS:
      plugin: "plansys2/KairosPlanSolver"

It can run together with other solvers (e.g. ["KAIROS", "POPF"]): the planner node returns the plans of all of them.

Parameters

All of them under the plugin name (e.g. KAIROS.anytime), read at each call:

Parameter Default Meaning
timeout 0.0 Seconds per plan; 0 uses the planner node plan_solver_timeout. It never goes beyond that one: Kairos returns a little before the node deadline.
anytime true Keep improving the first plan.
no_improvement 0.1 With anytime, seconds without a better plan before returning the best one (0: until the timeout). Longer waits rarely give better plans in PlanSys2’s problems and make every plan take at least that long.
search auto Search preset: auto, ff, lama, eager-lama, novelty, lama-novelty, ehc.
engine auto auto, m1 (no durative actions), m2 (compressed temporal), m3 (snap actions, concurrency).
memory_limit_mb 0 Memory for the search; 0 is half of the available memory.
threads 1 Phases of the search at once. More threads find first plans sooner and better plans on temporal problems (180 instead of 172 of the 225 IPC temporal problems with 3), but use more cores; on a robot the computer is shared, so it stays at 1 unless set.
log_level warn Kairos messages forwarded to the ROS logger (<node>.kairos): debug, info, warn, error.
dump_dir "" When set, Kairos writes its intermediate structures there (for debugging).

Sequential plans (no durative actions) are returned with time = position (0, 1, 2…) and duration = 0.

CHANGELOG

Changelog for package plansys2_kairos_plan_solver

4.0.0 (2026-10-21)

  • One version for Humble, Jazzy, Kilted and Lyrical (#509)
  • Robust PlanSys2: one node per component, clients that wait, retry and see a lost plan (#507)
  • Execute everything Kairos plans: conditional effects, durations, timed literals, object fluents, recursive derived predicates, PDDL+ and constraints (#504)
  • Fixes in the executor, the build, the tests and the CI (#502)
  • Kairos plan solver, and Kairos as the default planner (#465)
  • New plan solver plugin that runs the Kairos planner in-process
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plansys2_kairos_plan_solver at Robotics Stack Exchange