A comprehensive repository for Artificial Intelligence in Robotics, featuring implementations of automated planning algorithms and reinforcement learning techniques.
This repository contains coursework and projects related to AI for robotics, covering two main areas:
- Automated Planning: PDDL (Planning Domain Definition Language) implementations for various robotic scenarios
- Reinforcement Learning: Q-Learning and dynamic programming implementations for decision-making problems
Contains multiple PDDL domain and problem files for classical planning scenarios:
gripper/: Classic gripper domain where a robot with two grippers moves balls between roomsairport/: Airport logistics planning problemsbartender/: Bartender serving and mixing drinks scenariospizzaRomi/: Pizza cooking and preparation planningTomatoEASY/: Simple tomato handling scenariosTraveling/: City traveling and navigation problemsObjFixer/: Object repair and maintenance planninggripperHL/: High-level gripper planning variationsRomiPddl/: Extended collection of PDDL problems including:- Bar management scenarios
- Pizza party planning
- Plant care planning
- Robot repair tasks
- Landscaping problems
- Past exam problems (2022-2023)
Advanced planning implementation featuring:
Guelfi_domain.pddl: Complex coffee-making domain with detailed actions for:- Moka pot assembly and disassembly
- Coffee grinding
- Burner control
- Water management
- Cleaning procedures
Guelfi_problem.pddl: Corresponding problem instance
Reinforcement learning implementations for the Blackjack card game:
-
GuelfiQLearningBJ.ipynb: Custom implementation of Q-Learning for Blackjack- Custom environment creation with OpenAI Gym interface
- Card deck simulation
- Q-Learning agent implementation
- Training and visualization
- Average payout: tracked over 1000 rounds × 1000 samples
-
GYMProj.ipynb: Gymnasium-based implementation- Uses official Gymnasium Blackjack environment
- Epsilon-greedy strategy
- Policy visualization (with/without usable ace)
- 3D state-value plots
Educational notebooks demonstrating reinforcement learning concepts:
-
DynamicProgramming_ENG.ipynb:- Policy Iteration algorithm
- Value Iteration algorithm
- GridWorld 4×4 environment
- Optimal policy computation
-
ReinforcementLearning_ENG.ipynb:- SARSA (on-policy) implementation
- Q-Learning (off-policy) implementation
- Epsilon-greedy policy
- GridWorld experimentation
For Reinforcement Learning:
pip install gymnasium numpy matplotlib seaborn tqdmFor PDDL Planning:
- A PDDL planner (e.g., Fast Downward, OPTIC, or online planners like Planning.Domains)
- Open any
.ipynbfile in Jupyter Notebook or VS Code - Run cells sequentially to see training results and visualizations
- Choose a domain file (e.g.,
gripper.pddl) and its corresponding problem file (e.g.,gripper-four.pddl) - Run with your PDDL planner:
# Example with Fast Downward ./fast-downward.py domain.pddl problem.pddl --search "astar(lmcut())"
- STRIPS Planning: Classical planning with preconditions and effects
- Action Schemas: Parameterized actions for flexible planning
- Domain Modeling: Complex real-world scenarios (coffee making, logistics, etc.)
- Goal Achievement: State-space search to reach target configurations
- Q-Learning: Off-policy temporal difference learning
- SARSA: On-policy temporal difference learning
- Dynamic Programming: Policy iteration and value iteration
- Epsilon-Greedy Exploration: Balance between exploration and exploitation
- Custom Environments: Building OpenAI Gym-compatible environments
- Successfully learns optimal Blackjack strategy
- Achieves positive average payout after training
- Visualizes policy for different hand values and dealer upcards
- Finds optimal paths in 4×4 grid environments
- Demonstrates convergence of value iteration and policy iteration
- Shows effectiveness of temporal difference learning
This repository contains coursework for an AI in Robotics course, demonstrating:
- Theoretical understanding of planning and learning algorithms
- Practical implementation skills
- Problem modeling and domain design
- Experimental analysis and visualization
Fabio Guelfi
- Student ID: s5004782
- Repository: AIntelligence
This project is for educational purposes. Feel free to use the code for learning and reference.
- OpenAI Gymnasium Documentation
- PDDL Reference Guide
- Reinforcement Learning: An Introduction (Sutton & Barto)
Last updated: October 2025