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

Contributing - New Example

Thank you for your interest in contributing to the KEA planner! You can add your own planner example scenario and even open a PR to merge it to the main repo!

You can copy the moleworks example and edit it to your liking, we’ll go through the steps of customizing the planner for your specific scenario here:

Create the domain and problem files

Creating the domain and problem files for a certain scenario is usually time consuming. You have 2 options, either manually create a domain.pddl and problem.pddl file, or use the kea_plan_gen package.

Make sure the domain parses with PlanSys2 and that the problem references valid objects and predicates.

Test the planner

In case you want to see the plan solution before execution you can run the plan solver on it’s own:

ros2 run popf popf domain.pddl problem.pddl

Create the actions

For each action that your system supports you need to create an action node to serve as interface between the planner and system.

Most examples use PlanSys2 BT actions (plansys2_bt_actions) or custom ROS 2 action servers.

Create Agent config files (optional)

Create a config file where you define your LLM and VLM settings and the specific prompts. If not specified, the defaults from kea_planner_core params/llm_profiles/default.yaml, params/vlm_profiles/default.yaml, and params/prompts.yaml will be used.

Create a launch file

Start from kea_planner_core/launch/kea_core_planner.launch.py and include it in your scenario-specific launch file. Provide default domain_file and problem arguments, then add your action nodes.

Create launch file and launch KEA