driver.h
Go to the documentation of this file.
1 // Copyright (C) 2012 Austin Robot Technology, Jack O'Quin
2 // All rights reserved.
3 //
4 // Software License Agreement (BSD License 2.0)
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions
8 // are met:
9 //
10 // * Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 // * Redistributions in binary form must reproduce the above
13 // copyright notice, this list of conditions and the following
14 // disclaimer in the documentation and/or other materials provided
15 // with the distribution.
16 // * Neither the name of {copyright_holder} nor the names of its
17 // contributors may be used to endorse or promote products derived
18 // from this software without specific prior written permission.
19 //
20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 // POSSIBILITY OF SUCH DAMAGE.
32 
33 #ifndef VELODYNE_DRIVER_DRIVER_H
34 #define VELODYNE_DRIVER_DRIVER_H
35 
36 #include <string>
37 #include <ros/ros.h>
40 #include <dynamic_reconfigure/server.h>
41 
42 #include <velodyne_driver/input.h>
43 #include <velodyne_driver/VelodyneNodeConfig.h>
44 
45 namespace velodyne_driver
46 {
47 
49 {
50 public:
52  ros::NodeHandle private_nh,
53  std::string const & node_name = ros::this_node::getName());
55 
56  bool poll(void);
57 
58 private:
59  // Callback for dynamic reconfigure
60  void callback(velodyne_driver::VelodyneNodeConfig &config,
61  uint32_t level);
62  // Callback for diagnostics update for lost communication with vlp
63  void diagTimerCallback(const ros::TimerEvent&event);
64 
65  // Pointer to dynamic reconfigure service srv_
66  boost::shared_ptr<dynamic_reconfigure::Server<velodyne_driver::
67  VelodyneNodeConfig> > srv_;
68 
69  // configuration parameters
70  struct
71  {
72  std::string frame_id; // tf frame ID
73  std::string model; // device model name
74  int npackets; // number of packets to collect
75  double rpm; // device rotation rate (RPMs)
76  int cut_angle; // cutting angle in 1/100°
77  double time_offset; // time in seconds added to each velodyne time stamp
78  bool enabled; // polling is enabled
80  }
81  config_;
82 
86 
87  /* diagnostics updater */
93 };
94 
95 } // namespace velodyne_driver
96 
97 #endif // VELODYNE_DRIVER_DRIVER_H
VelodyneDriver(ros::NodeHandle node, ros::NodeHandle private_nh, std::string const &node_name=ros::this_node::getName())
Definition: driver.cc:50
diagnostic_updater::Updater diagnostics_
Definition: driver.h:89
void diagTimerCallback(const ros::TimerEvent &event)
Definition: driver.cc:290
boost::shared_ptr< Input > input_
Definition: driver.h:83
ROSCPP_DECL const std::string & getName()
boost::shared_ptr< dynamic_reconfigure::Server< velodyne_driver::VelodyneNodeConfig > > srv_
Definition: driver.h:67
void callback(velodyne_driver::VelodyneNodeConfig &config, uint32_t level)
Definition: driver.cc:276
ros::Publisher output_
Definition: driver.h:84
struct velodyne_driver::VelodyneDriver::@0 config_
boost::shared_ptr< diagnostic_updater::TopicDiagnostic > diag_topic_
Definition: driver.h:92


velodyne_driver
Author(s): Jack O'Quin, Patrick Beeson, Michael Quinlan, Yaxin Liu
autogenerated on Sun Sep 6 2020 03:25:28