#include <ros/ros.h>
#include <string.h>
#include <tf/transform_listener.h>
#include <pcl_ros/transforms.h>
#include <laser_geometry/laser_geometry.h>
#include <pcl/ros/conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <sensor_msgs/PointCloud.h>
#include <sensor_msgs/PointCloud2.h>
#include <sensor_msgs/point_cloud_conversion.h>
#include "sensor_msgs/LaserScan.h"
#include "pcl_ros/point_cloud.h"
#include <Eigen/Dense>
#include <dynamic_reconfigure/server.h>
#include <ira_laser_tools/laserscan_multi_mergerConfig.h>
using namespace std;
//using namespace pcl;
using namespace laserscan_multi_merger;
class LaserscanMerger
{
public:
LaserscanMerger();
void scanCallback(const sensor_msgs::LaserScan::ConstPtr& scan, std::string topic);
void scan_to_mergedscan(const sensor_msgs::LaserScan::ConstPtr& scan);
void reconfigureCallback(laserscan_multi_mergerConfig &config, uint32_t level);
private:
ros::NodeHandle node_;
//laser_geometry::LaserProjection projector_;
tf::TransformListener tfListener_;
//ros::Publisher point_cloud_publisher_;
ros::Publisher laser_scan_publisher_;
vector<ros::Subscriber> scan_subscribers;
//vector<bool> clouds_modified;
//vector<pcl::PCLPointCloud2> clouds;
vector<string> input_topics;
void laserscan_topic_parser();
double angle_min;
double angle_max;
double angle_increment;
double time_increment;
double scan_time;
double range_min;
double range_max;
string destination_frame;
//string cloud_destination_topic;
string scan_destination_topic;
string laserscan_topics;
};
//
//
void LaserscanMerger::reconfigureCallback(laserscan_multi_mergerConfig &config, uint32_t level)
{
this->angle_min = config.angle_min;
this->angle_max = config.angle_max;
this->angle_increment = config.angle_increment;
this->time_increment = config.time_increment;
this->scan_time = config.scan_time;
this->range_min = config.range_min;
this->range_max = config.range_max;
}
void LaserscanMerger::laserscan_topic_parser()
{
// LaserScan topics to subscribe
ros::master::V_TopicInfo topics;
ros::master::getTopics(topics);
istrin
laser_scan_merge全部代码分析
最新推荐文章于 2024-08-19 09:58:31 发布