Skip to content

andy295/Automated-Planning-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automated Planning: Theory and Practice

Warehouse Distribution Center

by Andrea Cristiano & Emiliano Rossi
Academic Year 2023 / 2024, University of Trento

Overview

The project aims to implement an automatic warehouse distribution solution. Its development involves solving five different problems, each presenting an increasing level of difficulty.

The project relies on the PDDL and HDDL languages and six different planning tools, each chosen to address specific needs related to the proposed problems.

Project Sturcture

The project has been divided into five different folders, each dedicated to a specific problem and containing primarily domain, problem, and Results files.

Additionally, some other files necessary for the proper functioning of the solution may be found as needed.

  • Problem 1

    • Objective: A robot delivers tools to workstations.
    • Tool: Planutils
    • Planner: LAMA and LAMA-First
    • Content:
     	├── domain.pddl
     	├── problem.pddl
     	└── Results.md
  • Problem 2

    • Objective: A robot delivers tools to workstations. However, this time, it must use a carrier, and it is mandatory to keep track of the number of loaded tools.
    • Tool: Planutils
    • Planner: LAMA, LAMA-First and Metric-ff
    • Content:
     	├── Classical
     	│   ├── domain.pddl
     	│   └── problem.pddl
     	├── Fluent
     	│   ├── domain.pddl
     	│   ├── problem_1.pddl
     	│   └── problem_2.pddl
     	└── Results.md
  • Problem 3

    • Objective: Repropose the solution to the previous problem, but this time using the Hierarchical Task Network (HTN).
    • Tool: Java Virtual Machine (JVM)
    • Planner: PANDA
    • Content:
     	├── doamin.hddl
     	├── problem.hddl
     	├── PANDA.jar
     	└── Results.md
  • Problem 4

    • Objective: Expand the proposed solution for problem 2 by introducing the concept of time through durative actions.
    • Tool: Planutils
    • Planner: OPTIC
    • Content:
     	├── doamin.pddl
     	├── problem_1.pddl
     	├── problem_2.pddl
     	└── Results.md
  • Problem 5

    • Objective: Implement the solution to the previous problem, but this time using the PlanSys2 framework.
    • Tool: PlanSys2 and ROS2
    • Planner: POPF
    • Content:
     	├── plansys2
     	│   ├── CMakeLists.txt
     	│   ├── package.xml
     	│   ├── Results.md
     	│   ├── terminal_1_compile_and_run.sh
     	│   ├── terminal_2_run.sh
     	│   ├── launch
     	│   │   └── problem_5_launch.py
     	│   ├── pddl
     	│   │   ├── domain.pddl
     	│   │   ├── problem_1
     	│   │   └── problem_2
     	│   └── src
     	│       ├── attach_carrier_action_node.cpp
     	│       ├── deliver_supply_action_node.cpp
     	│       ├── detach_carrier_action_node.cpp
     	│       ├── empty_box_actione_node.cpp
     	│       ├── empty_carrier_action_node.cpp
     	│       ├── fill_box_action_node.cpp
     	│       ├── load_carrier_action_node.cpp
     	│       └── move_robot_action_node.cpp
     	├── Results
     	│   ├── Problem_1
     	│   │   ├── Plan.png
     	│   │   └── Source.png
     	│   └── Problem_2
     	│       ├── Plan.png
     	│       ├── Source_part_1.png
     	│       └── Source_part_2.png
     	└── Setup.md

Usage

To use the proposed solutions, it is necessary to install the planning tools and configure the development environment.

For solutions to Problems 1, 2, and 4, Planutils tool was used because it provides the user with a wide variety of planners that are easily installable and ready to use.

In solving problem 3, PANDA was used, a planner mainly developed in Java for which it is necessary to install the Java Virtual Machine.

Finally, to address problem 5, PlanSys2 along with ROS2 were required.

For correct installation and configuration of the tools, please refer to the official documentation.

The project was developed and tested on Ubuntu 20.04 LTS and Ubuntu 22.04 LTS. However, with appropriate adjustments, it is possible to use the proposed solutions on other operating systems and/or planning systems.

Inside the Results.md files of each problem, it is possible to find instructions for executing the proposed solutions.

More details about the development of the project can be found in the Report.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published