PanolutVirtualCameraNodelet.h
Go to the documentation of this file.
00001 
00002 #ifndef OMNICAMERA_PANOLUTVIRTUALCAMERANODELET_H_
00003 #define OMNICAMERA_PANOLUTVIRTUALCAMERANODELET_H_
00004 
00005 #include <boost/make_shared.hpp>
00006 #include <ros/ros.h>
00007 #include <image_transport/image_transport.h>
00008 #include <nodelet/nodelet.h>
00009 #include <opencv2/opencv.hpp>
00010 #include <sensor_msgs/Image.h>
00011 #include <tf/transform_datatypes.h>
00012 
00013 #include <omnicamera_msgs/GetVirtualCameraConfig.h>
00014 #include <omnicamera_msgs/VirtualCameraConfig.h>
00015 
00016 #include "omnicamera/LookupStitcher.h"
00017 
00018 
00019 using omnicamera_msgs::VirtualCameraConfig;
00020 using omnicamera_msgs::GetVirtualCameraConfig;
00021 
00022 namespace omnicamera {
00023 
00024 class PanolutVirtualCameraNodelet : public nodelet::Nodelet {
00025 public:
00026   PanolutVirtualCameraNodelet();
00030   void onInit();
00034   void setup(ros::NodeHandle &nh, ros::NodeHandle &pnh);
00038   void tfPublisherCallback(const ros::TimerEvent& event);
00042   void virtualCameraConfigCallback(const VirtualCameraConfig::ConstPtr& msg);
00046   bool getVirtualCameraConfigService(GetVirtualCameraConfig::Request& request, GetVirtualCameraConfig::Response& response);
00050   void imageCallback(const sensor_msgs::ImageConstPtr& msg);
00051 private:
00052   static const int N_CAMS;
00056   int inWidth;
00060   int inHeight;
00064   int panoWidth;
00068   int panoHeight;
00072   bool alpha;
00076   int radius;
00078   std::string lutPath;
00080   std::string frameId;
00082   std::string parentFrameId;
00084   ros::Timer tfPublisherTimer;
00086   tf::Transform transform;
00087 
00089   bool equalizeHist;
00090 
00094   omnicamera::LookupStitcher pano;
00098   omnicamera::LookupStitcher vcam;
00102   boost::shared_ptr<image_transport::ImageTransport> it;
00106   image_transport::Subscriber imageSubcriber;
00110   ros::Subscriber virtualCameraConfigSubscriber;
00114   ros::ServiceServer getVirtualCameraConfigServer;
00118   image_transport::Publisher outPub;
00122   ros::Publisher camPub;
00126   VirtualCameraConfig vcamConfig;
00130   sensor_msgs::CameraInfo camMsg;
00134   bool lookupTablesLoaded;
00135 
00136   void updateTransform();
00137 };
00138 
00139 } // namespace omnicamera
00140 
00141 #endif /* OMNICAMERA_PANOLUTVIRTUALCAMERANODELET_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Defines


omnicamera
Author(s): Tomas Petricek / petrito1@cmp.felk.cvut.cz
autogenerated on Tue Dec 10 2013 14:26:53