-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcamera.py
More file actions
68 lines (55 loc) · 1.55 KB
/
camera.py
File metadata and controls
68 lines (55 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import agentpy as ap
import ast
## Camera Agent Logic
class CameraAgent(ap.Agent):
def see(self, e):
e = '[' + e + ']' # e is the environment
self.per = e
self.per = list(ast.literal_eval(e)) # TODO: computer vision
print(self.per)
return self.per
def next(self, per):
for rule in self.rules:
act = rule(per)
if act is not None:
return act
return None
# Rules
# ...
# Rule 1: if I identify a prisoner, send alert to dron
def rule_1(self, per, receiver):
validator = False
for object in per:
if object == receiver:
validator = True
if validator:
return "alert"
pass
def setup(self):
self.agentType = 1
self.receiver = "prisoner"
self.rules = (
self.rule_1
)
def step(self, e):
self.per = self.see(e)
self.act = self.next(self.per)
if self.act is not None:
print(self.act)
return self.act
return None
def alert(self):
print("Alerting dron")
pass
class WarehouseModel(ap.Model):
def setup(self):
self.camera = ap.AgentList(self, self.p.camera, CameraAgent)
def step(self):
for unit in self.camera:
action = unit.step(self.p.environment)
if action:
getattr(unit, action)() # Call the action method
def update(self):
pass
def end(self):
pass