SickLMS200.hh
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 #ifndef SICKLMS200_HH
00028 #define SICKLMS200_HH
00029 
00030 #include "Body.hh"
00031 #include "Model.hh"
00032 
00033 
00034 class RayProximity;
00035 
00037 class SickLMS200 : public Model
00038 {
00040   public: SickLMS200( World *world );
00041 
00043   public: virtual ~SickLMS200();
00044   
00046   public: virtual int Load( WorldFile *file, WorldFileNode *node );
00047 
00049   public: virtual int Init( WorldFile *file, WorldFileNode *node );
00050 
00052   public: virtual int Fini();
00053 
00055   public: virtual void Update( double step );
00056 
00058   private: int OdeLoad( WorldFile *file, WorldFileNode *node );
00059 
00061   private: int RayLoad( WorldFile *file, WorldFileNode *node );
00062 
00064   private: void PutLaserData();
00065 
00067   private: void PutFiducialData();
00068 
00069   
00070   private: int RayFini();
00071   
00072   
00073   private: int IfaceInit();
00074 
00075   
00076   private: int IfaceFini();
00077 
00078   
00079   private: void IfacePutData();
00080 
00081   
00082   private: bool IFaceGetCmd();
00083  
00084   
00085   private: Body *body;
00086   
00087   
00088   private: RayProximity *sensor;
00089   
00090   
00091   private: gz_laser_t *laser_iface;
00092   private: gz_fiducial_t *fiducial_iface;
00093 
00094   
00095   private: int rayCount;
00096   private: int rangeCount;
00097   private: double laserMinRange, laserMaxRange;
00098   private: double laserMinAngle, laserMaxAngle;
00099   private: double laserPeriod;
00100   private: double laserTime;
00101 };
00102 
00103 
00104 #endif
  
  
    
      | Last updated 12 September 2005 21:38:45 |