Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

New PDDL Solver

PlanSys2 supports multiple planner plugins. KEA already includes an LLM-based plugin in kea_plansys2_solvers. You can add additional solvers by following the same pattern.

1. Implement the plugin

Create a class that inherits from plansys2::PlanSolverBase and implement configure(), getPlan(), and isDomainValid(). The kea_plansys2_solvers::LLMPlanSolver is a good reference.

2. Register with pluginlib

Add the plugin to a pluginlib XML file (see kea_plansys2_solvers/kea_plan_solvers_plugins.xml) and ensure it is exported in the package pluginlib_export_plugin_description_file.

3. Wire it into PlanSys2

Update kea_planner_core/params/plansys2_params.yaml with a new entry under planner.ros__parameters:

planner:
  ros__parameters:
    plan_solver_plugins: ["MY_SOLVER"]
    MY_SOLVER:
      plugin: "my_pkg/MyPlanSolver"
      arguments:
        # plugin-specific parameters

You can also pass a custom params_file at launch time instead of editing the default.

4. Select the solver at launch

Set plan_solver_plugins to your solver name or override the params file with a custom one. If you want to switch dynamically for a given run, provide a custom params_file using the kea_core_planner.launch.py params_file argument.