Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

ERS7Info Namespace Reference


Detailed Description

Contains information about the ERS-7 Robot, such as number of joints, PID defaults, timing information, etc.

You may be particularly interested in the "Output Offsets" section, which, along with the offsets of the common RobotInfo namespace, allows you to reference any specific joint or LED on the robot.

The "Input Offsets" section gives the index order of the buttons (ButtonOffset_t) and sensors (SensorOffset_t), as well as string names for each for easier debugging (buttonNames, sensorNames)

"Output Types" section provides "meta-information" regarding the capabilities of the robot, such as the number of head joints, or the number of LEDs, etc.

For more information on your robot's specifications, see also DefaultPIDs, MaxOutputSpeed, outputRanges, and mechanicalLimits.

"Outputs" (i.e. Joints, LEDs) are often refered to by index ("offset") value within an array. These values are formed by specifying a section offset, plus a specific offset. Sections are typically general across robot models, whereas the specifics are model-dependent (but can be aliased to provide compatability).

For most joints, the positive direction is "up", and the 0 position yields a forward looking, fully extended standing posture.

It happens that these joints can also be grouped by the type of joint, so there are additionally a few other offsets that can be used in order to loop across a group of joints:

  • PIDJointOffset - NumPIDJoints items, servos using PID control
  • LegOffset - NumLegJoints items, a subset of PID servos corresponding to the leg joints
  • LEDOffset - NumLEDs items
  • BinJointOffset - NumBinJoints items, solenoids, such as the ears (if any) which flip between two positions
  • NumOutputs - total number of outputs available

LEDs are often handled in groups to display patterns. Some functions take an LEDBitMask_t parameter, which allows you to specify a set of several LEDs in a single parameter. For any given LED offset fooLEDOffset, the corresponding bitmask constant is fooLEDMask. Alternatively, you could calculate the bitmask of fooLEDOffset by 1<<(fooLEDOffset-LEDOffset).

See also:
ERS-7 Quick Reference Sheet


LED Bitmasks

Bitmasks for use when specifying combinations of LEDs (see LedEngine ) Note that left/right are robot's point of view

typedef unsigned int LEDBitMask_t
 So you can be clear when you're refering to a LED bitmask.
const LEDBitMask_t HeadColorLEDMask = 1<<(HeadColorLEDOffset-LEDOffset)
 mask corresponding to HeadColorLEDOffset
const LEDBitMask_t HeadWhiteLEDMask = 1<<(HeadWhiteLEDOffset-LEDOffset)
 mask corresponding to HeadWhiteLEDOffset
const LEDBitMask_t ModeRedLEDMask = 1<<(ModeRedLEDOffset-LEDOffset)
 mask corresponding to ModeRedLEDOffset
const LEDBitMask_t ModeGreenLEDMask = 1<<(ModeGreenLEDOffset-LEDOffset)
 mask corresponding to ModeGreenLEDOffset
const LEDBitMask_t ModeBlueLEDMask = 1<<(ModeBlueLEDOffset-LEDOffset)
 mask corresponding to ModeBlueLEDOffset
const LEDBitMask_t WirelessLEDMask = 1<<(WirelessLEDOffset-LEDOffset)
 mask corresponding to WirelessLEDOffset
const LEDBitMask_t FaceLEDPanelMask = 1<<(FaceLEDPanelOffset-LEDOffset)
 mask corresponding to FaceLEDPanelOffset, selects only the first of the panel - shift this to get the others
const LEDBitMask_t FrBackColorLEDMask = 1<<(FrBackColorLEDOffset-LEDOffset)
 mask corresponding to FrBackColorLEDOffset
const LEDBitMask_t FrBackWhiteLEDMask = 1<<(FrBackWhiteLEDOffset-LEDOffset)
 mask corresponding to FrBackWhiteLEDOffset
const LEDBitMask_t MdBackColorLEDMask = 1<<(MdBackColorLEDOffset-LEDOffset)
 mask corresponding to MdBackColorLEDOffset
const LEDBitMask_t MdBackWhiteLEDMask = 1<<(MdBackWhiteLEDOffset-LEDOffset)
 mask corresponding to MdBackWhiteLEDOffset
const LEDBitMask_t RrBackColorLEDMask = 1<<(RrBackColorLEDOffset-LEDOffset)
 mask corresponding to RrBackColorLEDOffset
const LEDBitMask_t RrBackWhiteLEDMask = 1<<(RrBackWhiteLEDOffset-LEDOffset)
 mask corresponding to RrBackWhiteLEDOffset
const LEDBitMask_t LEDABModeMask = 1<<(LEDABModeOffset-LEDOffset)
 mask corresponding to LEDABModeOffset
const LEDBitMask_t BotLLEDMask = 1<<(BotLLEDOffset-LEDOffset)
 bottom left
const LEDBitMask_t BotRLEDMask = 1<<(BotRLEDOffset-LEDOffset)
 bottom right
const LEDBitMask_t MidLLEDMask = 1<<(MidLLEDOffset-LEDOffset)
 middle left
const LEDBitMask_t MidRLEDMask = 1<<(MidRLEDOffset-LEDOffset)
 middle right
const LEDBitMask_t TopLLEDMask = 1<<(TopLLEDOffset-LEDOffset)
 top left
const LEDBitMask_t TopRLEDMask = 1<<(TopRLEDOffset-LEDOffset)
 top right
const LEDBitMask_t TopBrLEDMask = 1<<(TopBrLEDOffset-LEDOffset)
 top bar
const LEDBitMask_t TlRedLEDMask = 1<<(TlRedLEDOffset-LEDOffset)
 red tail light
const LEDBitMask_t TlBluLEDMask = 1<<(TlBluLEDOffset-LEDOffset)
 blue tail light
const LEDBitMask_t FaceLEDMask
 LEDs for the face panel (all FaceLEDPanelMask<<(0:NumFacePanelLEDs-1) entries).
const LEDBitMask_t HeadLEDMask
 LEDs for face (all but back lights).
const LEDBitMask_t BackLEDMask
 LEDS on the back.
const LEDBitMask_t TailLEDMask = 0
 LEDs on tail (ERS-7 has none).
const LEDBitMask_t AllLEDMask = (LEDBitMask_t)~0
 selects all of the leds

Output Offsets

Corresponds to entries in ERS7Info::PrimitiveName, defined at the end of this file

enum  LegOffset_t { LFrLegOffset = LegOffset+LFrLegOrder*JointsPerLeg, RFrLegOffset = LegOffset+RFrLegOrder*JointsPerLeg, LBkLegOffset = LegOffset+LBkLegOrder*JointsPerLeg, RBkLegOffset = LegOffset+RBkLegOrder*JointsPerLeg }
 The offsets of the individual legs, add REKOffset_t value to access specific joint. More...
enum  LEDOffset_t {
  HeadColorLEDOffset = LEDOffset, HeadWhiteLEDOffset, ModeRedLEDOffset, ModeGreenLEDOffset,
  ModeBlueLEDOffset, WirelessLEDOffset, FaceLEDPanelOffset, FrBackColorLEDOffset = FaceLEDPanelOffset+NumFacePanelLEDs,
  FrBackWhiteLEDOffset, MdBackColorLEDOffset, MdBackWhiteLEDOffset, RrBackColorLEDOffset,
  RrBackWhiteLEDOffset, LEDABModeOffset, BotLLEDOffset = FaceLEDPanelOffset+1, BotRLEDOffset = FaceLEDPanelOffset+0,
  MidLLEDOffset = FaceLEDPanelOffset+3, MidRLEDOffset = FaceLEDPanelOffset+2, TopLLEDOffset = FaceLEDPanelOffset+7, TopRLEDOffset = FaceLEDPanelOffset+6,
  TopBrLEDOffset = HeadColorLEDOffset, TlRedLEDOffset = RrBackColorLEDOffset, TlBluLEDOffset = FrBackColorLEDOffset
}
 The offsets of the individual LEDs on the head and tail. Note that left/right are robot's point of view. See also LEDBitMask_t. More...
const unsigned PIDJointOffset = 0
 The beginning of the PID Joints.
const unsigned LegOffset = PIDJointOffset
 the offset of the beginning of the leg joints, NumLegs of JointsPerLeg each, in LegOrder_t order; see LegOffset_t
const unsigned HeadOffset = LegOffset+NumLegJoints
 the offset of the beginning of the head joints, add TPROffset_t to get specific joint
const unsigned TailOffset = HeadOffset+NumHeadJoints
 the offset of the beginning of the tail joints, add TPROffset_t to get specific joint (except RollOffset not available)
const unsigned MouthOffset = TailOffset+NumTailJoints
 the offset of the beginning of the mouth joint, is specific joint
const unsigned LEDOffset = PIDJointOffset + NumPIDJoints
 the offset of LEDs in WorldState::outputs and MotionCommand functions, see LedOffset_t for specific offsets
const unsigned BinJointOffset = LEDOffset + NumLEDs
 The beginning of the binary joints.
const unsigned EarOffset = BinJointOffset
 the offset of the beginning of the ear joints - note that ears aren't sensed. They can be flicked by the environment and you won't know.
const unsigned BaseFrameOffset = NumOutputs
 Use with kinematics to refer to base reference frame.
const unsigned PawFrameOffset = BaseFrameOffset+1
 Use with kinematics to refer to paw reference frames (add appropriate LegOrder_t to specify which paw).
const unsigned CameraFrameOffset = PawFrameOffset+NumLegs
 Use with kinematics to refer to camera reference frame.
const unsigned NearIRFrameOffset = CameraFrameOffset+1
 Use with kinematics to refer to short-range infrared (distance) sensor reference frame.
const unsigned FarIRFrameOffset = NearIRFrameOffset+1
 Use with kinematics to refer to long-range infrared (distance) sensor reference frame.
const unsigned ChestIRFrameOffset = FarIRFrameOffset+1
 Use with kinematics to refer to chest-mounted infrared (distance) sensor reference frame.

Input Offsets

The order in which inputs should be stored

enum  ButtonOffset_t {
  LFrPawOffset = LFrLegOrder, RFrPawOffset = RFrLegOrder, LBkPawOffset = LBkLegOrder, RBkPawOffset = RBkLegOrder,
  ChinButOffset = 4, HeadButOffset, HeadFrButOffset = HeadButOffset, FrontBackButOffset,
  MiddleBackButOffset, BackButOffset = MiddleBackButOffset, RearBackButOffset, WirelessSwOffset
}
 holds offsets to different buttons in WorldState::buttons[] More...
enum  SensorOffset_t {
  NearIRDistOffset = 0, FarIRDistOffset, ChestIRDistOffset, BAccelOffset,
  LAccelOffset, DAccelOffset, PowerRemainOffset, PowerThermoOffset,
  PowerCapacityOffset, PowerVoltageOffset, PowerCurrentOffset
}
 holds offset to different sensor values in WorldState::sensors[] More...
const char *const buttonNames [NumButtons]
 Provides a string name for each button.
const char *const sensorNames [NumSensors]
 Provides a string name for each sensor.

Output Types Information

Right now all binary joints are slow, but perhaps this won't always be the case... hence the IsFast/Slow bitmasks to select which type, in order to be more general

const unsigned JointsPerLeg = 3
 The number of joints per leg.
const unsigned NumLegs = 4
 The number of legs.
const unsigned NumLegJoints = JointsPerLeg*NumLegs
 the TOTAL number of joints on ALL legs
const unsigned NumHeadJoints = 3
 The number of joints in the neck.
const unsigned NumTailJoints = 2
 The number of joints assigned to the tail.
const unsigned NumMouthJoints = 1
 the number of joints that control the mouth
const unsigned NumEarJoints = 2
 The number of joints which control the ears (NOT per ear, is total).
const unsigned NumButtons = 2+4+3+1
 the number of buttons that are available, 2 head, 4 paws, 3 back, 1 underbelly see ERS7Info::ButtonOffset_t
const unsigned NumSensors = 3+3+5
 3 IR (distance), 3 accel (force), 5 from power, see ERS7Info::SensorOffset_t
const unsigned NumLEDs = 27
 The number of LEDs which can be controlled.
const unsigned NumFacePanelLEDs = 14
 The number of face panel LEDs.
const unsigned NumPIDJoints = NumLegJoints+NumHeadJoints+NumTailJoints+NumMouthJoints
 The number of joints which use PID motion - everything except ears.
const unsigned NumBinJoints = NumEarJoints
 The number of binary joints - just the ears.
const unsigned NumOutputs = NumPIDJoints + NumBinJoints + NumLEDs
 the total number of outputs
const unsigned NumReferenceFrames = NumOutputs + 1 + NumLegs + 1 + 3
 for the base, paws (NumLegs), camera, and IR sensors (3) reference frames
const float CameraHorizFOV = 56.9/180*M_PI
 horizontal field of view (radians)
const float CameraVertFOV = 45.2/180*M_PI
 vertical field of view (radians)
const float CameraFOV = CameraHorizFOV
 should be set to maximum of CameraHorizFOV or CameraVertFOV
const unsigned int CameraResolutionX = 208
 the number of pixels available in the 'full' layer
const unsigned int CameraResolutionY = 160
 the number of pixels available in the 'full' layer
const float BallOfFootRadius = 23.433/2
 radius of the ball of the foot
const bool IsFastOutput [NumOutputs]
 true for joints which can be updated every 32 ms (all joints on ERS-7)
const bool IsRealERS7 [NumOutputs]
 we need this so you can tell programmatically which joints are "real" and which are "fake" in a compatability mode

CPC IDs

Values defined by OPEN-R, used to interface with lower level OPEN-R code to read sensors - values don't correspond to order of ERS7Info::PrimitiveName

static const int CPCJointMouth = 0
 Mouth.
static const int CPCSwitchChin = 1
 Chin sensor.
static const int CPCJointNeckNod = 2
 Neck tilt2.
static const int CPCSensorHead = 3
 Head sensor.
static const int CPCSensorNearPSD = 4
 Head distance sensor(near).
static const int CPCSensorFarPSD = 5
 Head distance sensor(far).
static const int CPCJointNeckPan = 6
 Neck pan.
static const int CPCJointNeckTilt = 7
 Neck tilt1.
static const int CPCSwitchLFPaw = 8
 Left fore leg paw sensor.
static const int CPCJointLFKnee = 9
 Left fore legJ3.
static const int CPCJointLFElevator = 10
 Left fore legJ2.
static const int CPCJointLFRotator = 11
 Left fore legJ1.
static const int CPCSwitchLHPaw = 12
 Left hind leg paw sensor.
static const int CPCJointLHKnee = 13
 Left hind legJ3.
static const int CPCJointLHElevator = 14
 Left hind legJ2.
static const int CPCJointLHRotator = 15
 Left hind legJ1.
static const int CPCSwitchRFPaw = 16
 Right fore leg paw sensor.
static const int CPCJointRFKnee = 17
 Right fore legJ3.
static const int CPCJointRFElevator = 18
 Right fore legJ2.
static const int CPCJointRFRotator = 19
 Right fore legJ1.
static const int CPCSwitchRHPaw = 20
 Right hind leg paw sensor.
static const int CPCJointRHKnee = 21
 Right hind legJ3.
static const int CPCJointRHElevator = 22
 Right hind legJ2.
static const int CPCJointRHRotator = 23
 Right hind legJ1.
static const int CPCJointTailTilt = 24
 Tail tilt.
static const int CPCJointTailPan = 25
 Tail pan.
static const int CPCSensorAccelFB = 26
 Acceleration sensor(front-back).
static const int CPCSensorAccelLR = 27
 Acceleration sensor(right-left).
static const int CPCSensorAccelUD = 28
 Acceleration sensor(up-down).
static const int CPCSensorChestPSD = 29
 Chest distance sensor.
static const int CPCSwitchWireless = 30
 Wireless LAN switch.
static const int CPCSensorBackRear = 31
 Back sensor(rear).
static const int CPCSensorBackMiddle = 32
 Back sensor(middle).
static const int CPCSensorBackFront = 33
 Back sensor(front).

Variables

const char *const RobotName = "ERS-7"
 the name of the model, to be used for logging and remote GUIs
const unsigned int FrameTime = 8
 time between frames in the motion system (milliseconds)
const unsigned int NumFrames = 4
 the number of frames per buffer (don't forget also double buffered)
const unsigned int SlowFrameTime = 8
 time between frames for the ears (ERS-7 doesn't seem to have any "slow" joints; this only applied for the ears on the ERS-210)
const unsigned int NumSlowFrames = 4
 the number of frames per buffer being sent to ears (double buffered as well)
const unsigned int SoundBufferTime = 32
 the number of milliseconds per sound buffer... I'm not sure if this can be changed
const unsigned outputNameLen = 9
 The length of the strings used for each of the outputs in outputNames (doesn't include null term).
const char *const outputNames [NumOutputs]
 A name of uniform length for referring to joints - handy for posture files, etc.
const char *const PrimitiveName [NumOutputs]
 the joint identifier strings used to refer to specific joints in OPEN-R (but not needed for others)
const char *const SpeakerLocator = "PRM:/s1-Speaker:S1"
 use to open speaker connection with the system
const char *const CameraLocator = "PRM:/r1/c1/c2/c3/i1-FbkImageSensor:F1"
 use to open camera connection with the system
const float DefaultPIDs [NumPIDJoints][3]
 This table holds the default PID values for each joint. see PIDMC.
const unsigned char DefaultPIDShifts [3] = {0x0E, 0x02-1, 0x0F-3}
 These will control the shift values given to the system. see PIDMC.
const float MaxOutputSpeed [NumOutputs]
 These values are Sony's recommended maximum joint velocities, in rad/ms.
const double outputRanges [NumOutputs][2]
 This table holds the software limits of each of the outputs, first index is the output offset, second index is MinMaxRange_t (i.e. MinRange or MaxRange).
const double mechanicalLimits [NumOutputs][2]
 This table holds the mechanical limits of each of the outputs, first index is the output offset, second index is MinMaxRange_t (i.e. MinRange or MaxRange).


Enumeration Type Documentation

The offsets of the individual legs, add REKOffset_t value to access specific joint.

Enumerator:
LFrLegOffset  beginning of left front leg's joints
RFrLegOffset  beginning of right front leg's joints
LBkLegOffset  beginning of left back leg's joints
RBkLegOffset  beginning of right back leg's joints

Definition at line 139 of file ERS7Info.h.

The offsets of the individual LEDs on the head and tail. Note that left/right are robot's point of view. See also LEDBitMask_t.

Enumerator:
HeadColorLEDOffset  the orange LED immediately above the head button (copositioned with HeadWhiteLEDOffset)
HeadWhiteLEDOffset  the LED immediately above the head button (copositioned with HeadColorLEDOffset)
ModeRedLEDOffset  controls both of the red LEDs above the ears (copositioned with ModeGreenLEDOffset and ModeBlueLEDOffset)
ModeGreenLEDOffset  controls both of the green LEDs above the ears (copositioned with ModeRedLEDOffset and ModeBlueLEDOffset)
ModeBlueLEDOffset  controls both of the blue LEDs above the ears (copositioned with ModeRedLEDOffset and ModeGreenLEDOffset)
WirelessLEDOffset  controls the small rectangular blue LED on the back of the head
FaceLEDPanelOffset  the first LED in the panel - add 0 up to (not including) NumFacePanelLEDs to this to access specific face panel LEDs, see LedEngine for diagram of placement
FrBackColorLEDOffset  blue/purple LED on back, closest to head (copositioned with FrBackWhiteLEDOffset)
FrBackWhiteLEDOffset  white LED on back, closest to head (copositioned with FrBackColorLEDOffset)
MdBackColorLEDOffset  orange LED on back, in between FrBackColorLEDOffset and RrBackColorLEDOffset (copositioned with MdBackWhiteLEDOffset)
MdBackWhiteLEDOffset  white LED on back, in between FrBackWhiteLEDOffset and RrBackWhiteLEDOffset (copositioned with MdBackColorLEDOffset)
RrBackColorLEDOffset  red LED on back, farthest from head (copositioned with RrBackWhiteLEDOffset)
RrBackWhiteLEDOffset  white LED on back, farthest from head (copositioned with RrBackColorLEDOffset)
BotLLEDOffset  aliases for backward compatability with ERS-210 (use mode A); bottom left of face panel
BotRLEDOffset  aliases for backward compatability with ERS-210 (use mode A); bottom right of face panel
MidLLEDOffset  aliases for backward compatability with ERS-210 (use mode A); middle left of face panel
MidRLEDOffset  aliases for backward compatability with ERS-210 (use mode A); middle right of face panel
TopLLEDOffset  aliases for backward compatability with ERS-210 (use mode A); top left of face panel
TopRLEDOffset  aliases for backward compatability with ERS-210(use mode A); top right of face panel
TopBrLEDOffset  aliases for backward compatability with ERS-210 (use mode A); top bar (HeadColorLEDOffset)
TlRedLEDOffset  aliases for backward compatability with ERS-210; red tail light (RrBackColorLEDOffset)
TlBluLEDOffset  aliases for backward compatability with ERS-210; blue tail light (FrBackColorLEDOffset)

Definition at line 148 of file ERS7Info.h.

holds offsets to different buttons in WorldState::buttons[]

Should be a straight mapping to the ButtonSourceIDs

Note that the chest (power) button is not a normal button. It kills power to the motors at a hardware level, and isn't sensed in the normal way. If you want to know when it is pressed (and you are about to shut down) see PowerSourceID::PauseSID.

See also:
WorldState::buttons

ButtonSourceID_t

Definition at line 248 of file ERS7Info.h.

holds offset to different sensor values in WorldState::sensors[]

See also:
WorldState::sensors[]
Enumerator:
NearIRDistOffset  in millimeters, ranges from 50 to 500
FarIRDistOffset  in millimeters, ranges from 200 to 1500
ChestIRDistOffset  in millimeters, ranges from 100 to 900
BAccelOffset  backward acceleration, in $m/s^2$, negative if sitting on butt (positive for faceplant)
LAccelOffset  acceleration to the robot's left, in $m/s^2$, negative if lying on robot's left side
DAccelOffset  downward acceleration, in $m/s^2$, negative if standing up... be careful about the signs on all of these...
PowerRemainOffset  percentage, 0-1
PowerThermoOffset  degrees Celcius
PowerCapacityOffset  milli-amp hours
PowerVoltageOffset  volts
PowerCurrentOffset  milli-amp negative values (maybe positive while charging?)

Definition at line 273 of file ERS7Info.h.


Variable Documentation

Initial value:

LEDs for face (all but back lights).

Definition at line 212 of file ERS7Info.h.

const char* const ERS7Info::buttonNames[NumButtons]

Initial value:

 {
    "LFrPaw","RFrPaw","LBkPaw","RBkPaw",
    "ChinBut","HeadBut",
    "FrontBackBut","MiddleBackBut","RearBackBut",
    "WirelessSw"
  }
Provides a string name for each button.

Definition at line 264 of file ERS7Info.h.

const char* const ERS7Info::sensorNames[NumSensors]

Initial value:

 {
    "NearIRDist","FarIRDist","ChestIRDist",
    "BAccel","LAccel","DAccel",
    "PowerRemain","PowerThermo","PowerCapacity","PowerVoltage","PowerCurrent"
  }
Provides a string name for each sensor.

Definition at line 288 of file ERS7Info.h.

const char* const ERS7Info::outputNames[NumOutputs]

Initial value:

 {
    "LFr:rotor","LFr:elvtr","LFr:knee~",
    "RFr:rotor","RFr:elvtr","RFr:knee~",
    "LBk:rotor","LBk:elvtr","LBk:knee~",
    "RBk:rotor","RBk:elvtr","RBk:knee~",
    
    "NECK:tilt","NECK:pan~","NECK:nod~",
    
    "TAIL:tilt",  "TAIL:pan~",
    
    "MOUTH~~~~",
    
    "LED:headC","LED:headW",
    "LED:modeR","LED:modeG",
    "LED:modeB","LED:wless",
    "LED:faceA","LED:faceB","LED:faceC","LED:faceD","LED:faceE","LED:faceF","LED:faceG",
    "LED:faceH","LED:faceI","LED:faceJ","LED:faceK","LED:faceL","LED:faceM","LED:faceN",
    "LED:bkFrC","LED:bkFrW",
    "LED:bkMdC","LED:bkMdW",
    "LED:bkRrC","LED:bkRrW",
    "LED:ABmod",
    
    "EAR:left~","EAR:right"
  }
A name of uniform length for referring to joints - handy for posture files, etc.

Definition at line 300 of file ERS7Info.h.

const char* const ERS7Info::PrimitiveName[NumOutputs]

Initial value:

 {
    "PRM:/r2/c1-Joint2:21",       
    "PRM:/r2/c1/c2-Joint2:22",    
    "PRM:/r2/c1/c2/c3-Joint2:23", 
    "PRM:/r4/c1-Joint2:41",       
    "PRM:/r4/c1/c2-Joint2:42",    
    "PRM:/r4/c1/c2/c3-Joint2:43", 
        
    "PRM:/r3/c1-Joint2:31",       
    "PRM:/r3/c1/c2-Joint2:32",    
    "PRM:/r3/c1/c2/c3-Joint2:33", 
    "PRM:/r5/c1-Joint2:51",       
    "PRM:/r5/c1/c2-Joint2:52",    
    "PRM:/r5/c1/c2/c3-Joint2:53", 
      
    "PRM:/r1/c1-Joint2:11",       
    "PRM:/r1/c1/c2-Joint2:12",    
    "PRM:/r1/c1/c2/c3-Joint2:13", 
        
    "PRM:/r6/c1-Joint2:61",       
    "PRM:/r6/c2-Joint2:62",       
        
    "PRM:/r1/c1/c2/c3/c4-Joint2:14", 
        
    "PRM:/r1/c1/c2/c3/l1-LED2:l1", 
    "PRM:/r1/c1/c2/c3/l2-LED2:l2", 
    "PRM:/r1/c1/c2/c3/l3-LED2:l3", 
    "PRM:/r1/c1/c2/c3/l4-LED2:l4", 
    "PRM:/r1/c1/c2/c3/l5-LED2:l5", 
    "PRM:/r1/c1/c2/c3/l6-LED2:l6", 
    
    "PRM:/r1/c1/c2/c3/la-LED3:la", 
    "PRM:/r1/c1/c2/c3/lb-LED3:lb",    
    "PRM:/r1/c1/c2/c3/lc-LED3:lc", 
    "PRM:/r1/c1/c2/c3/ld-LED3:ld", 
    "PRM:/r1/c1/c2/c3/le-LED3:le",    
    "PRM:/r1/c1/c2/c3/lf-LED3:lf", 
    "PRM:/r1/c1/c2/c3/lg-LED3:lg", 
    "PRM:/r1/c1/c2/c3/lh-LED3:lh", 
    "PRM:/r1/c1/c2/c3/li-LED3:li", 
    "PRM:/r1/c1/c2/c3/lj-LED3:lj", 
    "PRM:/r1/c1/c2/c3/lk-LED3:lk", 
    "PRM:/r1/c1/c2/c3/ll-LED3:ll", 
    "PRM:/r1/c1/c2/c3/lm-LED3:lm", 
    "PRM:/r1/c1/c2/c3/ln-LED3:ln", 

    "PRM:/lu-LED3:lu", 
    "PRM:/lv-LED3:lv", 
    "PRM:/lw-LED3:lw", 
    "PRM:/lx-LED3:lx", 
    "PRM:/ly-LED3:ly", 
    "PRM:/lz-LED3:lz", 
    "",  
      
    "PRM:/r1/c1/c2/c3/e5-Joint4:15", 
    "PRM:/r1/c1/c2/c3/e6-Joint4:16" 
  }
the joint identifier strings used to refer to specific joints in OPEN-R (but not needed for others)

The offset consts defined in this file correspond to this table and will make life easier if you feel the need to reorder things, but they can't be arbitrarily reordered...
In particular, assumptions are made that the pid joints will be in slots 0-numPIDJoints and that the fast outputs (ie NOT ears) will be in slots 0-NumFastOutputs
There may be other assumptions not noted here!!!

Note:
These entries DON'T correspond to the CPC index numbers (this only lists joints for identifying joints to Aperios, CPCs are for identifying sensors from Aperios

Definition at line 334 of file ERS7Info.h.

Initial value:

    {
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x14/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x14/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x14/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x14/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },
      { 0x1C/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x01/(double)(1<<(16-0xF)) },

      { 0x0A/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x02/(double)(1<<(16-0xF)) },
      { 0x08/(double)(1<<(16-0xE)), 0x02/(double)(1<<(16-0x2)), 0x04/(double)(1<<(16-0xF)) },
      { 0x08/(double)(1<<(16-0xE)), 0x08/(double)(1<<(16-0x2)), 0x02/(double)(1<<(16-0xF)) }, 

      { 0x0A/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x04/(double)(1<<(16-0xF)) },
      { 0x0A/(double)(1<<(16-0xE)), 0x04/(double)(1<<(16-0x2)), 0x04/(double)(1<<(16-0xF)) },

      { 0x08/(double)(1<<(16-0xE)), 0x00/(double)(1<<(16-0x2)), 0x04/(double)(1<<(16-0xF)) }
    }
This table holds the default PID values for each joint. see PIDMC.

Definition at line 399 of file ERS7Info.h.

const unsigned char ERS7Info::DefaultPIDShifts[3] = {0x0E, 0x02-1, 0x0F-3}

These will control the shift values given to the system. see PIDMC.

These are modified from the default values to give better range of values to the gains

Definition at line 426 of file ERS7Info.h.

Initial value:

 {
    4.86510529e-3, 
    5.27962099e-3,
    5.27962099e-3,
    4.86510529e-3,
    5.27962099e-3,
    5.27962099e-3,
    4.86510529e-3,
    5.27962099e-3,
    5.27962099e-3,
    4.86510529e-3,
    5.27962099e-3,
    5.27962099e-3,
  
    3.18522588e-3, 
    1.00574598e-2,
    5.78140315e-3,
  
    1.51625479e-2, 
    1.51625479e-2,
  
    1.01447263e-2, 
    
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
    
    0,0                
  }
These values are Sony's recommended maximum joint velocities, in rad/ms.

a value <= 0 means infinite speed (e.g. LEDs)

These limits are not enforced by the framework. They are simply available for you to use as you see fit. HeadPointerMC and PostureMC are primary examples of included classes which do respect these values (although they can be overridden)

These values were obtained from the administrators of the Sony OPEN-R BBS

Definition at line 435 of file ERS7Info.h.

Initial value:

    {
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-130),RAD(115) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-130),RAD(115) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 

      { RAD(-75),RAD(0) },{ RAD(-88),RAD(88) },{ RAD(-15),RAD(45) }, 
        
      { RAD(5),RAD(60) },{ RAD(-45),RAD(45) }, 

      { RAD(-55),RAD(-3) }, 

      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1}, 
    
      {0,1},{0,1} 
    }
This table holds the software limits of each of the outputs, first index is the output offset, second index is MinMaxRange_t (i.e. MinRange or MaxRange).

Definition at line 471 of file ERS7Info.h.

Initial value:

    {
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 
      { RAD(-115),RAD(130) },{ RAD(-10),RAD(88) },{ RAD(-25),RAD(122) }, 

      { RAD(-75),RAD(0) },{ RAD(-88),RAD(88) },{ RAD(-15),RAD(45) }, 
        
      { RAD(5),RAD(60) },{ RAD(-45),RAD(45) }, 

      { RAD(-55),RAD(-3) }, 

      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1},{0,1},{0,1},{0,1},{0,1},{0,1}, 
      {0,1}, 

      {0,1},{0,1} 
    }
This table holds the mechanical limits of each of the outputs, first index is the output offset, second index is MinMaxRange_t (i.e. MinRange or MaxRange).

Same as outputLimits, don't know actual values because they were never specified by Sony

Definition at line 494 of file ERS7Info.h.


Tekkotsu v3.0
Generated Fri May 11 20:09:05 2007 by Doxygen 1.4.7