47 lines
2.8 KiB
Markdown
47 lines
2.8 KiB
Markdown
|
# **Report**
|
||
|
## General information
|
||
|
This goal of this project is to create an Intelligent Dumpster/Garbage Truck that will be able to move on the grid and evaluate what kind of trash is it dealing with. The words "garbage truck","dumpster truck" are used as synonyms, as are the words "trash", "garbage".
|
||
|
|
||
|
We assume that all dumpsters that are on the grid contain trash.
|
||
|
|
||
|
## Technologies used and needed to run the program
|
||
|
The most important technology used thus far is the Python library [PyGame](https://www.pygame.org/news).
|
||
|
The following library imports are need to run the program:
|
||
|
```
|
||
|
import pygame
|
||
|
import random
|
||
|
import numpy as np
|
||
|
import time
|
||
|
import collections
|
||
|
```
|
||
|
## Grid
|
||
|
The grid is build with **20x20** squares. The program opens in a window that is **700x700**(a square). On the grid **40** random dumpsters of 5 different kinds appear.
|
||
|
|
||
|
## How it works
|
||
|
To run the program you need to write the following command in the folder containing the whole project:
|
||
|
```
|
||
|
python Main.py
|
||
|
```
|
||
|
After that a Graphical Interface will start running and on the console commands concerning the capacity of the garbage truck will be displayed. The message "No more space for this kind of trash" colu mean either that or that Garbage Truck has already visited the dumpster.
|
||
|
## Objects
|
||
|
Two of the objects have a sepperate class in the catalogue model. There are three main objects appearing on the grid:
|
||
|
1. **Garbage Truck** - the agent, the only object that can move on the whole grid. It moves randomly one step at a time in a random direction. Has the capacity of 5 per kind of garbage(paper, glass, mixed, organic, plastic) making the total capacity of a garbage truck - 20.
|
||
|
2. **Dumpster** - contains some kind of trash. In future updates if a dumpster is emptied it will disappear and later reappear in a different place suggesting that some other person now has trash. Also planned in the near future is the possibility to increase the number of garbage in a dumpster if it is not picked up in some time.
|
||
|
3. **Garbage Dump** - a place in which the garbage truck will empty itself, appears randomly on the grid. The garbage dump has unlimited capacity.
|
||
|
|
||
|
## Knowledge Representation
|
||
|
The konwledge representation is preserved by our agent - the Garbage Truck.
|
||
|
The Garbage Truck:
|
||
|
* collects garbage from dumpsters
|
||
|
* knows where the dumpsters are
|
||
|
* can determine what kind of a dumpster it is (ex. plastic or paper)
|
||
|
* is able to determine how much garbage it collected and whether it is full and needs to visit the Garbage Dump
|
||
|
* in future updates will be able to check if a specific dumpster is empty(clear message)
|
||
|
* in future it will go to the Garbage Dump when needed
|
||
|
|
||
|
## Current graphic interface design
|
||
|
![Example](https://i.imgur.com/FGDTTPm.png)
|
||
|
|
||
|
## Video presentation
|
||
|
https://drive.google.com/file/d/1dt2qdDTBU-VQIsZhiKf40HklcG18AvoB/view?usp=sharing
|