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
usb_cam_controllers
Definition: camera_info_controller.hpp:17
usb_cam_controllers::SimplePacketController::packet_iface_
usb_cam_hardware_interface::PacketHandle packet_iface_
Definition: simple_packet_controller.hpp:85
node_handle.h
usb_cam_controllers::CameraInfoController::startingImpl
virtual void startingImpl(const ros::Time &time)
Definition: camera_info_controller.hpp:38
ros::Publisher
usb_cam_hardware_interface::PacketHandle::getStamp
ros::Time getStamp() const
usb_cam_controllers::CameraInfoController
Definition: camera_info_controller.hpp:19
boost::shared_ptr< camera_info_manager::CameraInfoManager >
usb_cam_controllers::CameraInfoController::frame_id_
std::string frame_id_
Definition: camera_info_controller.hpp:52
time.h
camera_info_manager.h
packet_interface.hpp
usb_cam_controllers::CameraInfoController::initImpl
virtual bool initImpl(usb_cam_hardware_interface::PacketInterface *hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh)
Definition: camera_info_controller.hpp:26
usb_cam_controllers::CameraInfoController::info_manager_
boost::shared_ptr< camera_info_manager::CameraInfoManager > info_manager_
Definition: camera_info_controller.hpp:55
ros::Publisher::publish
void publish(const boost::shared_ptr< M > &message) const
ros::NodeHandle::advertise
Publisher advertise(AdvertiseOptions &ops)
duration.h
usb_cam_controllers::CameraInfoController::publisher_
ros::Publisher publisher_
Definition: camera_info_controller.hpp:54
usb_cam_controllers::CameraInfoController::updateImpl
virtual void updateImpl(const ros::Time &time, const ros::Duration &period)
Definition: camera_info_controller.hpp:40
usb_cam_controllers::CameraInfoController::~CameraInfoController
virtual ~CameraInfoController()
Definition: camera_info_controller.hpp:23
simple_packet_controller.hpp
usb_cam_controllers::CameraInfoController::stoppingImpl
virtual void stoppingImpl(const ros::Time &time)
Definition: camera_info_controller.hpp:49
usb_cam_hardware_interface::PacketInterface
ros::Time
ros::NodeHandle::param
T param(const std::string &param_name, const T &default_val) const
usb_cam_controllers::CameraInfoController::CameraInfoController
CameraInfoController()
Definition: camera_info_controller.hpp:21
usb_cam_controllers::SimplePacketController
Definition: simple_packet_controller.hpp:19
ros::Duration
ros::NodeHandle


usb_cam_controllers
Author(s):
autogenerated on Wed Mar 2 2022 01:11:38