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.