00001 // ---------------------------------------------------------------------------- 00002 // 00003 // $Id$ 00004 // 00005 // Copyright 2008, 2009, 2010, 2011, 2012 Antonio Franchi and Paolo Stegagno 00006 // 00007 // This file is part of MIP. 00008 // 00009 // MIP is free software: you can redistribute it and/or modify 00010 // it under the terms of the GNU General Public License as published by 00011 // the Free Software Foundation, either version 3 of the License, or 00012 // (at your option) any later version. 00013 // 00014 // MIP is distributed in the hope that it will be useful, 00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 // GNU General Public License for more details. 00018 // 00019 // You should have received a copy of the GNU General Public License 00020 // along with MIP. If not, see <http://www.gnu.org/licenses/>. 00021 // 00022 // Contact info: antonio.franchi@tuebingen.mpg.de stegagno@diag.uniroma1.it 00023 // 00024 // ---------------------------------------------------------------------------- 00025 00026 00033 00034 00038 00039 00040 #ifndef __SHARED_MEM_H_ 00041 #define __SHARED_MEM_H_ 00042 00043 #include <MRControlInput.h> 00044 #include <MotionModule.h> 00045 #include <Resource.h> 00046 #include <Trajectory.h> 00047 00048 using namespace MipResources; 00049 00050 namespace MipResources{ 00051 00053 /* @{ */ 00054 00060 class SharedMem : public Resource{ 00061 private: 00062 static const ResourcePlate _plate= SHMEM_RES; 00063 00064 protected: 00065 00066 Time _time; 00067 bool _realTime; 00068 00069 // flag di sicurezza 00070 bool _emergencyLock; 00071 00072 // tutti i flag della stampa 00073 bool _printPose; 00074 bool _printScan; 00075 bool _printFeat; 00076 bool _printFormation; 00077 bool _printFormationDetails; 00078 bool _printTarget; 00079 00080 // tutti i flag delle funzionalità 00081 bool _doMloc; 00082 bool _doAutoNavigation; 00083 bool _doTracking; 00084 bool _newPath; 00085 bool _useDFL; 00086 // tutte le strutture dati 00087 PosiFeatures *myProtrusions; 00088 MotionModuleTState *myProtrusionsTState; 00089 PosiFeatures *myCorners; 00090 MotionModuleTState *myCornersTState; 00091 00092 MRControlInputs _controlInputs; 00093 00094 Time _controlInputTime; 00095 00096 PoseFeatures *formation; 00097 PoseFeatures *estimates; 00098 Pose *target; 00099 00100 Path* path; 00101 TimeLaw* timeLaw; 00102 vector<int>* avoidMutLocIds; 00103 00104 string gaussianMixture; 00105 00106 //TEMPORANEO INSERITO DA MARCO BARBALINARDO 00107 Angle orientation; 00108 //FINE TEMPORANEO INSERITO DA MARCO BARBALINARDO 00109 00110 //FOR VISUAL MUTLOC 00111 vector<Angle> *myCamObs; 00112 MotionModuleTState *myCamObsTState; 00113 00114 // For 3D odometry 00115 Decimal _controlInputLinVelX, _controlInputLinVelY, _controlInputLinVelZ; 00116 Decimal _controlInputAngVelX, _controlInputAngVelY, _controlInputAngVelZ; 00117 // Attitude 00118 Angle _attitudeRoll, _attitudePitch, _yaw; 00119 // Height from sonar 00120 Decimal _height; 00121 vector<Position> measCam; 00122 // Ground truth 00123 map<int,Pose> gtMobRobQuad; 00124 00125 public: 00127 SharedMem(int argc, const char* argv[]); 00128 00130 ResourcePlate getPlate() const { 00131 return _plate; 00132 } 00133 00136 virtual Time getTime(); 00137 00138 protected: 00140 Time setRealTime(); 00141 00143 Time setSimulatedTime(); 00144 }; 00145 00146 /* @} */ 00147 00148 }//end namespace MipResources 00149 00150 #endif 00151 00152 00153 00154