This project is part of the "Autonomous Software Agents" master course. The objective is to develop an autonomous agent based on the Belief-Desire-Intention (BDI) architecture. The agent is designed to play a game where it must pick up and deliver parcels. Interaction with the game environment is facilitated through the API provided by the Deliveroo.js project.
ASAP/
├── belief/
│ ├── agentData.js # Manages information related to the agent(s)
│ ├── belief.js # Handles general belief management
│ ├── map.js # Stores map-related data
│ ├── utilsBelief.js # Utility functions for belief management
|
├── coordination/
│ ├── coordination.js # Manages inter-agent communication
|
├── intention&revision/
│ ├── agent.js # Manages agent loop and intentions
│ ├── intention.js # Handles intention execution
│ ├── options.js # Manages options loop to select the best action
│ ├── utilsOptions.js # Utility functions for selecting options and calculating utilities
|
├── planner/
│ ├── domain.pddl/ # PDDL domain definition
│ ├── plans.js # Contains all possible plans
│ ├── utils_planner.js # Utility functions for planning (e.g., BFS)
|
├── config.js # Configuration parameters
├── index.js # Entry point for running the agent
└── socketConnection.js # Manages the client socket connection
Report_ASA.pdf # report of the project
-
Clone the repository:
git clone https://github.com/Roman-Simone/ASA_Project.git -
Install dependencies:
npm install
-
Set up Docker environment for PDDL:
If you want to solve PDDL problems locally, follow the instructions in the Planutils Server Environment to set up the Docker environment required for the PDDL planners (otherwise don't do anything).
Then, update the parameters in node_modules/@unitn-asa/pddl-client/src/PddlOnlineSolver.js to:
const HOST = "http://localhost:5001" const PATH = "/package/dual-bfws-ffparser/solve"
The program supports two modes:
-
Single Agent Mode: Run a single agent in the game.
node index.js ONE agent_1
-
Multi-Agent Mode: Run two agents (one MASTER and one SLAVE) in the game.
node index.js TWO agent_1 node index.js TWO agent_2
For any inquiries, feel free to contact:
-
Simone Roman - simone.roman@studenti.unitn.it
-
Stefano Bonetto - stefano.bonetto@studenti.unitn.it
