Skip to content

Control Architectures

Marc Hanheide edited this page Aug 12, 2023 · 7 revisions

Deliberative Control Architecture

You will use the planning service available at https://lcas.lincoln.ac.uk/fast-downward/.

  1. Familiarise yourself with the above website and read the introtopddl2.pdf slides by Malte Helmert to learn about the PDDL language and the so-called "robot gripper domain and problem". This problem is a version of the problem the robot "Shakey" solved!

  2. Load the domain robot_typed and the corresponding problem robot_typed, and solve it using the so-called fast-downward planner (NOTE: fast-downward is one of many AI planners that use PDDL as their language).

  3. Extend the domain towards a multi-robot task. I.e. what do you have to change to allow the task to be solved by multiple robots?

    • Hint: You will need to introduce the robots as objects and then the action must take the robot they should be executed on as a parameter. Also, each robot can be in a different room, so some of the predicates also will have to change.
    • You can use the problem file for a multi-robot problem (2 robots in this case), which we prepared for you already, and focus on extending the domain to solve this given problem with 2 robots.
    • Do 2 robots solve the task quicker?
  4. Now, starting again from the original robot_typed domain and problem, think about how you could make this problem more realistic. At the moment there are just 2 rooms, but if there are more, e.g., 4, and there are connected to one another like this:

    Rooms pddl Problem

    With 4 objects initially in room A, and to be moved as indicated by the green arrows. Again, this problem is already given in a problem file, so you can focus on writing the corresponding domain file. But focus on understanding the way the problem is presented, first. Then, extend the domain and show how it can now generate plans for this more general task.

Anyone interested in how a general-purpose planner with PDDL can be used with ROS should look at https://kcl-planning.github.io/ROSPlan/

Clone this wiki locally