00001
00002 #ifndef INCLUDED_QwerkInfo_h
00003 #define INCLUDED_QwerkInfo_h
00004
00005 #include <cmath>
00006 #include <stdlib.h>
00007 #include "CommonInfo.h"
00008 using namespace RobotInfo;
00009
00010
00011 #if defined(TGT_QWERK)
00012 # define TGT_IS_QWERK
00013 # define TGT_HAS_WHEELS 4
00014 # define TGT_HAS_LEDS 10
00015 #endif
00016
00017 namespace QwerkInfo {
00018
00019
00020
00021
00022
00023 extern const char* const TargetName;
00024
00025 const unsigned int FrameTime=15;
00026 const unsigned int NumFrames=1;
00027 const unsigned int SoundBufferTime=32;
00028
00029
00030 const unsigned NumWheels = 4;
00031
00032 const unsigned JointsPerArm = 0;
00033 const unsigned NumArms = 0;
00034 const unsigned NumArmJoints = JointsPerArm*NumArms;
00035
00036 const unsigned JointsPerLeg = 0;
00037 const unsigned NumLegs = 0;
00038 const unsigned NumLegJoints = JointsPerLeg*NumLegs;
00039 const unsigned NumHeadJoints = 0;
00040 const unsigned NumTailJoints = 0;
00041 const unsigned NumMouthJoints = 0;
00042 const unsigned NumEarJoints = 0;
00043 const unsigned NumButtons = 0;
00044 const unsigned NumSensors = 9;
00045 const unsigned NumLEDs = 10;
00046 const unsigned NumFacePanelLEDs = 0;
00047
00048 const unsigned NumPIDJoints = NumWheels + NumArmJoints + NumLegJoints+NumHeadJoints+NumTailJoints+NumMouthJoints;;
00049 const unsigned NumOutputs = NumWheels + 16 + NumLEDs;
00050 const unsigned NumReferenceFrames = NumOutputs + 1 + NumArms + 1;
00051
00052
00053 const float CameraHorizFOV=56.9/180*M_PI;
00054 const float CameraVertFOV=45.2/180*M_PI;
00055 const float CameraFOV=CameraHorizFOV;
00056 const unsigned int CameraResolutionX=320;
00057 const unsigned int CameraResolutionY=240;
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 const unsigned PIDJointOffset = 0;
00070 const unsigned WheelOffset = PIDJointOffset;
00071
00072 const unsigned LEDOffset = PIDJointOffset + NumPIDJoints;
00073
00074 const unsigned BaseFrameOffset = NumOutputs;
00075
00076 enum WheelOffset_t {
00077 LWheelOffset=WheelOffset,
00078 RWheelOffset
00079 };
00080
00081
00082
00083 enum LEDOffset_t { };
00084
00085 typedef unsigned int LEDBitMask_t;
00086
00087 const LEDBitMask_t FaceLEDMask = 0;
00088
00089 const LEDBitMask_t AllLEDMask = (LEDBitMask_t)~0;
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 enum ButtonOffset_t { };
00112
00113
00114 const char* const buttonNames[NumButtons+1] = { NULL };
00115
00116
00117
00118 enum SensorOffset_t { BatteryVoltage };
00119
00120
00121 const char* const sensorNames[NumSensors] = {
00122 "BatteryVoltage",
00123 "AnalogIn0",
00124 "AnalogIn1",
00125 "AnalogIn2",
00126 "AnalogIn3",
00127 "AnalogIn4",
00128 "AnalogIn5",
00129 "AnalogIn6",
00130 "AnalogIn7",
00131 };
00132
00133
00134
00135
00136
00137 const char* const outputNames[NumOutputs] = {
00138 "WHEEL:000",
00139 "WHEEL:001",
00140 "WHEEL:002",
00141 "WHEEL:003",
00142 "SERVO:000",
00143 "SERVO:001",
00144 "SERVO:002",
00145 "SERVO:003",
00146 "SERVO:004",
00147 "SERVO:005",
00148 "SERVO:006",
00149 "SERVO:007",
00150 "SERVO:008",
00151 "SERVO:009",
00152 "SERVO:010",
00153 "SERVO:011",
00154 "SERVO:012",
00155 "SERVO:013",
00156 "SERVO:014",
00157 "SERVO:015",
00158 "LED:00000",
00159 "LED:00001",
00160 "LED:00002",
00161 "LED:00003",
00162 "LED:00004",
00163 "LED:00005",
00164 "LED:00006",
00165 "LED:00007",
00166 "LED:00008",
00167 "LED:00009"
00168 };
00169
00170
00171 extern Capabilities capabilities;
00172
00173
00174 const float DefaultPIDs[NumPIDJoints+1][3] = { {0,0,0} };
00175
00176
00177
00178
00179
00180
00181
00182
00183 const float MaxOutputSpeed[NumOutputs] = {
00184 1e-3,
00185 1e-3,
00186 3.14e-3,
00187 6.28e-3,
00188
00189 0,0,0,0,0,0,0,0,0,0
00190 };
00191
00192 #ifndef RAD
00193
00194 #define RAD(deg) (((deg) * M_PI ) / 180.0)
00195
00196 #define __RI_RAD_FLAG
00197 #endif
00198
00199
00200 const double outputRanges[NumOutputs][2] =
00201 {
00202 { -1 , 1 },
00203 { -1 , 1 },
00204 { RAD(-90) , RAD(90) },
00205 { RAD(-90) , RAD(90) },
00206
00207
00208 {0,1}, {0,1}, {0,1}, {0,1}, {0,1},
00209 {0,1}, {0,1}, {0,1}, {0,1}, {0,1}
00210 };
00211
00212
00213
00214 const double mechanicalLimits[NumOutputs][2] =
00215 {
00216 { -1 , 1 },
00217 { -1 , 1 },
00218 { RAD(-90) , RAD(90) },
00219 { RAD(-90) , RAD(90) },
00220
00221
00222 {0,1}, {0,1}, {0,1}, {0,1}, {0,1},
00223 {0,1}, {0,1}, {0,1}, {0,1}, {0,1}
00224 };
00225
00226 #ifdef __RI_RAD_FLAG
00227 #undef RAD
00228 #undef __RI_RAD_FLAG
00229 #endif
00230 }
00231
00232 #endif