enki/robots/e-puck/EPuck.h

Go to the documentation of this file.
00001 /*
00002     Enki - a fast 2D robot simulator
00003     Copyright (C) 1999-2006 Stephane Magnenat <stephane at magnenat dot net>
00004     Copyright (C) 2004-2005 Markus Waibel <markus dot waibel at epfl dot ch>
00005     Copyright (c) 2004-2005 Antoine Beyeler <abeyeler at ab-ware dot com>
00006     Copyright (C) 2005-2006 Laboratory of Intelligent Systems, EPFL, Lausanne
00007     Copyright (C) 2006 Laboratory of Robotics Systems, EPFL, Lausanne
00008     See AUTHORS for details
00009 
00010     This program is free software; the authors of any publication 
00011     arising from research using this software are asked to add the 
00012     following reference:
00013     Enki - a fast 2D robot simulator
00014     http://lis.epfl.ch/enki
00015     Stephane Magnenat <stephane at magnenat dot net>,
00016     Markus Waibel <markus dot waibel at epfl dot ch>
00017     Laboratory of Intelligent Systems, EPFL, Lausanne.
00018 
00019     You can redistribute this program and/or modify
00020     it under the terms of the GNU General Public License as published by
00021     the Free Software Foundation; either version 2 of the License, or
00022     (at your option) any later version.
00023 
00024     This program is distributed in the hope that it will be useful,
00025     but WITHOUT ANY WARRANTY; without even the implied warranty of
00026     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00027     GNU General Public License for more details.
00028 
00029     You should have received a copy of the GNU General Public License
00030     along with this program; if not, write to the Free Software
00031     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00032 */
00033 
00034 #ifndef __ENKI_EPUCK_H
00035 #define __ENKI_EPUCK_H
00036 
00037 #include <enki/robots/DifferentialWheeled.h>
00038 #include <enki/interactions/IRSensor.h>
00039 #include <enki/interactions/CircularCam.h>
00040 #include <enki/interactions/Bluetooth.h>
00041 
00046 namespace Enki
00047 {
00049 
00052     class EPuckScannerTurret : public OmniCam
00053     {
00054     public:
00056 
00063         EPuckScannerTurret(Robot *owner, double height, unsigned halfPixelCount);
00064         
00065         virtual void finalize(double dt, World* w);
00066     
00067     public:
00068         std::valarray<double> scan;
00069     };
00070     
00072 
00073     class EPuck : public DifferentialWheeled
00074     {
00075     public:
00077         IRSensor infraredSensor0;
00079         IRSensor infraredSensor1;
00081         IRSensor infraredSensor2;
00083         IRSensor infraredSensor3;
00085         IRSensor infraredSensor4;
00087         IRSensor infraredSensor5;
00089         IRSensor infraredSensor6;
00091         IRSensor infraredSensor7;
00093         CircularCam camera;
00095         EPuckScannerTurret scannerTurret;
00097         Bluetooth* bluetooth;
00098         
00099     public:
00101         enum Capabilities
00102         {
00104             CAPABILITY_NONE = 0,
00106             CAPABILITY_BASIC_SENSORS = 0x1,
00108             CAPABILITY_CAMERA = 0x2,
00110             CAPABILITY_SCANNER_TURRET = 0x3,
00112             CAPABILITY_BLUETOOTH = 0x4
00113         };
00114 
00115     public:
00117         EPuck(unsigned capabilities = CAPABILITY_BASIC_SENSORS);
00119         ~EPuck();
00120         
00122         void setLedRing(bool status);
00123     };
00124 }
00125 
00126 #endif
00127 

Generated on Sun Mar 1 03:10:09 2009 for Enki by  doxygen 1.5.1