INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
rangescannersimulator.h00001 #ifndef HYDROSIM2D_RANGESCANNERSIMULATOR_H 00002 #define HYDROSIM2D_RANGESCANNERSIMULATOR_H 00003 00004 #include <hydroogmap/hydroogmap.h> 00005 #include <hydroogmap/oglostracer.h> 00006 #include <hydronavutil/hydronavutil.h> 00007 #include <vector> 00008 #include <hydropublish/rangescanner2dpublisher.h> 00009 00010 namespace hydrosim2d { 00011 00017 class RangeScannerSimulator 00018 { 00019 00020 public: 00021 00022 struct Config { 00023 Config() {} 00024 Config( double pMaxRange, 00025 double pStartAngle, 00026 double pAngleIncrement, 00027 int pNumReturns ) 00028 : maxRange(pMaxRange), 00029 startAngle(pStartAngle), 00030 angleIncrement(pAngleIncrement), 00031 numReturns(pNumReturns) 00032 {} 00033 double maxRange; 00034 double startAngle; 00035 double angleIncrement; 00036 int numReturns; 00037 }; 00039 00040 RangeScannerSimulator( const Config &config, 00041 const hydroogmap::OgMap &ogMap, 00042 hydropublish::RangeScanner2dPublisher &rangeScanPublisher ); 00043 00044 void getRangesFromPose( const hydronavutil::Pose &sensorPose, 00045 std::vector<float> &ranges, 00046 const hydrotime::Time &time = hydrotime::Time(0,0) ) const; 00047 00048 private: 00049 00050 const Config config_; 00051 const hydroogmap::OgMap ogMap_; 00052 mutable hydroogmap::OgLosTracer rayTracer_; 00053 mutable hydropublish::RangeScanner2dPublisher &rangeScanPublisher_; 00054 }; 00055 00056 bool isSane( const RangeScannerSimulator::Config &config, std::string &reason ); 00057 00058 00059 } 00060 00061 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)