00001 #include <ros/ros.h> 00002 #include <image_transport/image_transport.h> 00003 #include "uvc_cam/uvc_cam.h" 00004 #include <boost/thread.hpp> 00005 #include <camera_info_manager/camera_info_manager.h> 00006 00007 namespace uvc_camera { 00008 00009 class Camera { 00010 public: 00011 Camera(ros::NodeHandle comm_nh, ros::NodeHandle param_nh); 00012 void onInit(); 00013 void sendInfo(sensor_msgs::ImagePtr &image, ros::Time time); 00014 void feedImages(); 00015 ~Camera(); 00016 00017 private: 00018 ros::NodeHandle node, pnode; 00019 image_transport::ImageTransport it; 00020 bool ok; 00021 00022 int width, height, fps, skip_frames, frames_to_skip; 00023 std::string device, frame; 00024 bool rotate; 00025 00026 camera_info_manager::CameraInfoManager info_mgr; 00027 00028 image_transport::Publisher pub; 00029 ros::Publisher info_pub; 00030 00031 uvc_cam::Cam *cam; 00032 boost::thread image_thread; 00033 }; 00034 00035 }; 00036