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

Tekkotsu v5.1CVS
Generated Mon May 9 04:58:36 2016 by Doxygen 1.6.3