00001 00024 #ifndef CCNY_RGBD_TYPES_H 00025 #define CCNY_RGBD_TYPES_H 00026 00027 #include <Eigen/Core> 00028 #include <pcl/point_types.h> 00029 #include <pcl/kdtree/kdtree_flann.h> 00030 #include <pcl/registration/transformation_estimation_svd.h> 00031 #include <sensor_msgs/image_encodings.h> 00032 #include <nav_msgs/Odometry.h> 00033 #include <nav_msgs/Path.h> 00034 #include <image_transport/image_transport.h> 00035 #include <image_transport/subscriber_filter.h> 00036 #include <image_geometry/pinhole_camera_model.h> 00037 #include <message_filters/subscriber.h> 00038 #include <message_filters/synchronizer.h> 00039 #include <message_filters/sync_policies/approximate_time.h> 00040 #include <dynamic_reconfigure/server.h> 00041 00042 #include "ccny_rgbd/FeatureDetectorConfig.h" 00043 #include "ccny_rgbd/GftDetectorConfig.h" 00044 #include "ccny_rgbd/StarDetectorConfig.h" 00045 #include "ccny_rgbd/SurfDetectorConfig.h" 00046 #include "ccny_rgbd/OrbDetectorConfig.h" 00047 00048 namespace ccny_rgbd { 00049 00050 // Eigen matrix types 00051 00052 typedef Eigen::Matrix3f Matrix3f; 00053 typedef Eigen::Vector3f Vector3f; 00054 00055 // Vector types 00056 00057 typedef std::vector<int> IntVector; 00058 typedef std::vector<float> FloatVector; 00059 typedef std::vector<bool> BoolVector; 00060 typedef std::vector<cv::Point2f> Point2fVector; 00061 typedef std::vector<cv::Point3f> Point3fVector; 00062 typedef std::vector<Eigen::Matrix3f> Matrix3fVector; 00063 typedef std::vector<Eigen::Vector3f> Vector3fVector; 00064 typedef std::vector<cv::KeyPoint> KeypointVector; 00065 00066 // PCL types 00067 00068 typedef pcl::PointXYZRGB PointT; 00069 typedef pcl::PointCloud<PointT> PointCloudT; 00070 00071 typedef pcl::PointXYZ PointFeature; 00072 typedef pcl::PointCloud<PointFeature> PointCloudFeature; 00073 00074 typedef pcl::KdTreeFLANN<PointFeature> KdTree; 00075 typedef pcl::registration::TransformationEstimationSVD<PointFeature, PointFeature> TransformationEstimationSVD; 00076 00077 // ROS message types 00078 00079 typedef sensor_msgs::Image ImageMsg; 00080 typedef sensor_msgs::CameraInfo CameraInfoMsg; 00081 typedef nav_msgs::Odometry OdomMsg; 00082 typedef nav_msgs::Path PathMsg; 00083 00084 // ROS publishers, subscribers, services, etc 00085 00086 typedef image_geometry::PinholeCameraModel PinholeCameraModel; 00087 typedef image_transport::ImageTransport ImageTransport; 00088 typedef image_transport::Publisher ImagePublisher; 00089 typedef image_transport::SubscriberFilter ImageSubFilter; 00090 typedef message_filters::Subscriber<CameraInfoMsg> CameraInfoSubFilter; 00091 00092 typedef message_filters::sync_policies::ApproximateTime<ImageMsg, ImageMsg, CameraInfoMsg> RGBDSyncPolicy3; 00093 typedef message_filters::sync_policies::ApproximateTime<ImageMsg, ImageMsg, CameraInfoMsg, CameraInfoMsg> RGBDSyncPolicy4; 00094 typedef message_filters::Synchronizer<RGBDSyncPolicy3> RGBDSynchronizer3; 00095 typedef message_filters::Synchronizer<RGBDSyncPolicy4> RGBDSynchronizer4; 00096 00097 // ROS dynamic reconfigure 00098 00099 typedef dynamic_reconfigure::Server<FeatureDetectorConfig> FeatureDetectorConfigServer; 00100 00101 typedef dynamic_reconfigure::Server<GftDetectorConfig> GftDetectorConfigServer; 00102 typedef boost::shared_ptr<GftDetectorConfigServer> GftDetectorConfigServerPtr; 00103 00104 typedef dynamic_reconfigure::Server<StarDetectorConfig> StarDetectorConfigServer; 00105 typedef boost::shared_ptr<StarDetectorConfigServer> StarDetectorConfigServerPtr; 00106 00107 typedef dynamic_reconfigure::Server<SurfDetectorConfig> SurfDetectorConfigServer; 00108 typedef boost::shared_ptr<SurfDetectorConfigServer> SurfDetectorConfigServerPtr; 00109 00110 typedef dynamic_reconfigure::Server<OrbDetectorConfig> OrbDetectorConfigServer; 00111 typedef boost::shared_ptr<OrbDetectorConfigServer> OrbDetectorConfigServerPtr; 00112 00113 } // namespace ccny_rgbd 00114 00115 #endif // CCNY_RGBD_TYPES_H