Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

HandEyeZInfo Namespace Reference

Declares configuration of the modified HandEye planar arm robot, such as number of joints, LEDs, etc. More...

Classes

class  HandEyeZCapabilities
 provides polymorphic robot capability detection/mapping More...

Variables

const char *const TargetName = "HandEyeZ"
 the name of the model, to be used for logging and remote GUIs
const unsigned int FrameTime = 32
 time between frames in the motion system (milliseconds)
const unsigned int NumFrames = 1
 the number of frames per buffer (don't forget also double buffered)
const unsigned int SoundBufferTime = 32
 the number of milliseconds per sound buffer... I'm not sure if this can be changed
const fmat::Column< 3 > AgentBoundingBoxBaseFrameOffset = fmat::pack(0,0,0)
 Offset needed so that the centroid of the robot is correct relative to the bounding box.
const fmat::Column< 3 > AgentBoundingBoxHalfDims = fmat::pack(304.8/2, 304.8/2, 0)
 Half of the length, width, and height of the robot.
const char *const outputNames [NumReferenceFrames+1]
 Names for each of the outputs.
const HandEyeZCapabilities capabilities
 allocation declared in RobotInfo.cc
const float DefaultPIDs [NumPIDJoints][5]
 Dynamixel servos don't use PID control. Instead, these values indicate compliance slope (P), punch (add to P*error), compliance margin (min error to start applying torque) (see ServoParam_t).
const float MaxOutputSpeed [NumOutputs]
 These values are our recommended maximum joint velocities, in rad/ms.
const float 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 float 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).
Output Types Information

const unsigned NumWheels = 0
 The number of joints per leg.
const unsigned FingerJointsPerArm = 2
 The number of joints per leg.
const unsigned JointsPerArm = 5
 The number of joints per leg.
const unsigned NumArms = 1
 The number of joints per leg.
const unsigned NumArmJoints = JointsPerArm*NumArms
 The number of joints per leg.
const unsigned JointsPerLeg = 0
 The number of joints per leg.
const unsigned NumLegs = 0
 The number of legs.
const unsigned NumLegJoints = JointsPerLeg*NumLegs
 the TOTAL number of joints on ALL legs
const unsigned NumHeadJoints = 2
 The number of joints in the pantilt.
const unsigned NumTailJoints = 0
 The number of joints assigned to the tail.
const unsigned NumMouthJoints = 0
 the number of joints that control the mouth
const unsigned NumEarJoints = 0
 The number of joints which control the ears (NOT per ear, is total).
const unsigned NumButtons = 3
 the number of buttons that are available
const unsigned NumSensors = 2
 the number of sensors available
const unsigned NumFacePanelLEDs = 0
 The number of face panel LEDs.
const unsigned NumLEDs = 7
 The number of LEDs which can be controlled (one per dynamixel servo).
const unsigned NumPIDJoints = NumWheels + NumArmJoints + NumLegJoints+NumHeadJoints+NumTailJoints+NumMouthJoints
 The number of joints per leg.
const unsigned NumOutputs = NumWheels + NumPIDJoints + NumLEDs
 servo pins
const unsigned NumReferenceFrames = NumOutputs + 1 + NumArms + 1
 for the base, gripper (* NumArms), and camera reference frames

Output Offsets

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



enum  ArmOffset_t {
  ArmShoulderOffset = ArmOffset, ArmElbowOffset, WristOffset, WristYawOffset = WristOffset,
  LeftGripperOffset, RightGripperOffset
}
 

These are 'absolute' offsets for the arm joints.

More...
enum  TPROffset_t { PanOffset = 0, TiltOffset }
 

The offsets of appendages with pan (heading), tilt (elevation), note that this should be added to HeadOffset, otherwise use HeadOffset_t (HeadPanOffset and HeadTiltOffset).

More...
enum  HeadOffset_t { HeadPanOffset = HeadOffset, HeadTiltOffset }
 

These are 'absolute' offsets for the neck joints, don't need to add to HeadOffset like TPROffset_t values do.

More...
enum  LEDOffset_t {
  ArmShoulderLEDOffset = LEDOffset, ArmElbowLEDOffset, ArmWristLEDOffset, ArmLeftGripperLEDOffset,
  ArmRightGripperLEDOffset, NeckPanLEDOffset, NeckTiltLEDOffset
}
 

The offsets of the individual LEDs.

More...
typedef unsigned int LEDBitMask_t
 So you can be clear when you're refering to a LED bitmask.
const unsigned PIDJointOffset = 0
 The beginning of the PID Joints.
const unsigned ArmOffset = PIDJointOffset
 beginning of arm joints, don't add anything, just use ArmOffset_t entries directly
const unsigned HeadOffset = ArmOffset+NumArmJoints
 the offset of the beginning of the head joints, add TPROffset_t to get 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 BaseFrameOffset = NumOutputs
 Use with kinematics to refer to base reference frame.
const unsigned GripperFrameOffset = BaseFrameOffset+1
 Use with kinematics to refer to paw reference frames (add appropriate LegOrder_t to specify which paw).
const unsigned CameraFrameOffset = GripperFrameOffset+NumArms
 Use with kinematics to refer to camera reference frame.
const LEDBitMask_t ArmShoulderLEDMask = 1 << (ArmShoulderLEDOffset-LEDOffset)
 Mask corresponding to ArmShoulderLEDOffset.
const LEDBitMask_t ArmElbowLEDMask = 1 << (ArmElbowLEDOffset-LEDOffset)
 Mask corresponding to ArmElbowLEDOffset.
const LEDBitMask_t ArmWristLEDMask = 1 << (ArmWristLEDOffset-LEDOffset)
 Mask corresponding to ArmWristLEDOffset.
const LEDBitMask_t ArmLeftGripperLEDMask = 1 << (ArmLeftGripperLEDOffset-LEDOffset)
 Mask corresponding to ArmLeftGripperLEDOffset.
const LEDBitMask_t ArmRightGripperLEDMask = 1 << (ArmRightGripperLEDOffset-LEDOffset)
 Mask corresponding to ArmRightGripperLEDOffset.
const LEDBitMask_t NeckPanLEDMask = 1 << (NeckPanLEDOffset-LEDOffset)
 Mask corresponding to NeckPanLEDOffset.
const LEDBitMask_t NeckTiltLEDMask = 1 << (NeckTiltLEDOffset-LEDOffset)
 Mask corresponding to NeckTiltLEDOffset.
const LEDBitMask_t FaceLEDMask = 0
 LEDs for the face panel (all FaceLEDPanelMask<<(0:NumFacePanelLEDs-1) entries).
const LEDBitMask_t AllLEDMask = (LEDBitMask_t)~0
 selects all of the leds

Input Offsets

The order in which inputs should be stored



enum  ButtonOffset_t { GreenButOffset, RedButOffset, YellowButOffset }
 

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

More...
enum  SensorOffset_t { PowerThermoOffset, PowerVoltageOffset }
 

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

More...
const char *const buttonNames [NumButtons+1] = { "GreenBut", "RedBut", "YellowBut", NULL }
 Provides a string name for each button.
const char *const sensorNames [NumSensors+1]
 Provides a string name for each sensor.

Detailed Description

Declares configuration of the modified HandEye planar arm robot, such as number of joints, LEDs, etc.


Typedef Documentation

typedef unsigned int HandEyeZInfo::LEDBitMask_t

So you can be clear when you're refering to a LED bitmask.

Definition at line 121 of file HandEyeZInfo.h.


Enumeration Type Documentation

These are 'absolute' offsets for the arm joints.

Enumerator:
ArmShoulderOffset 
ArmElbowOffset 
WristOffset 
WristYawOffset 
LeftGripperOffset 
RightGripperOffset 

Definition at line 86 of file HandEyeZInfo.h.

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

Should be a straight mapping to the ButtonSourceIDs

See also:
WorldState::buttons
ButtonSourceID_t
Enumerator:
GreenButOffset 
RedButOffset 
YellowButOffset 

Definition at line 157 of file HandEyeZInfo.h.

These are 'absolute' offsets for the neck joints, don't need to add to HeadOffset like TPROffset_t values do.

Enumerator:
HeadPanOffset 

pan/heading (horizontal)

HeadTiltOffset 

tilt/elevation (vertical)

Definition at line 104 of file HandEyeZInfo.h.

The offsets of the individual LEDs.

Enumerator:
ArmShoulderLEDOffset 

Small led on the shoulder servo.

ArmElbowLEDOffset 

Small LED on the elbow servo.

ArmWristLEDOffset 

Small LED on the wrist servo.

ArmLeftGripperLEDOffset 

Small LED on the left gripper.

ArmRightGripperLEDOffset 

Small LED on the right gripper.

NeckPanLEDOffset 

Small LED on the neck pan servo.

NeckTiltLEDOffset 

Small LED on the neck tilt servo.

Definition at line 111 of file HandEyeZInfo.h.

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

See also:
WorldState::sensors[]
Enumerator:
PowerThermoOffset 

degrees Celcius

PowerVoltageOffset 

volts

Definition at line 164 of file HandEyeZInfo.h.

The offsets of appendages with pan (heading), tilt (elevation), note that this should be added to HeadOffset, otherwise use HeadOffset_t (HeadPanOffset and HeadTiltOffset).

Enumerator:
PanOffset 

pan/heading (horizontal)

TiltOffset 

tilt/elevation (vertical)

Definition at line 98 of file HandEyeZInfo.h.


Variable Documentation

Offset needed so that the centroid of the robot is correct relative to the bounding box.

Definition at line 139 of file HandEyeZInfo.h.

const fmat::Column<3> HandEyeZInfo::AgentBoundingBoxHalfDims = fmat::pack(304.8/2, 304.8/2, 0)

Half of the length, width, and height of the robot.

Definition at line 142 of file HandEyeZInfo.h.

selects all of the leds

Definition at line 134 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::ArmElbowLEDMask = 1 << (ArmElbowLEDOffset-LEDOffset)

Mask corresponding to ArmElbowLEDOffset.

Definition at line 123 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::ArmLeftGripperLEDMask = 1 << (ArmLeftGripperLEDOffset-LEDOffset)

Mask corresponding to ArmLeftGripperLEDOffset.

Definition at line 125 of file HandEyeZInfo.h.

beginning of arm joints, don't add anything, just use ArmOffset_t entries directly

Definition at line 75 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::ArmRightGripperLEDMask = 1 << (ArmRightGripperLEDOffset-LEDOffset)

Mask corresponding to ArmRightGripperLEDOffset.

Definition at line 126 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::ArmShoulderLEDMask = 1 << (ArmShoulderLEDOffset-LEDOffset)

Mask corresponding to ArmShoulderLEDOffset.

Definition at line 122 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::ArmWristLEDMask = 1 << (ArmWristLEDOffset-LEDOffset)

Mask corresponding to ArmWristLEDOffset.

Definition at line 124 of file HandEyeZInfo.h.

Use with kinematics to refer to base reference frame.

Definition at line 81 of file HandEyeZInfo.h.

const char* const HandEyeZInfo::buttonNames[NumButtons+1] = { "GreenBut", "RedBut", "YellowBut", NULL }

Provides a string name for each button.

Definition at line 160 of file HandEyeZInfo.h.

Use with kinematics to refer to camera reference frame.

Definition at line 83 of file HandEyeZInfo.h.

allocation declared in RobotInfo.cc

Definition at line 134 of file RobotInfo.cc.

Initial value:
 {
    {32,32,0}, {32,32,0}, {32,32,0}, {32,32,0}, {32,32,0},
    {32,32,0}, {32,32,0},
  }

Dynamixel servos don't use PID control. Instead, these values indicate compliance slope (P), punch (add to P*error), compliance margin (min error to start applying torque) (see ServoParam_t).

I believe the torque calculation goes something like: torque = (error<compliance) ? 0 : punch + P*error Dynamixel servos allow different values to be supplied for CW vs. CCW motion, but we just use the same value for each

Definition at line 215 of file HandEyeZInfo.h.

LEDs for the face panel (all FaceLEDPanelMask<<(0:NumFacePanelLEDs-1) entries).

Definition at line 131 of file HandEyeZInfo.h.

The number of joints per leg.

Definition at line 38 of file HandEyeZInfo.h.

const unsigned int HandEyeZInfo::FrameTime = 32

time between frames in the motion system (milliseconds)

Definition at line 31 of file HandEyeZInfo.h.

Use with kinematics to refer to paw reference frames (add appropriate LegOrder_t to specify which paw).

Definition at line 82 of file HandEyeZInfo.h.

the offset of the beginning of the head joints, add TPROffset_t to get specific joint

Definition at line 77 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::JointsPerArm = 5

The number of joints per leg.

Definition at line 39 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::JointsPerLeg = 0

The number of joints per leg.

Definition at line 43 of file HandEyeZInfo.h.

the offset of LEDs in WorldState::outputs and MotionCommand functions, see LedOffset_t for specific offsets

Definition at line 79 of file HandEyeZInfo.h.

Initial value:
 {
    
    0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.8f,
    
    0,0,0,0,0,0,0,
  }

These values are our 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)

Definition at line 226 of file HandEyeZInfo.h.

Initial value:
 {
    
    {RAD(-120),RAD(120)}, {RAD(-120),RAD(120)}, {RAD(-120),RAD(120)}, {-0.5f, 0.5f} ,{-0.5f, 0.5f}, 
    {RAD(-150),RAD(150)}, {RAD(-92),RAD(75)},
    
    
    {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).

Definition at line 252 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::NeckPanLEDMask = 1 << (NeckPanLEDOffset-LEDOffset)

Mask corresponding to NeckPanLEDOffset.

Definition at line 127 of file HandEyeZInfo.h.

const LEDBitMask_t HandEyeZInfo::NeckTiltLEDMask = 1 << (NeckTiltLEDOffset-LEDOffset)

Mask corresponding to NeckTiltLEDOffset.

Definition at line 128 of file HandEyeZInfo.h.

The number of joints per leg.

Definition at line 41 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumArms = 1

The number of joints per leg.

Definition at line 40 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumButtons = 3

the number of buttons that are available

Definition at line 50 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumEarJoints = 0

The number of joints which control the ears (NOT per ear, is total).

Definition at line 49 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumFacePanelLEDs = 0

The number of face panel LEDs.

Definition at line 52 of file HandEyeZInfo.h.

const unsigned int HandEyeZInfo::NumFrames = 1

the number of frames per buffer (don't forget also double buffered)

Definition at line 32 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumHeadJoints = 2

The number of joints in the pantilt.

Definition at line 46 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumLEDs = 7

The number of LEDs which can be controlled (one per dynamixel servo).

Definition at line 55 of file HandEyeZInfo.h.

the TOTAL number of joints on ALL legs

Definition at line 45 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumLegs = 0

The number of legs.

Definition at line 44 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumMouthJoints = 0

the number of joints that control the mouth

Definition at line 48 of file HandEyeZInfo.h.

servo pins

the total number of outputs

Definition at line 58 of file HandEyeZInfo.h.

The number of joints per leg.

Definition at line 56 of file HandEyeZInfo.h.

for the base, gripper (* NumArms), and camera reference frames

Definition at line 59 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumSensors = 2

the number of sensors available

Definition at line 51 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumTailJoints = 0

The number of joints assigned to the tail.

Definition at line 47 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::NumWheels = 0

The number of joints per leg.

Definition at line 36 of file HandEyeZInfo.h.

Initial value:
 {
    "ARM:shldr","ARM:elbow","ARM:wristYaw", "Arm:LeftGripper", "ArmRightGripper",
    "NECK:pan", "NECK:tilt",

    "LED:ARM:shldr",
    "LED:ARM:elbow",
    "LED:ARM:wrist",
    "LED ARM:lgrip",
    "LED ARM:rgrip",
    "LED:NECK:pan",
    "LED:NECK:tilt",
    
    
    
    "BaseFrame",
    "GripperFrame",
    "CameraFrame",
    NULL
  }

Names for each of the outputs.

Definition at line 178 of file HandEyeZInfo.h.

Initial value:
 {
    
    {RAD(-130),RAD(130)}, {RAD(-150),RAD(150)}, {RAD(-150),RAD(150)}, {-0.5f,0.5f}, {-0.5f,0.5f}, 
    {RAD(-63),RAD(63)}, {RAD(-95),RAD(68)},

    
    {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 241 of file HandEyeZInfo.h.

const unsigned HandEyeZInfo::PIDJointOffset = 0

The beginning of the PID Joints.

Definition at line 73 of file HandEyeZInfo.h.

const char* const HandEyeZInfo::sensorNames[NumSensors+1]
Initial value:
 {
    "PowerThermo","PowerVoltage", NULL
  }

Provides a string name for each sensor.

Definition at line 170 of file HandEyeZInfo.h.

const unsigned int HandEyeZInfo::SoundBufferTime = 32

the number of milliseconds per sound buffer... I'm not sure if this can be changed

Definition at line 33 of file HandEyeZInfo.h.

const char *const HandEyeZInfo::TargetName = "HandEyeZ"

the name of the model, to be used for logging and remote GUIs

Definition at line 133 of file RobotInfo.cc.


Tekkotsu v5.1CVS
Generated Mon May 9 04:59:23 2016 by Doxygen 1.6.3