-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbehavior.py
More file actions
38 lines (31 loc) · 949 Bytes
/
behavior.py
File metadata and controls
38 lines (31 loc) · 949 Bytes
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
# behavior.py
from modes import Mode
class BehaviorController:
def __init__(
self,
lock_confidence=0.15,
intercept_confidence=0.25
):
self.lock_confidence = lock_confidence
self.intercept_confidence = intercept_confidence
self.mode = Mode.SEARCH
def update(self, confidence, has_measurement, near_wall):
"""
Decide behavior mode based on:
- track confidence
- sensor availability
- boundary safety
"""
if near_wall:
self.mode = Mode.SEARCH
return self.mode
if not has_measurement:
self.mode = Mode.SEARCH
return self.mode
if confidence > self.intercept_confidence:
self.mode = Mode.INTERCEPT
elif confidence > self.lock_confidence:
self.mode = Mode.TRACK
else:
self.mode = Mode.SEARCH
return self.mode