49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#ifndef SCANMATCHERPROCESSOR_H
|
|
#define SCANMATCHERPROCESSOR_H
|
|
|
|
#include <gmapping/log/sensorlog.h>
|
|
#include <gmapping/sensor/sensor_range/rangesensor.h>
|
|
#include <gmapping/sensor/sensor_range/rangereading.h>
|
|
//#include <gsl/gsl_eigen.h>
|
|
#include <gmapping/scanmatcher/scanmatcher.h>
|
|
|
|
namespace GMapping {
|
|
|
|
class ScanMatcherProcessor{
|
|
public:
|
|
ScanMatcherProcessor(const ScanMatcherMap& m);
|
|
ScanMatcherProcessor (double xmin, double ymin, double xmax, double ymax, double delta, double patchdelta);
|
|
virtual ~ScanMatcherProcessor ();
|
|
virtual void processScan(const RangeReading & reading);
|
|
void setSensorMap(const SensorMap& smap, std::string sensorName="FLASER");
|
|
void init();
|
|
void setMatchingParameters
|
|
(double urange, double range, double sigma, int kernsize, double lopt, double aopt, int iterations, bool computeCovariance=false);
|
|
void setRegistrationParameters(double regScore, double critScore);
|
|
OrientedPoint getPose() const;
|
|
inline const ScanMatcherMap& getMap() const {return m_map;}
|
|
inline ScanMatcher& matcher() {return m_matcher;}
|
|
inline void setmaxMove(double mmove){m_maxMove=mmove;}
|
|
bool useICP;
|
|
protected:
|
|
ScanMatcher m_matcher;
|
|
bool m_computeCovariance;
|
|
bool m_first;
|
|
SensorMap m_sensorMap;
|
|
double m_regScore, m_critScore;
|
|
unsigned int m_beams;
|
|
double m_maxMove;
|
|
//state
|
|
ScanMatcherMap m_map;
|
|
OrientedPoint m_pose;
|
|
OrientedPoint m_odoPose;
|
|
int m_count;
|
|
//gsl_eigen_symmv_workspace * m_eigenspace;
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|