Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

CalliopeInfo.h

Go to the documentation of this file.
00001 //-*-c++-*-
00002 #ifndef INCLUDED_CalliopeInfo_h
00003 #define INCLUDED_CalliopeInfo_h
00004 
00005 #include "CommonCalliopeInfo.h"
00006 
00007 //! Calliope with no arm, fixed netbook camera, without AX-S1 sensors
00008 namespace CalliopeInfo {
00009   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00010   
00011   using namespace CommonCalliopeInfo;
00012   using CommonCalliopeInfo::PIDJointOffset;
00013   using CommonCalliopeInfo::NumButtons;
00014   using CommonCalliopeInfo::buttonNames;
00015   using CommonCalliopeInfo::NumLEDs;
00016   
00017   using namespace CommonCalliopeInfo::CalliopeInfo;
00018   using CommonCalliopeInfo::CalliopeInfo::NumPIDJoints;
00019   using CommonCalliopeInfo::CalliopeInfo::NumOutputs;
00020   using CommonCalliopeInfo::CalliopeInfo::LEDOffset;
00021   
00022   using namespace WithoutAXS1Sensors;
00023   using WithoutAXS1Sensors::NumSensors;
00024   using WithoutAXS1Sensors::sensorNames;
00025   
00026   using namespace CameraGeneric60;
00027   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + 0 /*grippers*/ + 1 /*camera*/ + 0 /*IR sensors*/ + 0 /*fingers*/;
00028   
00029   //! Names for each of the outputs
00030   const char* const outputNames[NumReferenceFrames+1] = {
00031     "WHEEL:L",
00032     "WHEEL:R",
00033     "LED:Power(Red)",
00034     "LED:Power(Green)",
00035     "LED:Play",
00036     "LED:Advance",
00037     "DesiredMode",
00038     "BaseFrame",
00039     "CameraFrame",
00040     NULL
00041   };
00042   
00043   //! provides polymorphic robot capability detection/mapping
00044   class CalliopeCapabilities : public Capabilities {
00045   public:
00046     //! constructor
00047     CalliopeCapabilities()
00048     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00049     {}
00050   };
00051 
00052   //! allocation declared in RobotInfo.cc
00053   extern const CalliopeCapabilities capabilities;
00054 
00055 }
00056 
00057 //! Calliope with no arm, Sony Playstation camera on pan/tilt, AX-S1 sensors
00058 namespace CalliopeSPInfo {
00059   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00060   
00061   using namespace CommonCalliopeInfo;
00062   using CommonCalliopeInfo::PIDJointOffset;
00063   using CommonCalliopeInfo::NumButtons;
00064   using CommonCalliopeInfo::buttonNames;
00065   using CommonCalliopeInfo::NumLEDs;
00066   
00067   using namespace Calliope0;
00068   using Calliope0::NumPIDJoints;
00069   using Calliope0::NumOutputs;
00070   using Calliope0::LEDOffset;
00071   using Calliope0::HeadTiltOffset;
00072   using Calliope0::IRFrameOffset;
00073   
00074   using namespace WithAXS1Sensors;
00075   using WithAXS1Sensors::NumSensors;
00076   using WithAXS1Sensors::sensorNames;
00077   using WithAXS1Sensors::IRDistOffset;
00078   
00079   using namespace Camera75DOF;
00080   
00081   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + 0 /*grippers*/ + 1 /*camera*/ + 3 /*IR sensors*/ + 0 /*fingers*/;
00082   
00083   //! Names for each of the outputs
00084   const char* const outputNames[NumReferenceFrames+1] = {
00085     "WHEEL:L",
00086     "WHEEL:R",
00087     "NECK:pan",
00088     "NECK:tilt",
00089     "LED:Power(Red)",
00090     "LED:Power(Green)",
00091     "LED:Play",
00092     "LED:Advance",
00093     "DesiredMode",
00094     "BaseFrame",
00095     "CameraFrame",
00096     "LeftIRFrame",
00097     "CenterIRFrame",
00098     "RightIRFrame",
00099     NULL
00100   };
00101 
00102   //! provides polymorphic robot capability detection/mapping
00103   class CalliopeSPCapabilities : public Capabilities {
00104   public:
00105     //! constructor
00106     CalliopeSPCapabilities()
00107     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00108     {
00109       frameToIndex["NECK:nod"] = HeadTiltOffset;
00110       frameToIndex["IRFrame"] = IRFrameOffset; // aliased to the center IR sensor
00111       sensorToIndex["IRDist"]=IRDistOffset; // aliased to the center IR sensor
00112     }
00113   };
00114   //! allocation declared in RobotInfo.cc
00115   extern const CalliopeSPCapabilities capabilities;
00116 }
00117 
00118 //! Calliope with no arm, Logitech camera on pan/tilt, AX-S1 sensors
00119 namespace CalliopeLPInfo {
00120   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00121   
00122   using namespace CommonCalliopeInfo;
00123   using CommonCalliopeInfo::PIDJointOffset;
00124   using CommonCalliopeInfo::NumButtons;
00125   using CommonCalliopeInfo::buttonNames;
00126   using CommonCalliopeInfo::NumLEDs;
00127   
00128   using namespace Calliope0;
00129   using Calliope0::NumPIDJoints;
00130   using Calliope0::NumOutputs;
00131   using Calliope0::LEDOffset;
00132   using Calliope0::HeadTiltOffset;
00133   using Calliope0::IRFrameOffset;
00134   
00135   using namespace WithAXS1Sensors;
00136   using WithAXS1Sensors::NumSensors;
00137   using WithAXS1Sensors::sensorNames;
00138   using WithAXS1Sensors::IRDistOffset;
00139   
00140   using namespace Camera75DOF;
00141   
00142   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + 0 /*grippers*/ + 1 /*camera*/ + 3 /*IR sensors*/ + 0 /*fingers*/;
00143   
00144   //! Names for each of the outputs
00145   const char* const outputNames[NumReferenceFrames+1] = {
00146     "WHEEL:L",
00147     "WHEEL:R",
00148     "NECK:pan",
00149     "NECK:tilt",
00150     "LED:Power(Red)",
00151     "LED:Power(Green)",
00152     "LED:Play",
00153     "LED:Advance",
00154     "DesiredMode",
00155     "BaseFrame",
00156     "CameraFrame",
00157     "LeftIRFrame",
00158     "CenterIRFrame",
00159     "RightIRFrame",
00160     NULL
00161   };
00162   
00163   //! provides polymorphic robot capability detection/mapping
00164   class CalliopeLPCapabilities : public Capabilities {
00165   public:
00166     //! constructor
00167     CalliopeLPCapabilities()
00168     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00169     {
00170       frameToIndex["NECK:nod"] = HeadTiltOffset;
00171       frameToIndex["IRFrame"] = IRFrameOffset; // aliased to the center IR sensor
00172       sensorToIndex["IRDist"]=IRDistOffset; // aliased to the center IR sensor
00173     }
00174   };
00175   //! allocation declared in RobotInfo.cc
00176   extern const CalliopeLPCapabilities capabilities;
00177 }
00178 
00179 //! Calliope with 2DOF arm, Sony Playstation camera on pan/tilt, AX-S1 sensors
00180 namespace Calliope2SPInfo {
00181   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00182   
00183   using namespace CommonCalliopeInfo;
00184   using CommonCalliopeInfo::PIDJointOffset;
00185   using CommonCalliopeInfo::NumButtons;
00186   using CommonCalliopeInfo::buttonNames;
00187   using CommonCalliopeInfo::NumLEDs;
00188   
00189   using namespace Calliope2;
00190   using Calliope2::NumPIDJoints;
00191   using Calliope2::NumOutputs;
00192   using Calliope2::NumArms;
00193   using Calliope2::LEDOffset;
00194   using Calliope2::HeadTiltOffset;
00195   using Calliope2::IRFrameOffset;
00196   
00197   using namespace WithAXS1Sensors;
00198   using WithAXS1Sensors::NumSensors;
00199   using WithAXS1Sensors::sensorNames;
00200   using WithAXS1Sensors::IRDistOffset;
00201   
00202   using namespace Camera75DOF;
00203   
00204   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + NumArms /*grippers*/ + 1 /*camera*/ + 3 /*IR sensors*/ + 0 /*fingers*/;
00205 
00206   //! Names for each of the outputs
00207   const char* const outputNames[NumReferenceFrames+1] = {
00208     "WHEEL:L",
00209     "WHEEL:R",
00210     "NECK:pan",
00211     "NECK:tilt",
00212     "ARM:base",
00213     "ARM:elbow",
00214     "ARM:gripper",
00215     "LED:Power(Red)",
00216     "LED:Power(Green)",
00217     "LED:Play",
00218     "LED:Advance",
00219     "DesiredMode",
00220     "BaseFrame",
00221     "GripperFrame",
00222     "CameraFrame",
00223     "LeftIRFrame",
00224     "CenterIRFrame",
00225     "RightIRFrame",
00226     NULL
00227   };
00228   
00229   //! provides polymorphic robot capability detection/mapping
00230   class Calliope2SPCapabilities : public Capabilities {
00231   public:
00232     //! constructor
00233     Calliope2SPCapabilities()
00234     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00235     {
00236       frameToIndex["NECK:nod"] = HeadTiltOffset;
00237       frameToIndex["IRFrame"] = IRFrameOffset; // aliased to the center IR sensor
00238       sensorToIndex["IRDist"]=IRDistOffset; // aliased to the center IR sensor
00239     }
00240   };
00241   //! allocation declared in RobotInfo.cc
00242   extern const Calliope2SPCapabilities capabilities;
00243 }
00244 
00245 //! Calliope with 5DOF arm, Sony Playstation camera on pan/tilt, AX-S1 sensors
00246 namespace Calliope5SPInfo {
00247   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00248   
00249   using namespace CommonCalliopeInfo;
00250   using CommonCalliopeInfo::PIDJointOffset;
00251   using CommonCalliopeInfo::NumButtons;
00252   using CommonCalliopeInfo::buttonNames;
00253   using CommonCalliopeInfo::NumLEDs;
00254   
00255   using namespace Calliope5;
00256   using Calliope5::NumPIDJoints;
00257   using Calliope5::NumOutputs;
00258   using Calliope5::NumArms;
00259   using Calliope5::LEDOffset;
00260   using Calliope5::HeadTiltOffset;
00261   
00262   using namespace Calliope5::WithAXS1Sensors;
00263   using Calliope5::WithAXS1Sensors::NumSensors;
00264   using Calliope5::WithAXS1Sensors::sensorNames;
00265   using Calliope5::WithAXS1Sensors::IRDistOffset;
00266   using Calliope5::WithAXS1Sensors::IRFrameOffset;
00267   
00268   using namespace Camera75DOF;
00269   
00270   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + NumArms /*grippers*/ + 1 /*camera*/ + 3 /*IR sensors*/ + 2 /*fingers*/;
00271 
00272   //! Names for each of the outputs
00273   const char* const outputNames[NumReferenceFrames+1] = {
00274     "WHEEL:L",
00275     "WHEEL:R",
00276     "NECK:pan",
00277     "NECK:tilt",
00278     "ARM:base",
00279     "ARM:shoulder",
00280     "ARM:elbow",
00281     "ARM:wrist",
00282     "ARM:wristrot",
00283     "ARM:gripperLeft",
00284     "ARM:gripperRight",
00285     "LED:Power(Red)",
00286     "LED:Power(Green)",
00287     "LED:Play",
00288     "LED:Advance",
00289     "DesiredMode",
00290     "BaseFrame",
00291     "GripperFrame",
00292     "LeftFingerFrame",
00293     "RightFingerFrame",
00294     "CameraFrame",
00295     "LeftIRFrame",
00296     "CenterIRFrame",
00297     "RightIRFrame",
00298     NULL
00299   };
00300   
00301   //! provides polymorphic robot capability detection/mapping
00302   class Calliope5SPCapabilities : public Capabilities {
00303   public:
00304     //! constructor
00305     Calliope5SPCapabilities()
00306     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00307     {
00308       frameToIndex["NECK:nod"] = HeadTiltOffset;
00309       frameToIndex["IRFrame"] = IRFrameOffset; // aliased to the center IR sensor
00310       sensorToIndex["IRDist"]=IRDistOffset; // aliased to the center IR sensor
00311     }
00312   };
00313   //! allocation declared in RobotInfo.cc
00314   extern const Calliope5SPCapabilities capabilities;
00315 }
00316 
00317 //! Calliope with 5DOF arm, Kinect camera on pan/tilt, without AX-S1 sensors
00318 namespace Calliope5KPInfo {
00319   extern const char* const TargetName; //!< the name of the model, to be used for logging and remote GUIs
00320   
00321   using namespace CommonCalliopeInfo;
00322   using CommonCalliopeInfo::PIDJointOffset;
00323   using CommonCalliopeInfo::NumButtons;
00324   using CommonCalliopeInfo::buttonNames;
00325   using CommonCalliopeInfo::NumLEDs;
00326   
00327   using namespace Calliope5;
00328   using Calliope5::NumPIDJoints;
00329   using Calliope5::NumOutputs;
00330   using Calliope5::NumArms;
00331   using Calliope5::LEDOffset;
00332   using Calliope5::HeadTiltOffset;
00333   
00334   using namespace Calliope5::WithoutAXS1Sensors;
00335   using Calliope5::WithoutAXS1Sensors::NumSensors;
00336   using Calliope5::WithoutAXS1Sensors::sensorNames;
00337   
00338   using namespace Camera75DOF;
00339   
00340   const unsigned NumReferenceFrames = NumOutputs + 1 /*base*/ + NumArms /*grippers*/ + 1 /*camera*/ + 0 /*IR sensors*/ + 2 /*fingers*/;
00341 
00342   //! Names for each of the outputs
00343   const char* const outputNames[NumReferenceFrames+1] = {
00344     "WHEEL:L",
00345     "WHEEL:R",
00346     "NECK:pan",
00347     "NECK:tilt",
00348     "ARM:base",
00349     "ARM:shoulder",
00350     "ARM:elbow",
00351     "ARM:wrist",
00352     "ARM:wristrot",
00353     "ARM:gripperLeft",
00354     "ARM:gripperRight",
00355     "LED:Power(Red)",
00356     "LED:Power(Green)",
00357     "LED:Play",
00358     "LED:Advance",
00359     "DesiredMode",
00360     "BaseFrame",
00361     "GripperFrame",
00362     "LeftFingerFrame",
00363     "RightFingerFrame",
00364     "CameraFrame",
00365     NULL
00366   };
00367   
00368   //! provides polymorphic robot capability detection/mapping
00369   class Calliope5KPCapabilities : public Capabilities {
00370   public:
00371     //! constructor
00372     Calliope5KPCapabilities()
00373     : Capabilities(TargetName,NumReferenceFrames,outputNames,NumButtons,buttonNames,NumSensors,sensorNames,PIDJointOffset,NumPIDJoints,LEDOffset,NumLEDs,NumOutputs)
00374     {
00375       frameToIndex["NECK:nod"] = HeadTiltOffset;
00376     }
00377   };
00378   //! allocation declared in RobotInfo.cc
00379   extern const Calliope5KPCapabilities capabilities;
00380 }
00381 
00382 /*! @file
00383  * @brief Defines some capabilities of the Calliope robot, based on the iRobot Create
00384  * @author ejt (Creator)
00385  */
00386 
00387 #ifdef __RI_RAD_FLAG
00388 #  undef RAD
00389 #  undef __RI_RAD_FLAG
00390 #endif
00391 
00392 
00393 #endif

Tekkotsu v5.1CVS
Generated Fri Mar 16 05:26:35 2012 by Doxygen 1.6.3