Continual Planning in Golog


To solve ever more complex and longer tasks, mobile robots need to generate more elaborate plans and must handle dynamic environments and incomplete knowledge. We address this challenge by integrating two seemingly different approaches — PDDL-based planning for efficient plan generation and Golog for highly expressive behavior specification — in a coherent framework that supports continual planning. The latter allows to interleave plan generation and execution through assertions, which are placeholder actions that are dynamically expanded into conditional sub-plans (using classical planners) once a replanning condition is satisfied. We formalize and implement continual planning in Golog which was so far only supported in PDDL-based systems. This enables combining the execution of generated plans with regular Golog programs and execution monitoring. Experiments on autonomous mobile robots show that the approach supports expressive behavior specification combined with efficient sub-plan generation to handle dynamic environments and incomplete knowledge in a unified way.


In the paper Continual Planning in Golog we describe our approach to continual planning in Golog. We explain how we represent incomplete knowledge, how we expand Golog's transition semantics with assertions, and we describe the evaluation on our domestic service robot Caesar.


Golog Integration

Our continual planner is implemented as part of the robot software framework Fawkes. As shown above, it uses sensor readings provided by the framework and executes actions using Fawkes' Behavior Engine.

Running it yourself

It's also possible to run our continual planning implementation stand-alone.

  1. Install ECLiPSe CLP
  2. Install Fast Downward
  3. Optionally: Install Fast-Forward
  4. Download the continual planner
  5. Run
    export PLANNER_PATH=/path/to/planners
    where the path points to the base directory where both planners are installed.
    As an example, if you have your planners in /home/bob/planner/{fast-downward,fast-forward}, then run
    export PLANNER_PATH=/home/bob/planner
  6. Adapt the configuration in cont_plan_cleanup.ecl to your needs
  7. Run the system:
    eclipse-clp -f cont_plan_cleanup.ecl -e "run."




We evaluated our continual planning system by comparing it to the GKI continual planner. We ran both planners on two different tasks. In both tasks, the robot had to clean up the table by putting all cups to the right locations. In Task 1, the agent initially didn't know any cup states. Task 2 is a simplification of Task 1, all cup states were known initially. For details, see our our publication.

Task 1

The robot initially knows neither the cup positions nor whether a cup is clean. We vary the number of cups between 1 and 10; we add clean and dirty cups alternately. Benchmark 1 Evaluation

Task 2

The robot does not know the cup positions, but it knows cup states initially and thus does not need to sense them. As before, every second cup is clean, the number of cups varies between 1 and 10 (simplification of Task 1). Benchmark 2 Evaluation