Solving Problems in Classic Blocks World Domain

classic blocks world l.w
1 / 11
Embed
Share

Explore the Classic Blocks World domain starting with BW domain file, solving problems using planning domains, and extending the domain with predicates and constants. Learn about basic add and delete effects in actions, defining predicates and actions, and executing pick-up, put-down, stack, and unstack actions in the domain.

  • Classic Blocks World
  • Planning Domains
  • Predicates
  • Actions
  • Problem Solving

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Classic Blocks World

  2. Classic Blocks World We ll look at the classic blocks world domain Starting with BW: a domain file Several problem files We ll use planning.domains to demonstrate solving the problems And then show simple extensions to the domain by adding predicates and constants

  3. bw.pddl 1 (define (domain BW) Allows basic add and delete effects in actions (:requirements :strips) List all the predicates with their arguments (:predicates (on ?x ?y) ; object ?x is on ?object ?y (on-table ?x) ; ?x is directly on the table (clear ?x) ; ?x has nothing on it (arm-empty) ; robot isn't holding anything (holding ?x)) ; robot is holding ?x ;; the four classic actions for manipulating objects actions in next four slides

  4. bw.pddl 2 Variable for the argument of a pick-up action (:action pick-up :parameters (?ob1) These three statements must be True before we can do a pick-up action :precondition (and (clear ?ob1) (on-table ?ob1) (arm-empty)) :effect (and (not (on-table ?ob1)) (not (clear ?ob1)) (not (arm-empty)) (holding ?ob1))) After doing a pick-up action, these become True

  5. bw.pddl 3 Variable for the argument of a pick-up action (:action pick-up :parameters (?ob1) These three statements must be True before we can do a pick-up action :precondition (and (clear ?ob1) (on-table ?ob1) (arm-empty)) :effect (and (not (on-table ?ob1)) (not (clear ?ob1)) (not (arm-empty)) (holding ?ob1))) After doing a pick-up action, these become True

  6. (:action put-down :parameters (?ob) :precondition (holding ?ob) :effect (and (not (holding ?ob)) (clear ?ob) (arm-empty) (on-table ?ob))) bw.pddl 4 put-down means put the think you are holding on the table stack means put the thing you are holding on another object (:action stack :parameters (?ob ?underob) :precondition (and (holding ?ob) (clear ?underob)) :effect (and (not (holding ?ob)) (not (clear ?underob)) (clear ?ob) (arm-empty) (on ?sob ?underob)))

  7. bw.pddl 5 (:action unstack :parameters (?sob ?sunderob) :precondition (and (on ?sob ?sunderob) (clear ?sob) (arm-empty)) :effect (and (holding ?sob) (clear ?sunderob) (not (clear ?sob)) (not (arm-empty)) (not (on ?sob ?sunderob))) unstack means take the first arg off the second arg First arg can t have anything on it and the robt cannot be holding anything Here are the updates to our knowledge base describing the state of the world ) ; this closes the domain definition

  8. ;; The arm is empty and there is a stack of three blocks: C is on B which is on A ;; which is on the table. The goal is to reverse the stack, i.e., have A on B and B ;; on C. No need to mention C is on the table, since domain constraints will enforce it. (define (problem 00) (:domain bw) (:objects A B C) (:init (arm-empty) (on-table A) (on B A) (on C B) (clear C)) (:goal (and (on A B) (on B C)))) C A B B A C p00.pddl

  9. http://planning.domains/ Open the PDDL editor, upload our domain and problem files, and run the solver.

  10. Online Demonstration We ll try an online demonstration, using planning.domains and the files in the planning subdirectory of our 471 code repository bw.pddl p01.pddl p02.pddl p03.pddl p12.pddl p36.pddl

  11. Fin Fin 11

Related


More Related Content