tracker.hh
Go to the documentation of this file.
1 #ifndef VISP_TRACKER_TRACKER_HH
2 # define VISP_TRACKER_TRACKER_HH
3 # include <boost/filesystem/path.hpp>
4 # include <boost/thread/recursive_mutex.hpp>
5 
6 # include <dynamic_reconfigure/server.h>
7 
9 
11 
12 # include <geometry_msgs/TwistStamped.h>
13 
14 # include <sensor_msgs/Image.h>
15 # include <sensor_msgs/CameraInfo.h>
16 
18 # include <tf/transform_listener.h>
19 
20 # include <visp_tracker/Init.h>
21 # include <visp_tracker/ModelBasedSettingsConfig.h>
22 # include <visp_tracker/ModelBasedSettingsKltConfig.h>
23 # include <visp_tracker/ModelBasedSettingsEdgeConfig.h>
24 # include <visp_tracker/MovingEdgeSites.h>
25 # include <visp_tracker/KltPoints.h>
26 
27 # include <visp3/core/vpCameraParameters.h>
28 # include <visp3/core/vpHomogeneousMatrix.h>
29 # include <visp3/core/vpImage.h>
30 # include <visp3/mbt/vpMbGenericTracker.h>
31 # include <visp3/me/vpMe.h>
32 
33 # include <string>
34 
35 namespace visp_tracker
36 {
37  class Tracker
38  {
39  public:
40  typedef vpImage<unsigned char> image_t;
41 
42  typedef boost::function<bool (visp_tracker::Init::Request&,
43  visp_tracker::Init::Response& res)>
45 
46  template<class ConfigType>
48  typedef dynamic_reconfigure::Server<ConfigType> reconfigureSrv_t;
49  };
50 
51  enum State
52  {
56  };
57 
58 
60  ros::NodeHandle& privateNh,
61  volatile bool& exiting,
62  unsigned queueSize = 5u);
63 
64  ~Tracker();
65 
66  void spin();
67  protected:
68  bool initCallback(visp_tracker::Init::Request& req,
69  visp_tracker::Init::Response& res);
70 
71  void updateMovingEdgeSites(visp_tracker::MovingEdgeSitesPtr sites);
72  void updateKltPoints(visp_tracker::KltPointsPtr klt);
73 
74  void checkInputs();
75  void waitForImage();
76 
78  (const geometry_msgs::TransformStampedConstPtr&);
79  private:
80  bool exiting ()
81  {
82  return exiting_ || !ros::ok();
83  }
84 
85  void spinOnce ()
86  {
87  //callbackQueue_.callAvailable(ros::WallDuration(0));
88  ros::spinOnce ();
89  }
90 
91  volatile bool& exiting_;
92 
93  unsigned queueSize_;
94 
98 
100  std::string trackerType_;
101 
103 
104  std::string cameraPrefix_;
105  std::string rectifiedImageTopic_;
106  std::string cameraInfoTopic_;
107 
108  boost::filesystem::path modelPath_;
109 
111 
112  boost::recursive_mutex mutex_;
113 
117 
123 
125  std_msgs::Header header_;
126  sensor_msgs::CameraInfoConstPtr info_;
127 
128  vpKltOpencv kltTracker_;
130  vpCameraParameters cameraParameters_;
131  vpMbGenericTracker tracker_;
132 
134 
137 
138  vpHomogeneousMatrix cMo_;
139 
141  std::string worldFrameId_;
143 
145  std::string childFrameId_;
146 
148  geometry_msgs::TransformStamped objectPositionHint_;
149  };
150 } // end of namespace visp_tracker.
151 
152 #endif
visp_tracker::Tracker::trackerType_
std::string trackerType_
Definition: tracker.hh:100
visp_tracker::Tracker::kltPointsPublisher_
ros::Publisher kltPointsPublisher_
Definition: tracker.hh:122
visp_tracker::Tracker::reconfigureSrvStruct::reconfigureSrv_t
dynamic_reconfigure::Server< ConfigType > reconfigureSrv_t
Definition: tracker.hh:48
visp_tracker::Tracker::cMo_
vpHomogeneousMatrix cMo_
Definition: tracker.hh:138
visp_tracker::Tracker::rectifiedImageTopic_
std::string rectifiedImageTopic_
Definition: tracker.hh:105
visp_tracker::Tracker::objectPositionHintSubscriber_
ros::Subscriber objectPositionHintSubscriber_
Definition: tracker.hh:147
visp_tracker::Tracker::initService_
ros::ServiceServer initService_
Definition: tracker.hh:124
visp_tracker::Tracker::TRACKING
@ TRACKING
Definition: tracker.hh:54
visp_tracker::Tracker::checkInputs
void checkInputs()
Definition: libvisp_tracker/tracker.cpp:281
ros::Publisher
visp_tracker::Tracker::exiting
bool exiting()
Definition: tracker.hh:80
visp_tracker::Tracker
Definition: tracker.hh:37
advertisement_checker.h
image_transport::ImageTransport
visp_tracker::Tracker::reconfigureEdgeSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsEdgeConfig >::reconfigureSrv_t * reconfigureEdgeSrv_
Definition: tracker.hh:116
visp_tracker::Tracker::transformBroadcaster_
tf::TransformBroadcaster transformBroadcaster_
Definition: tracker.hh:144
visp_tracker::Tracker::reconfigureSrvStruct
Definition: tracker.hh:47
visp_tracker::Tracker::movingEdge_
vpMe movingEdge_
Definition: tracker.hh:129
visp_tracker::Tracker::exiting_
volatile bool & exiting_
Definition: tracker.hh:91
visp_tracker::Tracker::spin
void spin()
Definition: libvisp_tracker/tracker.cpp:488
visp_tracker::Tracker::nodeHandlePrivate_
ros::NodeHandle & nodeHandlePrivate_
Definition: tracker.hh:96
visp_tracker::Tracker::initCallback
bool initCallback(visp_tracker::Init::Request &req, visp_tracker::Init::Response &res)
Definition: libvisp_tracker/tracker.cpp:39
ros::spinOnce
ROSCPP_DECL void spinOnce()
visp_tracker::Tracker::State
State
Definition: tracker.hh:51
visp_tracker::Tracker::resultPublisher_
ros::Publisher resultPublisher_
Definition: tracker.hh:118
visp_tracker::Tracker::queueSize_
unsigned queueSize_
Definition: tracker.hh:93
visp_tracker::Tracker::header_
std_msgs::Header header_
Definition: tracker.hh:125
visp_tracker::Tracker::state_
State state_
Definition: tracker.hh:99
visp_tracker::Tracker::childFrameId_
std::string childFrameId_
Definition: tracker.hh:145
ros::ok
ROSCPP_DECL bool ok()
visp_tracker
Definition: names.cpp:3
transform_broadcaster.h
visp_tracker::Tracker::lastTrackedImage_
unsigned lastTrackedImage_
Definition: tracker.hh:133
visp_tracker::Tracker::LOST
@ LOST
Definition: tracker.hh:55
ros::ServiceServer
visp_tracker::Tracker::updateMovingEdgeSites
void updateMovingEdgeSites(visp_tracker::MovingEdgeSitesPtr sites)
Definition: libvisp_tracker/tracker.cpp:155
visp_tracker::Tracker::reconfigureSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsConfig >::reconfigureSrv_t * reconfigureSrv_
Definition: tracker.hh:114
visp_tracker::Tracker::initCallback_t
boost::function< bool(visp_tracker::Init::Request &, visp_tracker::Init::Response &res)> initCallback_t
Definition: tracker.hh:44
image_proc::AdvertisementChecker
visp_tracker::Tracker::modelPath_
boost::filesystem::path modelPath_
Definition: tracker.hh:108
visp_tracker::Tracker::objectPositionHint_
geometry_msgs::TransformStamped objectPositionHint_
Definition: tracker.hh:148
visp_tracker::Tracker::checkInputs_
image_proc::AdvertisementChecker checkInputs_
Helper used to check that subscribed topics exist.
Definition: tracker.hh:136
image_transport::CameraSubscriber
tf::TransformBroadcaster
visp_tracker::Tracker::cameraInfoTopic_
std::string cameraInfoTopic_
Definition: tracker.hh:106
visp_tracker::Tracker::tracker_
vpMbGenericTracker tracker_
Definition: tracker.hh:131
visp_tracker::Tracker::tfBroadcaster_
tf::TransformBroadcaster tfBroadcaster_
Definition: tracker.hh:120
visp_tracker::Tracker::objectPositionHintCallback
void objectPositionHintCallback(const geometry_msgs::TransformStampedConstPtr &)
Definition: libvisp_tracker/tracker.cpp:682
visp_tracker::Tracker::transformationPublisher_
ros::Publisher transformationPublisher_
Definition: tracker.hh:119
visp_tracker::Tracker::info_
sensor_msgs::CameraInfoConstPtr info_
Definition: tracker.hh:126
visp_tracker::Tracker::compensateRobotMotion_
bool compensateRobotMotion_
Definition: tracker.hh:142
visp_tracker::Tracker::image_
image_t image_
Definition: tracker.hh:102
image_transport.h
visp_tracker::Tracker::Tracker
Tracker(ros::NodeHandle &nh, ros::NodeHandle &privateNh, volatile bool &exiting, unsigned queueSize=5u)
Definition: libvisp_tracker/tracker.cpp:288
transform_listener.h
visp_tracker::Tracker::mutex_
boost::recursive_mutex mutex_
Definition: tracker.hh:112
visp_tracker::Tracker::imageTransport_
image_transport::ImageTransport imageTransport_
Definition: tracker.hh:97
visp_tracker::Tracker::nodeHandle_
ros::NodeHandle & nodeHandle_
Definition: tracker.hh:95
visp_tracker::Tracker::spinOnce
void spinOnce()
Definition: tracker.hh:85
tf::TransformListener
visp_tracker::Tracker::cameraPrefix_
std::string cameraPrefix_
Definition: tracker.hh:104
visp_tracker::Tracker::waitForImage
void waitForImage()
Definition: libvisp_tracker/tracker.cpp:667
visp_tracker::Tracker::updateKltPoints
void updateKltPoints(visp_tracker::KltPointsPtr klt)
Definition: libvisp_tracker/tracker.cpp:221
visp_tracker::Tracker::cameraSubscriber_
image_transport::CameraSubscriber cameraSubscriber_
Definition: tracker.hh:110
visp_tracker::Tracker::cameraParameters_
vpCameraParameters cameraParameters_
Definition: tracker.hh:130
visp_tracker::Tracker::listener_
tf::TransformListener listener_
Definition: tracker.hh:140
visp_tracker::Tracker::reconfigureKltSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsKltConfig >::reconfigureSrv_t * reconfigureKltSrv_
Definition: tracker.hh:115
visp_tracker::Tracker::movingEdgeSitesPublisher_
ros::Publisher movingEdgeSitesPublisher_
Definition: tracker.hh:121
visp_tracker::Tracker::image_t
vpImage< unsigned char > image_t
Definition: tracker.hh:40
visp_tracker::Tracker::kltTracker_
vpKltOpencv kltTracker_
Definition: tracker.hh:128
ros::NodeHandle
ros::Subscriber
visp_tracker::Tracker::WAITING_FOR_INITIALIZATION
@ WAITING_FOR_INITIALIZATION
Definition: tracker.hh:53
visp_tracker::Tracker::~Tracker
~Tracker()
Definition: libvisp_tracker/tracker.cpp:476
visp_tracker::Tracker::worldFrameId_
std::string worldFrameId_
Definition: tracker.hh:141


visp_tracker
Author(s): Thomas Moulard
autogenerated on Sat Aug 24 2024 02:54:56