Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

ERS7Info.h File Reference


Detailed Description

Defines RobotInfo namespace for ERS-210 models, gives some information about the robot's capabilities, such as joint counts, offsets, names and PID values.

Author:
ejt (Creator)
Author
ejt
Name
tekkotsu-2_4_1
Revision
1.25
State
Exp
Date
2005/06/01 05:47:49

Definition in file ERS7Info.h.

#include <math.h>
#include <Types.h>
#include "CommonInfo.h"

Include dependency graph for ERS7Info.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  ERS7Info

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 ERS7Info::LEDBitMask_t
 So you can be clear when you're refering to a LED bitmask.
const LEDBitMask_t ERS7Info::HeadColorLEDMask = 1<<(HeadColorLEDOffset-LEDOffset)
 mask corresponding to HeadColorLEDOffset
const LEDBitMask_t ERS7Info::HeadWhiteLEDMask = 1<<(HeadWhiteLEDOffset-LEDOffset)
 mask corresponding to HeadWhiteLEDOffset
const LEDBitMask_t ERS7Info::ModeRedLEDMask = 1<<(ModeRedLEDOffset-LEDOffset)
 mask corresponding to ModeRedLEDOffset
const LEDBitMask_t ERS7Info::ModeGreenLEDMask = 1<<(ModeGreenLEDOffset-LEDOffset)
 mask corresponding to ModeGreenLEDOffset
const LEDBitMask_t ERS7Info::ModeBlueLEDMask = 1<<(ModeBlueLEDOffset-LEDOffset)
 mask corresponding to ModeBlueLEDOffset
const LEDBitMask_t ERS7Info::WirelessLEDMask = 1<<(WirelessLEDOffset-LEDOffset)
 mask corresponding to WirelessLEDOffset
const LEDBitMask_t ERS7Info::FaceLEDPanelMask = 1<<(FaceLEDPanelOffset-LEDOffset)
 mask corresponding to FaceLEDPanelOffset, selects only the first of the panel - shift this to get the others
const LEDBitMask_t ERS7Info::FrBackColorLEDMask = 1<<(FrBackColorLEDOffset-LEDOffset)
 mask corresponding to FrBackColorLEDOffset
const LEDBitMask_t ERS7Info::FrBackWhiteLEDMask = 1<<(FrBackWhiteLEDOffset-LEDOffset)
 mask corresponding to FrBackWhiteLEDOffset
const LEDBitMask_t ERS7Info::MdBackColorLEDMask = 1<<(MdBackColorLEDOffset-LEDOffset)
 mask corresponding to MdBackColorLEDOffset
const LEDBitMask_t ERS7Info::MdBackWhiteLEDMask = 1<<(MdBackWhiteLEDOffset-LEDOffset)
 mask corresponding to MdBackWhiteLEDOffset
const LEDBitMask_t ERS7Info::RrBackColorLEDMask = 1<<(RrBackColorLEDOffset-LEDOffset)
 mask corresponding to RrBackColorLEDOffset
const LEDBitMask_t ERS7Info::RrBackWhiteLEDMask = 1<<(RrBackWhiteLEDOffset-LEDOffset)
 mask corresponding to RrBackWhiteLEDOffset
const LEDBitMask_t ERS7Info::LEDABModeMask = 1<<(LEDABModeOffset-LEDOffset)
 mask corresponding to LEDABModeOffset
const LEDBitMask_t ERS7Info::BotLLEDMask = 1<<(BotLLEDOffset-LEDOffset)
 bottom left
const LEDBitMask_t ERS7Info::BotRLEDMask = 1<<(BotRLEDOffset-LEDOffset)
 bottom right
const LEDBitMask_t ERS7Info::MidLLEDMask = 1<<(MidLLEDOffset-LEDOffset)
 middle left
const LEDBitMask_t ERS7Info::MidRLEDMask = 1<<(MidRLEDOffset-LEDOffset)
 middle right
const LEDBitMask_t ERS7Info::TopLLEDMask = 1<<(TopLLEDOffset-LEDOffset)
 top left
const LEDBitMask_t ERS7Info::TopRLEDMask = 1<<(TopRLEDOffset-LEDOffset)
 top right
const LEDBitMask_t ERS7Info::TopBrLEDMask = 1<<(TopBrLEDOffset-LEDOffset)
 top bar
const LEDBitMask_t ERS7Info::TlRedLEDMask = 1<<(TlRedLEDOffset-LEDOffset)
 red tail light
const LEDBitMask_t ERS7Info::TlBluLEDMask = 1<<(TlBluLEDOffset-LEDOffset)
 blue tail light
const LEDBitMask_t ERS7Info::FaceLEDMask = (FaceLEDPanelMask<<0) | (FaceLEDPanelMask<<1) | (FaceLEDPanelMask<<2) | (FaceLEDPanelMask<<3) | (FaceLEDPanelMask<<4) | (FaceLEDPanelMask<<5) | (FaceLEDPanelMask<<6) | (FaceLEDPanelMask<<7) | (FaceLEDPanelMask<<8) | (FaceLEDPanelMask<<9) | (FaceLEDPanelMask<<10) | (FaceLEDPanelMask<<11) | (FaceLEDPanelMask<<12) | (FaceLEDPanelMask<<13)
 LEDs for the face panel.
const LEDBitMask_t ERS7Info::HeadLEDMask = FaceLEDMask | HeadColorLEDMask | HeadWhiteLEDMask | ModeRedLEDMask | ModeGreenLEDMask | ModeBlueLEDMask | WirelessLEDMask
 LEDs for face (all but back lights).
const LEDBitMask_t ERS7Info::BackLEDMask = FrBackColorLEDMask | FrBackWhiteLEDMask | MdBackColorLEDMask | MdBackWhiteLEDMask | RrBackColorLEDMask | RrBackWhiteLEDMask
 LEDS on the back.
const LEDBitMask_t ERS7Info::TailLEDMask = 0
 LEDs on tail (ERS-7 has none).
const LEDBitMask_t ERS7Info::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  ERS7Info::LegOffset_t { ERS7Info::LFrLegOffset = LegOffset+LFrLegOrder*JointsPerLeg, ERS7Info::RFrLegOffset = LegOffset+RFrLegOrder*JointsPerLeg, ERS7Info::LBkLegOffset = LegOffset+LBkLegOrder*JointsPerLeg, ERS7Info::RBkLegOffset = LegOffset+RBkLegOrder*JointsPerLeg }
 The offsets of the individual legs. More...
const unsigned ERS7Info::PIDJointOffset = 0
 The beginning of the PID Joints.
const unsigned ERS7Info::LegOffset = PIDJointOffset
 the offset of the beginning of the leg joints
const unsigned ERS7Info::HeadOffset = LegOffset+NumLegJoints
 the offset of the beginning of the head joints
const unsigned ERS7Info::TailOffset = HeadOffset+NumHeadJoints
 the offset of the beginning of the tail joints
const unsigned ERS7Info::MouthOffset = TailOffset+NumTailJoints
 the offset of the beginning of the mouth joint
const unsigned ERS7Info::LEDOffset = PIDJointOffset + NumPIDJoints
 the offset of LEDs in WorldState::outputs and MotionCommand functions
const unsigned ERS7Info::BinJointOffset = LEDOffset + NumLEDs
 The beginning of the binary joints.
const unsigned ERS7Info::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. Nor will they be flicked back
const unsigned ERS7Info::BaseFrameOffset = NumOutputs
 Use with kinematics to refer to base reference frame.
const unsigned ERS7Info::PawFrameOffset = BaseFrameOffset+1
 Use with kinematics to refer to paw reference frames (add appropriate LegOrder_t to specify which paw).
const unsigned ERS7Info::CameraFrameOffset = PawFrameOffset+NumLegs
 Use with kinematics to refer to camera reference frame.
const unsigned ERS7Info::NearIRFrameOffset = CameraFrameOffset+1
 Use with kinematics to refer to short-range infrared (distance) sensor reference frame.
const unsigned ERS7Info::FarIRFrameOffset = NearIRFrameOffset+1
 Use with kinematics to refer to long-range infrared (distance) sensor reference frame.
const unsigned ERS7Info::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  ERS7Info::ButtonOffset_t {
  ERS7Info::LFrPawOffset = LFrLegOrder, ERS7Info::RFrPawOffset = RFrLegOrder, ERS7Info::LBkPawOffset = LBkLegOrder, ERS7Info::RBkPawOffset = RBkLegOrder,
  ERS7Info::ChinButOffset = 4, ERS7Info::HeadButOffset, ERS7Info::HeadFrButOffset = HeadButOffset, ERS7Info::FrontBackButOffset,
  ERS7Info::MiddleBackButOffset, ERS7Info::BackButOffset = MiddleBackButOffset, ERS7Info::RearBackButOffset, ERS7Info::WirelessSwOffset
}
 holds offsets to different buttons in WorldState::buttons[] More...
enum  ERS7Info::SensorOffset_t {
  ERS7Info::NearIRDistOffset = 0, ERS7Info::FarIRDistOffset, ERS7Info::ChestIRDistOffset, ERS7Info::BAccelOffset,
  ERS7Info::LAccelOffset, ERS7Info::DAccelOffset, ERS7Info::PowerRemainOffset, ERS7Info::PowerThermoOffset,
  ERS7Info::PowerCapacityOffset, ERS7Info::PowerVoltageOffset, ERS7Info::PowerCurrentOffset
}
 holds offset to different sensor values in WorldState::sensors[] More...
const char *const ERS7Info::buttonNames [NumButtons]
 Provides a string name for each button.
const char *const ERS7Info::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 ERS7Info::JointsPerLeg = 3
 The number of joints per leg.
const unsigned ERS7Info::NumLegs = 4
 The number of legs.
const unsigned ERS7Info::NumLegJoints = JointsPerLeg*NumLegs
 the TOTAL number of joints on ALL legs
const unsigned ERS7Info::NumHeadJoints = 3
 The number of joints in the neck.
const unsigned ERS7Info::NumTailJoints = 2
 The number of joints assigned to the tail.
const unsigned ERS7Info::NumMouthJoints = 1
 the number of joints that control the mouth
const unsigned ERS7Info::NumEarJoints = 2
 The number of joints which control the ears (NOT per ear, is total).
const unsigned ERS7Info::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 ERS7Info::NumSensors = 3+3+5
 3 IR (distance), 3 accel (force), 5 from power, see ERS7Info::SensorOffset_t
const unsigned ERS7Info::NumLEDs = 27
 The number of LEDs which can be controlled.
const unsigned ERS7Info::NumPIDJoints = NumLegJoints+NumHeadJoints+NumTailJoints+NumMouthJoints
 The number of joints which use PID motion - everything except ears.
const unsigned ERS7Info::NumBinJoints = NumEarJoints
 The number of binary joints - just the ears.
const unsigned ERS7Info::NumOutputs = NumPIDJoints + NumBinJoints + NumLEDs
 the total number of outputs
const unsigned ERS7Info::NumReferenceFrames = NumOutputs + 1 + NumLegs + 1 + 3
 for the base, paws (NumLegs), camera, and IR sensors (3) reference frames
const float ERS7Info::CameraHorizFOV = 56.9/180*M_PI
 horizontal field of view (radians)
const float ERS7Info::CameraVertFOV = 45.2/180*M_PI
 vertical field of view (radians)
const float ERS7Info::CameraFOV = CameraHorizFOV
 should be set to maximum of CameraHorizFOV or CameraVertFOV
const unsigned int ERS7Info::CameraResolutionX = 208
 the number of pixels available in the 'full' layer
const unsigned int ERS7Info::CameraResolutionY = 160
 the number of pixels available in the 'full' layer
const bool ERS7Info::IsFastOutput [NumOutputs]
 true for joints which can be updated every 32 ms (all ers-7 joints)
const bool ERS7Info::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 - DOESN'T correspond to ERS7Info::PrimitiveName

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

Defines

#define RAD(deg)   (((deg) * M_PI ) / 180.0)
 Just a little macro for converting degrees to radians.
#define __RI_RAD_FLAG
 a flag so we undef these after we're done - do you have a cleaner solution?

Enumerations

enum  ERS7Info::LEDOffset_t {
  ERS7Info::HeadColorLEDOffset = LEDOffset, ERS7Info::HeadWhiteLEDOffset, ERS7Info::ModeRedLEDOffset, ERS7Info::ModeGreenLEDOffset,
  ERS7Info::ModeBlueLEDOffset, ERS7Info::WirelessLEDOffset, ERS7Info::FaceLEDPanelOffset, ERS7Info::FrBackColorLEDOffset = FaceLEDPanelOffset+14,
  ERS7Info::FrBackWhiteLEDOffset, ERS7Info::MdBackColorLEDOffset, ERS7Info::MdBackWhiteLEDOffset, ERS7Info::RrBackColorLEDOffset,
  ERS7Info::RrBackWhiteLEDOffset, ERS7Info::LEDABModeOffset, ERS7Info::BotLLEDOffset = FaceLEDPanelOffset+0, ERS7Info::BotRLEDOffset = FaceLEDPanelOffset+1,
  ERS7Info::MidLLEDOffset = FaceLEDPanelOffset+2, ERS7Info::MidRLEDOffset = FaceLEDPanelOffset+3, ERS7Info::TopLLEDOffset = FaceLEDPanelOffset+6, ERS7Info::TopRLEDOffset = FaceLEDPanelOffset+7,
  ERS7Info::TopBrLEDOffset = HeadColorLEDOffset, ERS7Info::TlRedLEDOffset = RrBackColorLEDOffset, ERS7Info::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...
enum  ERS7Info::MinMaxRange_t { ERS7Info::MinRange, ERS7Info::MaxRange }
 Defines the indexes to use to access the min and max entries of ERS7Info::outputRanges and ERS7Info::mechanicalLimits. More...

Variables

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


Define Documentation

#define __RI_RAD_FLAG
 

a flag so we undef these after we're done - do you have a cleaner solution?

Definition at line 439 of file ERS7Info.h.

#define RAD deg   )     (((deg) * M_PI ) / 180.0)
 

Just a little macro for converting degrees to radians.

Definition at line 437 of file ERS7Info.h.


Tekkotsu v2.4.1
Generated Tue Aug 16 16:33:15 2005 by Doxygen 1.4.4