Student: Martina Panini
Course: Automated Planning: Theory and Practice (2025/2026)
Repository for the Interplanetary Museum Vault (IMV) project. This repository contains the solution for the Automated Planning assignment, covering Classical, Optimal, Hierarchical (HTN), and Temporal planning, culminating in a ROS 2 integration using PlanSys2.
Dockerfile: Environment definition (ROS 2 Humble + Planutils + PlanSys2).Planners/: PDDL/HDDL domains and problems for scenarios 1 through 4.Problem 1: Classical Planning (LAMA).Problem 2: Optimal Planning (Fast Downward).Problem 3: HTN Planning (Panda).Problem 4: Temporal Planning (Optic).
plansys2_ws/: ROS 2 Workspace for Problem 5.src/imv_problem_5: Custom package containing the PDDL 2.1 domain, Lifecycle Nodes (C++), and Launch files.
The project is fully containerized to ensure reproducibility.
- Docker installed on your machine.
- (Optional) An X11 server if you intend to use GUI tools (e.g.,
rqt), though the project runs fully in the terminal.
From the root of this repository, build the image. This installs ROS 2, compiles PlanSys2, and sets up Planutils.
docker build -t imv_planning .docker run -it --rm --name imv_container \
-v $(pwd):/root/Automated_Planning \
imv_planningcd /root/Automated_Planning/Planners/Problem\ 1
downward --alias lama-first domain_1.pddl problem_1.pddlplanutils run lama-first domain_1.pddl problem_1.pddlcd /root/Automated_Planning/Planners/Problem\ 2
downward --alias seq-opt-lmcut domain_2.pddl problem_2.pddlplanutils run downward -- --alias seq-opt-lmcut domain_2.pddl problem_2.pddlcd /root/Automated_Planning/Planners/Problem\ 3
downward --alias htn domain_3.pddl problem_3.pddlplanutils run htn domain_3.pddl problem_3.pddlcd /root/Automated_Planning/Planners/Problem\ 4
downward --alias optic domain_4.pddl problem_4.pddlplanutils run optic domain_4.pddl problem_4.pddlcd /root/plansys2_wscolcon build --symlink-install --packages-select imv_problem_5
source install/setup.bash
ros2 launch imv_problem_5 solution.launch.pyInside terminal 2:
docker exec -it automated_planning bashcd /root/plansys2_wssource install/setup.bashros2 run plansys2_terminal plansys2_terminalsource src/imv_problem_5/pddl/setup_problem.txtget planrun