src
nodelets
nodelets/viewer.cpp
Go to the documentation of this file.
1
#include <boost/bind.hpp>
2
#include <boost/make_shared.hpp>
3
#include <boost/shared_ptr.hpp>
4
#include <boost/thread.hpp>
5
6
#include <
nodelet/nodelet.h
>
7
#include <
pluginlib/class_list_macros.h
>
8
9
#include "
tracker-viewer.hh
"
10
11
namespace
visp_tracker
12
{
13
class
TrackerViewerNodelet
:
public
nodelet::Nodelet
14
{
15
public
:
16
TrackerViewerNodelet
()
17
:
nodelet
::
Nodelet
(),
18
exiting_
(false),
19
trackerViewer_
(),
20
thread_
()
21
{}
22
23
~TrackerViewerNodelet
()
24
{
25
exiting_
=
true
;
26
if
(
thread_
)
27
if
(!
thread_
->timed_join (boost::posix_time::seconds (2)))
28
NODELET_WARN
(
"failed to join thread but continuing anyway"
);
29
thread_
.reset ();
30
trackerViewer_
.reset ();
31
}
32
33
void
spin
()
34
{
35
trackerViewer_
=
boost::shared_ptr<visp_tracker::TrackerViewer>
36
(
new
visp_tracker::TrackerViewer
37
(
getMTNodeHandle
(),
38
getMTPrivateNodeHandle
(),
39
exiting_
, 5u));
40
while
(
ros::ok
() && !
exiting_
)
41
trackerViewer_
->spin ();
42
}
43
44
virtual
void
onInit
()
45
{
46
NODELET_DEBUG
(
"Initializing nodelet..."
);
47
exiting_
=
false
;
48
thread_
= boost::make_shared<boost::thread>
49
(boost::bind (&
TrackerViewerNodelet::spin
,
this
));
50
}
51
private
:
52
volatile
bool
exiting_
;
53
boost::shared_ptr<visp_tracker::TrackerViewer>
trackerViewer_
;
54
boost::shared_ptr<boost::thread>
thread_
;
55
};
56
57
}
// end of namespace visp_tracker.
58
59
PLUGINLIB_EXPORT_CLASS
(
visp_tracker::TrackerViewerNodelet
,
nodelet::Nodelet
);
boost::shared_ptr< visp_tracker::TrackerViewer >
visp_tracker::TrackerViewerNodelet::trackerViewer_
boost::shared_ptr< visp_tracker::TrackerViewer > trackerViewer_
Definition:
nodelets/viewer.cpp:53
visp_tracker::TrackerViewerNodelet::onInit
virtual void onInit()
Definition:
nodelets/viewer.cpp:44
nodelet::Nodelet::getMTPrivateNodeHandle
ros::NodeHandle & getMTPrivateNodeHandle() const
NODELET_WARN
#define NODELET_WARN(...)
visp_tracker::TrackerViewer
Monitors the tracking result provided by the tracking node.
Definition:
tracker-viewer.hh:31
ros::ok
ROSCPP_DECL bool ok()
visp_tracker
Definition:
names.cpp:3
class_list_macros.h
visp_tracker::TrackerViewerNodelet::~TrackerViewerNodelet
~TrackerViewerNodelet()
Definition:
nodelets/viewer.cpp:23
visp_tracker::TrackerViewerNodelet::TrackerViewerNodelet
TrackerViewerNodelet()
Definition:
nodelets/viewer.cpp:16
visp_tracker::TrackerViewerNodelet::exiting_
volatile bool exiting_
Definition:
nodelets/viewer.cpp:52
nodelet::Nodelet
nodelet
tracker-viewer.hh
nodelet.h
PLUGINLIB_EXPORT_CLASS
PLUGINLIB_EXPORT_CLASS(visp_tracker::TrackerViewerNodelet, nodelet::Nodelet)
visp_tracker::TrackerViewerNodelet::thread_
boost::shared_ptr< boost::thread > thread_
Definition:
nodelets/viewer.cpp:54
visp_tracker::TrackerViewerNodelet
Definition:
nodelets/viewer.cpp:13
nodelet::Nodelet::Nodelet
Nodelet()
visp_tracker::TrackerViewerNodelet::spin
void spin()
Definition:
nodelets/viewer.cpp:33
nodelet::Nodelet::getMTNodeHandle
ros::NodeHandle & getMTNodeHandle() const
NODELET_DEBUG
#define NODELET_DEBUG(...)
visp_tracker
Author(s): Thomas Moulard
autogenerated on Sat Aug 24 2024 02:54:56