camera_info_controller.hpp
Go to the documentation of this file.
1 #ifndef USB_CAM_CONTROLLERS_CAMERA_INFO_CONTROLLER
2 #define USB_CAM_CONTROLLERS_CAMERA_INFO_CONTROLLER
3 
4 #include <string>
5 
7 #include <ros/duration.h>
8 #include <ros/node_handle.h>
9 #include <ros/time.h>
10 #include <sensor_msgs/CameraInfo.h>
13 
14 #include <boost/make_shared.hpp>
15 #include <boost/shared_ptr.hpp>
16 
18 
20 public:
22 
23  virtual ~CameraInfoController() {}
24 
25 protected:
27  ros::NodeHandle &controller_nh) {
28  frame_id_ = controller_nh.param< std::string >("camera_frame_id", "head_camera");
29 
30  publisher_ = controller_nh.advertise< sensor_msgs::CameraInfo >("camera_info", 1);
31  info_manager_ = boost::make_shared< camera_info_manager::CameraInfoManager >(
32  controller_nh, controller_nh.param< std::string >("camera_name", "head_camera"),
33  controller_nh.param< std::string >("camera_info_url", ""));
34 
35  return true;
36  }
37 
38  virtual void startingImpl(const ros::Time &time) {}
39 
40  virtual void updateImpl(const ros::Time &time, const ros::Duration &period) {
41  // publish the camera info
42  const sensor_msgs::CameraInfoPtr msg(new sensor_msgs::CameraInfo());
43  *msg = info_manager_->getCameraInfo();
44  msg->header.stamp = packet_iface_.getStamp();
45  msg->header.frame_id = frame_id_;
46  publisher_.publish(msg);
47  }
48 
49  virtual void stoppingImpl(const ros::Time &time) {}
50 
51 private:
52  std::string frame_id_;
53 
56 };
57 
58 } // namespace usb_cam_controllers
59 
60 #endif
void publish(const boost::shared_ptr< M > &message) const
virtual void startingImpl(const ros::Time &time)
virtual void stoppingImpl(const ros::Time &time)
virtual bool initImpl(usb_cam_hardware_interface::PacketInterface *hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh)
bool param(const std::string &param_name, T &param_val, const T &default_val) const
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
virtual void updateImpl(const ros::Time &time, const ros::Duration &period)
usb_cam_hardware_interface::PacketHandle packet_iface_
boost::shared_ptr< camera_info_manager::CameraInfoManager > info_manager_


usb_cam_controllers
Author(s):
autogenerated on Tue Jul 14 2020 03:12:08