tracker.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import numpy as np
  2. class Sensor:
  3. def __init__(self, tracker) -> None:
  4. self.type = 'Cam'
  5. self.tracker = tracker
  6. self.coverage_radius = 150
  7. def get_detection(self, targets):
  8. detections = []
  9. for t in targets:
  10. if np.linalg.norm(t.position - self.tracker.position) < self.coverage_radius:
  11. detections.append(t.position+np.random.rand(2)*10-10)
  12. return detections
  13. # return [self.tracker.position[0] + np.random.rand()*2*self.coverage_radius-self.coverage_radius,
  14. # self.tracker.position[1] + np.random.rand() *
  15. # 2*self.coverage_radius-self.coverage_radius,
  16. # np.random.rand()]
  17. class Robot:
  18. def __init__(self, name: str, id: int, position: np.array) -> None:
  19. self.name = name
  20. self.id = id
  21. self.position = position
  22. self.speed = np.array([0.0, 0.0])
  23. # self.rate = rate
  24. def run(self, rate):
  25. self.position = self.speed*(1/rate) + self.position
  26. class Tracker(Robot):
  27. def __init__(self, name: str, id: int, position: np.array) -> None:
  28. super().__init__(name, id, position)
  29. self.sensor = Sensor(self)
  30. self.neighbor = []