tracker-viewer.hh
Go to the documentation of this file.
1 #ifndef VISP_TRACKER_TRACKER_VIEWER_HH
2 # define VISP_TRACKER_TRACKER_VIEWER_HH
3 # include <boost/filesystem/path.hpp>
4 # include <boost/optional.hpp>
5 
6 # include <geometry_msgs/PoseWithCovarianceStamped.h>
7 
9 
12 
16 
17 # include <sensor_msgs/Image.h>
18 # include <sensor_msgs/CameraInfo.h>
19 
20 # include <visp_tracker/Init.h>
21 # include <visp_tracker/MovingEdgeSites.h>
22 # include <visp_tracker/KltPoints.h>
23 
24 # include <visp3/core/vpCameraParameters.h>
25 # include <visp3/core/vpImage.h>
26 # include <visp3/mbt/vpMbGenericTracker.h>
27 
28 namespace visp_tracker
29 {
32  {
33  public:
35  typedef vpImage<unsigned char> image_t;
36 
37 
38  typedef boost::function<bool (visp_tracker::Init::Request&,
39  visp_tracker::Init::Response& res)>
41 
42  typedef boost::function<bool (visp_tracker::Init::Request&,
43  visp_tracker::Init::Response& res)>
45 
54  sensor_msgs::Image, sensor_msgs::CameraInfo,
55  geometry_msgs::PoseWithCovarianceStamped,
56  visp_tracker::MovingEdgeSites,
57  visp_tracker::KltPoints
59 
62  ros::NodeHandle& privateNh,
63  volatile bool& exiting,
64  unsigned queueSize = 5u);
65 
68  void spin();
69  protected:
71  void initializeTracker();
72 
74  void loadCommonParameters();
75 
77  void checkInputs();
78 
80  void waitForImage();
81 
82  bool initCallback(visp_tracker::Init::Request& req,
83  visp_tracker::Init::Response& res);
84 
85  bool reconfigureCallback(visp_tracker::Init::Request& req,
86  visp_tracker::Init::Response& res);
87 
89  void
90  callback
91  (const sensor_msgs::ImageConstPtr& imageConst,
92  const sensor_msgs::CameraInfoConstPtr& infoConst,
93  const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& trackingResult,
94  const visp_tracker::MovingEdgeSites::ConstPtr& sitesConst,
95  const visp_tracker::KltPoints::ConstPtr& kltConst);
96 
97  void timerCallback();
98 
100  void displayMovingEdgeSites();
102  void displayKltPoints();
103 
104  private:
105  bool exiting ()
106  {
107  return exiting_ || !ros::ok();
108  }
109 
110  volatile bool& exiting_;
111 
113  unsigned queueSize_;
114 
117 
120 
121  double frameSize_;
122 
125 
127  std::string rectifiedImageTopic_;
129  std::string cameraInfoTopic_;
130 
132 
135 
138 
140  std::string trackerName_;
141 
143  boost::filesystem::path modelPath_;
144 
147 
149  vpMbGenericTracker tracker_;
151  vpCameraParameters cameraParameters_;
154 
156  sensor_msgs::CameraInfoConstPtr info_;
158  boost::optional<vpHomogeneousMatrix> cMo_;
160  visp_tracker::MovingEdgeSites::ConstPtr sites_;
162  visp_tracker::KltPoints::ConstPtr klt_;
163 
179 
183 
187  unsigned countAll_;
188  unsigned countImages_;
192  unsigned countKltPoints_;
194  };
195 } // end of namespace visp_tracker
196 
197 #endif
image_transport::SubscriberFilter
visp_tracker::TrackerViewer::timer_
ros::WallTimer timer_
Definition: tracker-viewer.hh:186
visp_tracker::TrackerViewer::countTrackingResult_
unsigned countTrackingResult_
Definition: tracker-viewer.hh:190
visp_tracker::TrackerViewer::imageSubscriber_
image_transport::SubscriberFilter imageSubscriber_
Definition: tracker-viewer.hh:167
advertisement_checker.h
image_transport::ImageTransport
visp_tracker::TrackerViewer::displayMovingEdgeSites
void displayMovingEdgeSites()
Display moving edge sites.
Definition: tracker-viewer.cpp:430
visp_tracker::TrackerViewer::checkInputs
void checkInputs()
Make sure the topics we subscribe already exist.
Definition: tracker-viewer.cpp:319
message_filters::Synchronizer
visp_tracker::TrackerViewer::countMovingEdgeSites_
unsigned countMovingEdgeSites_
Definition: tracker-viewer.hh:191
ros::WallTimer
visp_tracker::TrackerViewer::initCallback_t
boost::function< bool(visp_tracker::Init::Request &, visp_tracker::Init::Response &res)> initCallback_t
Definition: tracker-viewer.hh:40
visp_tracker::TrackerViewer::frameSize_
double frameSize_
Definition: tracker-viewer.hh:121
visp_tracker::TrackerViewer::reconfigureService_
ros::ServiceServer reconfigureService_
Service called when user is reconfiguring tracker node.
Definition: tracker-viewer.hh:137
visp_tracker::TrackerViewer::initService_
ros::ServiceServer initService_
Service called when user ends tracker_client node.
Definition: tracker-viewer.hh:134
visp_tracker::TrackerViewer
Monitors the tracking result provided by the tracking node.
Definition: tracker-viewer.hh:31
visp_tracker::TrackerViewer::synchronizer_
message_filters::Synchronizer< syncPolicy_t > synchronizer_
Synchronizer with approximate time policy.
Definition: tracker-viewer.hh:181
visp_tracker::TrackerViewer::movingEdgeSitesSubscriber_
message_filters::Subscriber< visp_tracker::MovingEdgeSites > movingEdgeSitesSubscriber_
Subscriber to moving edge sites topics.
Definition: tracker-viewer.hh:175
visp_tracker::TrackerViewer::countCameraInfo_
unsigned countCameraInfo_
Definition: tracker-viewer.hh:189
ros::ok
ROSCPP_DECL bool ok()
visp_tracker
Definition: names.cpp:3
message_filters::Subscriber< sensor_msgs::CameraInfo >
ros::ServiceServer
visp_tracker::TrackerViewer::tracker_
vpMbGenericTracker tracker_
ViSP edge tracker.
Definition: tracker-viewer.hh:149
visp_tracker::TrackerViewer::countAll_
unsigned countAll_
Definition: tracker-viewer.hh:187
visp_tracker::TrackerViewer::klt_
visp_tracker::KltPoints::ConstPtr klt_
Shared pointer to latest received KLT point positions.
Definition: tracker-viewer.hh:162
visp_tracker::TrackerViewer::checkInputs_
image_proc::AdvertisementChecker checkInputs_
Helper used to check that subscribed topics exist.
Definition: tracker-viewer.hh:146
visp_tracker::TrackerViewer::trackerName_
std::string trackerName_
Name of the tracker used in this viewer node.
Definition: tracker-viewer.hh:140
visp_tracker::TrackerViewer::TrackerViewer
TrackerViewer(ros::NodeHandle &nh, ros::NodeHandle &privateNh, volatile bool &exiting, unsigned queueSize=5u)
Constructor.
Definition: tracker-viewer.cpp:71
message_filters::sync_policies::ApproximateTime
visp_tracker::TrackerViewer::nodeHandlePrivate_
ros::NodeHandle & nodeHandlePrivate_
Definition: tracker-viewer.hh:116
subscriber_filter.h
image_proc::AdvertisementChecker
subscriber.h
visp_tracker::TrackerViewer::exiting_
volatile bool & exiting_
Definition: tracker-viewer.hh:110
visp_tracker::TrackerViewer::image_
image_t image_
ViSP image.
Definition: tracker-viewer.hh:153
visp_tracker::TrackerViewer::modelPath_
boost::filesystem::path modelPath_
Model path.
Definition: tracker-viewer.hh:143
visp_tracker::TrackerViewer::waitForImage
void waitForImage()
Hang until the first image is received.
Definition: tracker-viewer.cpp:306
visp_tracker::TrackerViewer::trackingResultSubscriber_
message_filters::Subscriber< geometry_msgs::PoseWithCovarianceStamped > trackingResultSubscriber_
Subscriber to tracking result topic.
Definition: tracker-viewer.hh:172
visp_tracker::TrackerViewer::reconfigureCallback
bool reconfigureCallback(visp_tracker::Init::Request &req, visp_tracker::Init::Response &res)
Definition: tracker-viewer.cpp:60
visp_tracker::TrackerViewer::rectifiedImageTopic_
std::string rectifiedImageTopic_
Full topic name for rectified image.
Definition: tracker-viewer.hh:127
visp_tracker::TrackerViewer::info_
sensor_msgs::CameraInfoConstPtr info_
Shared pointer to latest received camera information.
Definition: tracker-viewer.hh:156
visp_tracker::TrackerViewer::reconfigureCallback_t
boost::function< bool(visp_tracker::Init::Request &, visp_tracker::Init::Response &res)> reconfigureCallback_t
Definition: tracker-viewer.hh:44
visp_tracker::TrackerViewer::image_t
vpImage< unsigned char > image_t
ViSP image type.
Definition: tracker-viewer.hh:35
visp_tracker::TrackerViewer::timerCallback
void timerCallback()
Definition: tracker-viewer.cpp:489
visp_tracker::TrackerViewer::countKltPoints_
unsigned countKltPoints_
Definition: tracker-viewer.hh:192
image_transport.h
visp_tracker::TrackerViewer::nodeHandle_
ros::NodeHandle & nodeHandle_
Definition: tracker-viewer.hh:115
visp_tracker::TrackerViewer::exiting
bool exiting()
Definition: tracker-viewer.hh:105
visp_tracker::TrackerViewer::cMo_
boost::optional< vpHomogeneousMatrix > cMo_
Last tracked object position, set to none if tracking failed.
Definition: tracker-viewer.hh:158
visp_tracker::TrackerViewer::cameraParameters_
vpCameraParameters cameraParameters_
ViSP camera parameters.
Definition: tracker-viewer.hh:151
visp_tracker::TrackerViewer::queueSize_
unsigned queueSize_
Queue size for all subscribers.
Definition: tracker-viewer.hh:113
visp_tracker::TrackerViewer::initializeTracker
void initializeTracker()
Initialize the tracker.
Definition: tracker-viewer.cpp:385
visp_tracker::TrackerViewer::kltPointsSubscriber_
message_filters::Subscriber< visp_tracker::KltPoints > kltPointsSubscriber_
Subscriber to KLT point topics.
Definition: tracker-viewer.hh:178
visp_tracker::TrackerViewer::cameraInfoTopic_
std::string cameraInfoTopic_
Full topic name for camera information.
Definition: tracker-viewer.hh:129
visp_tracker::TrackerViewer::spin
void spin()
Display camera image, tracked object position and moving edge sites.
Definition: tracker-viewer.cpp:246
synchronizer.h
visp_tracker::TrackerViewer::displayKltPoints
void displayKltPoints()
Display KLT points that are tracked.
Definition: tracker-viewer.cpp:465
approximate_time.h
visp_tracker::TrackerViewer::initCallback
bool initCallback(visp_tracker::Init::Request &req, visp_tracker::Init::Response &res)
Definition: tracker-viewer.cpp:38
visp_tracker::TrackerViewer::cameraInfoSubscriber_
message_filters::Subscriber< sensor_msgs::CameraInfo > cameraInfoSubscriber_
Subscriber to camera information topic.
Definition: tracker-viewer.hh:169
visp_tracker::TrackerViewer::countImages_
unsigned countImages_
Definition: tracker-viewer.hh:188
visp_tracker::TrackerViewer::syncPolicy_t
message_filters::sync_policies::ApproximateTime< sensor_msgs::Image, sensor_msgs::CameraInfo, geometry_msgs::PoseWithCovarianceStamped, visp_tracker::MovingEdgeSites, visp_tracker::KltPoints > syncPolicy_t
Synchronization policy.
Definition: tracker-viewer.hh:58
visp_tracker::TrackerViewer::loadCommonParameters
void loadCommonParameters()
Initialize the common parameters (visibility angles, etc)
Definition: tracker-viewer.cpp:331
visp_tracker::TrackerViewer::callback
void callback(const sensor_msgs::ImageConstPtr &imageConst, const sensor_msgs::CameraInfoConstPtr &infoConst, const geometry_msgs::PoseWithCovarianceStamped::ConstPtr &trackingResult, const visp_tracker::MovingEdgeSites::ConstPtr &sitesConst, const visp_tracker::KltPoints::ConstPtr &kltConst)
Callback used to received synchronized data.
Definition: tracker-viewer.cpp:403
ros::NodeHandle
visp_tracker::TrackerViewer::imageTransport_
image_transport::ImageTransport imageTransport_
Image transport used to receive images.
Definition: tracker-viewer.hh:119
visp_tracker::TrackerViewer::sites_
visp_tracker::MovingEdgeSites::ConstPtr sites_
Shared pointer to latest received moving edge sites.
Definition: tracker-viewer.hh:160


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