⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 laserdevice.hh

📁 一个机器人平台
💻 HH
字号:
/* *  Stage : a multi-robot simulator. *  Copyright (C) 2001, 2002 Richard Vaughan, Andrew Howard and Brian Gerkey. * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * *//* * Desc: Simulates a scanning laser range finder (SICK LMS200) * Author: Andrew Howard * Date: 28 Nov 2000 * CVS info: $Id: laserdevice.hh,v 1.2 2002/11/01 19:12:32 rtv Exp $ */#ifndef LASERDEVICE_HH#define LASERDEVICE_HH#include "playerdevice.hh"#include <list> // STLtypedef std::list< int > LaserBeaconList; class CLaserDevice : public CPlayerEntity{  // Default constructor  public: CLaserDevice(LibraryItem *libit, CWorld *world, CEntity *parent );  // a static named constructor - a pointer to this function is given  // to the Library object and paired with a string.  When the string  // is seen in the worldfile, this function is called to create an  // instance of this entitypublic: static CLaserDevice* Creator( LibraryItem *libit, 				      CWorld *world, 				      CEntity *parent )  {    return( new CLaserDevice( libit, world, parent ) );  }      // Startup routine  public: virtual bool Startup();  // Load the entity from the worldfile  public: virtual bool Load(CWorldFile *worldfile, int section);    // Update the device  public: virtual void Update( double sim_time );  // Check to see if the configuration has changed  private: bool CheckConfig();  // Generate scan data  private: bool GenerateScanData(player_laser_data_t *data);  // protected: virtual size_t PutData( void* vdata, size_t len );  // Laser scan rate in samples/sec  private: double scan_rate;  // Minimum resolution in degrees  private: double min_res;    // Maximum range of sample in meters  private: double max_range;  // Laser configuration parameters  private: double scan_res;  private: double scan_min;  private: double scan_max;  private: int scan_count;  private: bool intensity;  // List of beacons detected in last scan  public: LaserBeaconList visible_beacons;#ifdef INCLUDE_RTK2  // Initialise the rtk gui  protected: virtual void RtkStartup();  // Finalise the rtk gui  protected: virtual void RtkShutdown();  // Update the rtk gui  protected: virtual void RtkUpdate();    // For drawing the laser scan & intensity values  private: rtk_fig_t *scan_fig;  private: rtk_fig_t *intensity_fig;#endif    //#ifdef USE_GNOME2  // cache the data between updates in this buffer. we compare the  // range readings to see if we need to re-render the range polygon  //player_laser_data_t last_data;  //#endif};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -