ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
closest_tracking_strategy.h
Go to the documentation of this file.
1 #pragma once
2 
4 
10 public:
16  ClosestTrackingStrategy(uint32_t max_tracking_retries = 20)
17  : tracking_locked_(false), max_tracking_retries_(max_tracking_retries),
18  tracking_retries_(0) {}
25  virtual bool
26  initialize(const std::unordered_map<uint32_t, Position> &tracking_vectors);
33  virtual bool getTrackingVector(
34  const std::unordered_map<uint32_t, Position> &tracking_vectors,
35  std::tuple<uint32_t, Position> &tracking_vector);
36 
37 private:
44  bool
45  getClosest(const std::unordered_map<uint32_t, Position> &tracking_vectors,
46  std::tuple<uint32_t, Position> &tracking_vector);
47 
51  uint32_t tracked_id_;
55  bool tracking_locked_;
59  const uint32_t max_tracking_retries_;
63  uint32_t tracking_retries_;
67  std::tuple<uint32_t, Position> last_tracking_vector_;
68 };
A tracking strategy that locks on to the closest target when initialized.
Definition: closest_tracking_strategy.h:9
virtual bool initialize(const std::unordered_map< uint32_t, Position > &tracking_vectors)
Initialize the strategy from a group of targets. Locks on to closest target.
Definition: closest_tracking_strategy.cpp:5
Defines a strategy for choosing a target to track among a group of tracked targets.
Definition: tracking_strategy.h:12
ClosestTrackingStrategy(uint32_t max_tracking_retries=20)
Constructor.
Definition: closest_tracking_strategy.h:16
virtual bool getTrackingVector(const std::unordered_map< uint32_t, Position > &tracking_vectors, std::tuple< uint32_t, Position > &tracking_vector)
Get the tracking vector for the tracked target.
Definition: closest_tracking_strategy.cpp:19