tracker-client.hh
Go to the documentation of this file.
1 #ifndef VISP_TRACKER_TRACKER_CLIENT_HH
2 # define VISP_TRACKER_TRACKER_CLIENT_HH
3 # include <boost/filesystem/fstream.hpp>
4 # include <boost/filesystem/path.hpp>
5 # include <boost/thread/recursive_mutex.hpp>
6 
7 # include <dynamic_reconfigure/server.h>
8 
10 
13 
17 
18 # include <sensor_msgs/Image.h>
19 # include <sensor_msgs/CameraInfo.h>
20 
22 
23 # include <visp_tracker/ModelBasedSettingsConfig.h>
24 # include <visp_tracker/ModelBasedSettingsKltConfig.h>
25 # include <visp_tracker/ModelBasedSettingsEdgeConfig.h>
26 # include <visp_tracker/MovingEdgeSites.h>
27 
28 # include <visp3/core/vpCameraParameters.h>
29 # include <visp3/core/vpHomogeneousMatrix.h>
30 # include <visp3/core/vpImage.h>
31 # include <visp3/mbt/vpMbGenericTracker.h>
32 # include <visp3/me/vpMe.h>
33 # include <visp3/klt/vpKltOpencv.h>
34 # include <visp3/vision/vpPose.h>
35 
36 
37 namespace visp_tracker
38 {
40  {
41  public:
42  typedef vpImage<unsigned char> image_t;
43  typedef std::vector<vpPoint> points_t;
44  typedef std::vector<vpImagePoint> imagePoints_t;
45 
46  template<class ConfigType>
48  typedef dynamic_reconfigure::Server<ConfigType> reconfigureSrv_t;
49  };
50 
52  ros::NodeHandle& privateNh,
53  volatile bool& exiting,
54  unsigned queueSize = 5u);
55 
57 
58  void spin();
59  protected:
61  void checkInputs();
62 
63  void loadModel();
64 
65  bool validatePose(const vpHomogeneousMatrix& cMo);
66  vpHomogeneousMatrix loadInitialPose();
67  void saveInitialPose(const vpHomogeneousMatrix& cMo);
69 
70  void init();
71  void initPoint(unsigned& i,
72  points_t& points,
73  imagePoints_t& imagePoints,
74  ros::Rate& rate,
75  vpPose& pose);
76 
77 
78  void waitForImage();
79 
80  void sendcMo(const vpHomogeneousMatrix& cMo);
81 
82  std::string fetchResource(const std::string&);
83  bool makeModelFile(boost::filesystem::ofstream& modelStream,
84  const std::string& resourcePath,
85  std::string& fullModelPath);
86 
87  private:
88  bool exiting ()
89  {
90  return exiting_ || !ros::ok();
91  }
92 
93  volatile bool& exiting_;
94 
95  unsigned queueSize_;
96 
99 
101 
103 
104  std::string modelPath_;
105  std::string modelPathAndExt_;
106  std::string modelName_;
107 
108  std::string cameraPrefix_;
109  std::string rectifiedImageTopic_;
110  std::string cameraInfoTopic_;
111  std::string trackerType_;
112  double frameSize_;
113 
114  boost::filesystem::path bModelPath_;
115  boost::filesystem::path bInitPath_;
116 
118 
119  boost::recursive_mutex mutex_;
123 
124  std_msgs::Header header_;
125  sensor_msgs::CameraInfoConstPtr info_;
126 
128  vpKltOpencv kltTracker_;
129  vpCameraParameters cameraParameters_;
130  vpMbGenericTracker tracker_;
131 
134 
137 
139  };
140 } // end of namespace visp_tracker.
141 
142 #endif
visp_tracker::TrackerClient::validatePose
bool validatePose(const vpHomogeneousMatrix &cMo)
Definition: tracker-client.cpp:620
visp_tracker::TrackerClient::queueSize_
unsigned queueSize_
Definition: tracker-client.hh:95
visp_tracker::TrackerClient::reconfigureSrvStruct
Definition: tracker-client.hh:47
visp_tracker::TrackerClient::reconfigureSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsConfig >::reconfigureSrv_t * reconfigureSrv_
Definition: tracker-client.hh:120
visp_tracker::TrackerClient::rectifiedImageTopic_
std::string rectifiedImageTopic_
Definition: tracker-client.hh:109
advertisement_checker.h
image_transport::ImageTransport
visp_tracker::TrackerClient::bModelPath_
boost::filesystem::path bModelPath_
Definition: tracker-client.hh:114
visp_tracker::TrackerClient::points_t
std::vector< vpPoint > points_t
Definition: tracker-client.hh:43
visp_tracker::TrackerClient::loadInitialPose
vpHomogeneousMatrix loadInitialPose()
Definition: tracker-client.cpp:437
visp_tracker::TrackerClient::modelName_
std::string modelName_
Definition: tracker-client.hh:106
visp_tracker::TrackerClient::startFromSavedPose_
bool startFromSavedPose_
Definition: tracker-client.hh:132
visp_tracker::TrackerClient::cameraInfoTopic_
std::string cameraInfoTopic_
Definition: tracker-client.hh:110
visp_tracker::TrackerClient::fetchResource
std::string fetchResource(const std::string &)
Definition: tracker-client.cpp:819
visp_tracker::TrackerClient::modelPath_
std::string modelPath_
Definition: tracker-client.hh:104
visp_tracker::TrackerClient::exiting
bool exiting()
Definition: tracker-client.hh:88
visp_tracker::TrackerClient
Definition: tracker-client.hh:39
visp_tracker::TrackerClient::cameraPrefix_
std::string cameraPrefix_
Definition: tracker-client.hh:108
visp_tracker::TrackerClient::mutex_
boost::recursive_mutex mutex_
Definition: tracker-client.hh:119
visp_tracker::TrackerClient::frameSize_
double frameSize_
Definition: tracker-client.hh:112
visp_tracker::TrackerClient::loadInitializationPoints
points_t loadInitializationPoints()
Definition: tracker-client.cpp:562
visp_tracker::TrackerClient::cameraSubscriber_
image_transport::CameraSubscriber cameraSubscriber_
Definition: tracker-client.hh:117
visp_tracker::TrackerClient::sendcMo
void sendcMo(const vpHomogeneousMatrix &cMo)
Definition: tracker-client.cpp:324
visp_tracker::TrackerClient::nodeHandlePrivate_
ros::NodeHandle & nodeHandlePrivate_
Definition: tracker-client.hh:98
ros::ok
ROSCPP_DECL bool ok()
visp_tracker
Definition: names.cpp:3
visp_tracker::TrackerClient::imagePoints_t
std::vector< vpImagePoint > imagePoints_t
Definition: tracker-client.hh:44
visp_tracker::TrackerClient::info_
sensor_msgs::CameraInfoConstPtr info_
Definition: tracker-client.hh:125
visp_tracker::TrackerClient::movingEdge_
vpMe movingEdge_
Definition: tracker-client.hh:127
visp_tracker::TrackerClient::loadModel
void loadModel()
Definition: tracker-client.cpp:380
visp_tracker::TrackerClient::TrackerClient
TrackerClient(ros::NodeHandle &nh, ros::NodeHandle &privateNh, volatile bool &exiting, unsigned queueSize=5u)
Definition: tracker-client.cpp:42
visp_tracker::TrackerClient::modelPathAndExt_
std::string modelPathAndExt_
Definition: tracker-client.hh:105
visp_tracker::TrackerClient::image_t
vpImage< unsigned char > image_t
Definition: tracker-client.hh:42
visp_tracker::TrackerClient::header_
std_msgs::Header header_
Definition: tracker-client.hh:124
subscriber_filter.h
image_proc::AdvertisementChecker
visp_tracker::TrackerClient::saveInitialPose
void saveInitialPose(const vpHomogeneousMatrix &cMo)
Definition: tracker-client.cpp:507
image_transport::CameraSubscriber
subscriber.h
visp_tracker::TrackerClient::spin
void spin()
Definition: tracker-client.cpp:214
visp_tracker::TrackerClient::imageTransport_
image_transport::ImageTransport imageTransport_
Definition: tracker-client.hh:100
visp_tracker::TrackerClient::reconfigureEdgeSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsEdgeConfig >::reconfigureSrv_t * reconfigureEdgeSrv_
Definition: tracker-client.hh:122
resource_retriever::Retriever
visp_tracker::TrackerClient::confirmInit_
bool confirmInit_
Definition: tracker-client.hh:133
visp_tracker::TrackerClient::reconfigureKltSrv_
reconfigureSrvStruct< visp_tracker::ModelBasedSettingsKltConfig >::reconfigureSrv_t * reconfigureKltSrv_
Definition: tracker-client.hh:121
image_transport.h
visp_tracker::TrackerClient::initPoint
void initPoint(unsigned &i, points_t &points, imagePoints_t &imagePoints, ros::Rate &rate, vpPose &pose)
Definition: tracker-client.cpp:766
visp_tracker::TrackerClient::makeModelFile
bool makeModelFile(boost::filesystem::ofstream &modelStream, const std::string &resourcePath, std::string &fullModelPath)
Definition: tracker-client.cpp:832
visp_tracker::TrackerClient::resourceRetriever_
resource_retriever::Retriever resourceRetriever_
Definition: tracker-client.hh:138
visp_tracker::TrackerClient::kltTracker_
vpKltOpencv kltTracker_
Definition: tracker-client.hh:128
visp_tracker::TrackerClient::checkInputs_
image_proc::AdvertisementChecker checkInputs_
Helper used to check that subscribed topics exist.
Definition: tracker-client.hh:136
visp_tracker::TrackerClient::checkInputs
void checkInputs()
Make sure the topics we subscribe already exist.
Definition: tracker-client.cpp:205
retriever.h
visp_tracker::TrackerClient::init
void init()
Definition: tracker-client.cpp:650
synchronizer.h
approximate_time.h
ros::Rate
visp_tracker::TrackerClient::waitForImage
void waitForImage()
Definition: tracker-client.cpp:806
visp_tracker::TrackerClient::cameraParameters_
vpCameraParameters cameraParameters_
Definition: tracker-client.hh:129
visp_tracker::TrackerClient::reconfigureSrvStruct::reconfigureSrv_t
dynamic_reconfigure::Server< ConfigType > reconfigureSrv_t
Definition: tracker-client.hh:48
visp_tracker::TrackerClient::exiting_
volatile bool & exiting_
Definition: tracker-client.hh:93
visp_tracker::TrackerClient::image_
image_t image_
Definition: tracker-client.hh:102
visp_tracker::TrackerClient::bInitPath_
boost::filesystem::path bInitPath_
Definition: tracker-client.hh:115
visp_tracker::TrackerClient::~TrackerClient
~TrackerClient()
Definition: tracker-client.cpp:311
visp_tracker::TrackerClient::trackerType_
std::string trackerType_
Definition: tracker-client.hh:111
visp_tracker::TrackerClient::nodeHandle_
ros::NodeHandle & nodeHandle_
Definition: tracker-client.hh:97
visp_tracker::TrackerClient::tracker_
vpMbGenericTracker tracker_
Definition: tracker-client.hh:130
ros::NodeHandle


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