ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
alvar_tracker.h
Go to the documentation of this file.
1 #pragma once
4 
6 
7 #include <ar_track_alvar_msgs/AlvarMarkers.h>
8 #include <ros/ros.h>
9 
13 class AlvarTracker : public BaseTracker {
14 public:
19  AlvarTracker(ros::NodeHandle &nh)
20  : BaseTracker(new ClosestTrackingStrategy(20)), nh_(nh),
21  alvar_sub_(nh_.subscribe("ar_pose_marker", 1,
22  &AlvarTracker::markerCallback, this)),
23  timeout_(0.2) {}
29  virtual bool getTrackingVectors(std::unordered_map<uint32_t, Position> &pos);
34  virtual bool trackingIsValid();
35 
40  bool isConnected();
41 
42 private:
47  void markerCallback(const ar_track_alvar_msgs::AlvarMarkers &marker_msg);
48 
52  ros::NodeHandle nh_;
56  ros::Subscriber alvar_sub_;
60  Atomic<ros::Time> last_valid_time_;
68  const double timeout_;
69 };
AlvarTracker(ros::NodeHandle &nh)
Constructor.
Definition: alvar_tracker.h:19
virtual bool trackingIsValid()
Check whether tracking is valid.
Definition: alvar_tracker.cpp:14
virtual bool getTrackingVectors(std::unordered_map< uint32_t, Position > &pos)
Get the tracking vectors.
Definition: alvar_tracker.cpp:5
A tracking strategy that locks on to the closest target when initialized.
Definition: closest_tracking_strategy.h:9
Interface for classes that provide a vector to a tracked target.
Definition: base_tracker.h:13
Provides vector to a tracked object based on output from alvar.
Definition: alvar_tracker.h:13
bool isConnected()
Check if subscriber is connected.
Definition: alvar_tracker.cpp:36