Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

MantisArmInfo Namespace Reference

Contains information about an Mantis Arm robot, such as number of joints, LEDs, etc. More...

Classes

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

Enumerations

enum  ServoParam_t { DYNAMIXEL_SLOPE = 0, DYNAMIXEL_PUNCH, DYNAMIXEL_MARGIN }
 

offsets into DefaultPIDs, since Dynamixel servos don't actually use PID control, but a different set of parameters

More...

Variables

const char *const TargetName = "MantisArm"
 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(400,70,350)
 Offset needed so that the centroid of the robot is correct related to the bounding box.
const fmat::Column< 3 > AgentBoundingBoxHalfDims = fmat::pack(100,100,100)
 Half of the length, width, and height of the robot.
const char *const outputNames [NumReferenceFrames+1]
 Names for each of the outputs.
const MantisArmCapabilities capabilities
 allocation declared in RobotInfo.cc
const float DefaultPIDs [NumPIDJoints][3]
 Dynamixel MX servos use PID control.
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 JointsPerArm = 6
 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 = 0
 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 = 0
 the number of sensors available
const unsigned NumFacePanelLEDs = 0
 The number of face panel LEDs.
const unsigned NumPIDJoints = NumArmJoints + NumLegJoints + NumHeadJoints + NumTailJoints + NumMouthJoints
 servo pins
const unsigned NumLEDs = NumPIDJoints
 There's an LED on every dynamixel, but can't see most of them, so save some computational resources and only expose the visible ones.
const unsigned NumOutputs = NumWheels + NumPIDJoints + NumLEDs
 the total number of outputs
const unsigned NumReferenceFrames = NumOutputs + NumLegs + NumArms + 1
 for the base, feet, gripper, camera, and IR distance rangefinder
const unsigned FingerJointsPerArm = 0
 The number of joints per leg.
const float BallOfFootRadius = 0
 radius of the ball of the foot

Output Offsets

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



enum  ArmOrder_t { MdArmOrder = 0 }
 

the ordering of arms

More...
enum  SEKOffset_t {
  SweepOffset = 0, ElevatorOffset, Twist1Offset, ElbowOffset,
  Twist2Offset, WristOffset
}
 

The offsets within appendages (the legs) Note that the ordering matches the actual physical ordering of joints on the appendage.

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

The offsets of appendages with tilt (elevation), pan (heading), and roll or nod joints (i.e. head/wrist).

More...
enum  ArmOffset_t { MdArmOffset = ArmOffset+MdArmOrder*JointsPerArm }
 

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

More...
enum  LEDOffset_t {
  ElevatorLEDOffset = LEDOffset, ShoulderLEDOffset, Twist1LEDOffset, ElbowLEDOffset,
  Twist2LEDOffset, WristLEDOffset
}
 

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
 the offset of the beginning of the regular leg joints (after the 1 rotator joint for the right front leg): NumLegs of JointsPerLeg each, in LegOrder_t order; see LegOffset_t
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 FootFrameOffset = BaseFrameOffset+1
 Use with kinematics to refer to feet reference frames (add appropriate LegOrder_t to specify which paw).
const unsigned GripperFrameOffset = FootFrameOffset+NumLegs
 Use with kinematics to refer to gripper reference frame.
const unsigned CameraFrameOffset = GripperFrameOffset+NumArms
 Use with kinematics to refer to camera reference frame.
const unsigned LeftIRFrameOffset = CameraFrameOffset+1
 Use with kinematics to refer to left IR distance rangefinder reference frame.
const unsigned CenterIRFrameOffset = LeftIRFrameOffset+1
 Use with kinematics to refer to center IR distance rangefinder reference frame.
const unsigned IRFrameOffset = CenterIRFrameOffset
 alias for CenterIRFrameOffset
const unsigned RightIRFrameOffset = CenterIRFrameOffset+1
 Use with kinematics to refer to right IR distance rangefinder reference frame.
const LEDOffset_t RedLEDOffset = ElevatorLEDOffset
 the ordering of arms
const LEDOffset_t YellowLEDOffset = ShoulderLEDOffset
 the ordering of arms
const LEDOffset_t GreenLEDOffset = ElbowLEDOffset
 the ordering of arms
const LEDOffset_t BlueLEDOffset = WristLEDOffset
 the ordering of arms
const LEDBitMask_t RedLEDMask = 1<<(ElevatorLEDOffset-LEDOffset)
 mask corresponding to RedLEDOffset
const LEDBitMask_t YellowLEDMask = 1<<(ShoulderLEDOffset-LEDOffset)
 mask corresponding to YellowLEDOffset
const LEDBitMask_t GreenLEDMask = 1<<(ElbowLEDOffset-LEDOffset)
 mask corresponding to GreenLEDOffset
const LEDBitMask_t BlueLEDMask = (1<<(WristLEDOffset-LEDOffset))
 mask corresponding to BlueLEDOffset
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
 

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

Contains information about an Mantis Arm robot, such as number of joints, LEDs, etc.


Typedef Documentation

typedef unsigned int MantisArmInfo::LEDBitMask_t

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

Definition at line 128 of file MantisArmInfo.h.


Enumeration Type Documentation

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

Enumerator:
MdArmOffset 

beginning of right front leg's joints

Definition at line 107 of file MantisArmInfo.h.

the ordering of arms

Enumerator:
MdArmOrder 

middle leg

Definition at line 83 of file MantisArmInfo.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 PowerSrcID::PauseSID.

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

Definition at line 168 of file MantisArmInfo.h.

The offsets of the individual LEDs.

Enumerator:
ElevatorLEDOffset 
ShoulderLEDOffset 
Twist1LEDOffset 
ElbowLEDOffset 
Twist2LEDOffset 
WristLEDOffset 

Definition at line 113 of file MantisArmInfo.h.

The offsets within appendages (the legs) Note that the ordering matches the actual physical ordering of joints on the appendage.

Enumerator:
SweepOffset 
ElevatorOffset 
Twist1Offset 
ElbowOffset 
Twist2Offset 
WristOffset 

Definition at line 88 of file MantisArmInfo.h.

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

See also:
WorldState::sensors[]

Definition at line 175 of file MantisArmInfo.h.

offsets into DefaultPIDs, since Dynamixel servos don't actually use PID control, but a different set of parameters

Enumerator:
DYNAMIXEL_SLOPE 

compliance slope, the proportional control (P in PID)

DYNAMIXEL_PUNCH 

punch, a constant added to the slope once error exceeds compliance margin

DYNAMIXEL_MARGIN 

compliance margin, the amount of error to tolerate before triggering a torque response

Definition at line 215 of file MantisArmInfo.h.

The offsets of appendages with tilt (elevation), pan (heading), and roll or nod joints (i.e. head/wrist).

Enumerator:
PanOffset 

pan/yaw/heading (horizontal)

TiltOffset 

tilt/pitch/elevation (vertical)

NodOffset 

replicated tilt (could be left undefined instead...)

RollOffset 

spin/twist final axis

Definition at line 98 of file MantisArmInfo.h.


Variable Documentation

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

Definition at line 143 of file MantisArmInfo.h.

const fmat::Column<3> MantisArmInfo::AgentBoundingBoxHalfDims = fmat::pack(100,100,100)

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

Definition at line 146 of file MantisArmInfo.h.

selects all of the leds

Definition at line 138 of file MantisArmInfo.h.

the offset of the beginning of the regular leg joints (after the 1 rotator joint for the right front leg): NumLegs of JointsPerLeg each, in LegOrder_t order; see LegOffset_t

Definition at line 69 of file MantisArmInfo.h.

radius of the ball of the foot

Definition at line 58 of file MantisArmInfo.h.

Use with kinematics to refer to base reference frame.

Definition at line 71 of file MantisArmInfo.h.

const LEDBitMask_t MantisArmInfo::BlueLEDMask = (1<<(WristLEDOffset-LEDOffset))

mask corresponding to BlueLEDOffset

Definition at line 133 of file MantisArmInfo.h.

const LEDOffset_t MantisArmInfo::BlueLEDOffset = WristLEDOffset

the ordering of arms

Definition at line 126 of file MantisArmInfo.h.

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

Provides a string name for each button.

Definition at line 171 of file MantisArmInfo.h.

Use with kinematics to refer to camera reference frame.

Definition at line 74 of file MantisArmInfo.h.

allocation declared in RobotInfo.cc

Definition at line 165 of file RobotInfo.cc.

Use with kinematics to refer to center IR distance rangefinder reference frame.

Definition at line 77 of file MantisArmInfo.h.

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

Dynamixel MX servos use PID control.

Definition at line 222 of file MantisArmInfo.h.

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

Definition at line 136 of file MantisArmInfo.h.

The number of joints per leg.

Definition at line 54 of file MantisArmInfo.h.

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

Definition at line 72 of file MantisArmInfo.h.

const unsigned int MantisArmInfo::FrameTime = 32

time between frames in the motion system (milliseconds)

Definition at line 25 of file MantisArmInfo.h.

const LEDBitMask_t MantisArmInfo::GreenLEDMask = 1<<(ElbowLEDOffset-LEDOffset)

mask corresponding to GreenLEDOffset

Definition at line 132 of file MantisArmInfo.h.

the ordering of arms

Definition at line 125 of file MantisArmInfo.h.

Use with kinematics to refer to gripper reference frame.

Definition at line 73 of file MantisArmInfo.h.

alias for CenterIRFrameOffset

Definition at line 78 of file MantisArmInfo.h.

const unsigned MantisArmInfo::JointsPerArm = 6

The number of joints per leg.

Definition at line 32 of file MantisArmInfo.h.

const unsigned MantisArmInfo::JointsPerLeg = 0

The number of joints per leg.

Definition at line 36 of file MantisArmInfo.h.

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

Definition at line 70 of file MantisArmInfo.h.

Use with kinematics to refer to left IR distance rangefinder reference frame.

Definition at line 76 of file MantisArmInfo.h.

Initial value:
 {
    
    1.f, 1.f, 1.f, 1.f, 1.f, 1.f,
    
    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)

Definition at line 233 of file MantisArmInfo.h.

Initial value:
 {
    
    {RAD(-100),RAD(100)}, 
        {RAD(-100),RAD(100)},
    {RAD(-100),RAD(100)},
        {RAD(-100),RAD(100)},
    
    {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 outputRanges, don't know actual values because they were never specified by Sony

Definition at line 265 of file MantisArmInfo.h.

The number of joints per leg.

Definition at line 34 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumArms = 1

The number of joints per leg.

Definition at line 33 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumButtons = 3

the number of buttons that are available

Definition at line 44 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumEarJoints = 0

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

Definition at line 43 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumFacePanelLEDs = 0

The number of face panel LEDs.

Definition at line 46 of file MantisArmInfo.h.

const unsigned int MantisArmInfo::NumFrames = 1

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

Definition at line 26 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumHeadJoints = 0

The number of joints in the pantilt.

Definition at line 40 of file MantisArmInfo.h.

There's an LED on every dynamixel, but can't see most of them, so save some computational resources and only expose the visible ones.

Definition at line 49 of file MantisArmInfo.h.

the TOTAL number of joints on ALL legs

Definition at line 38 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumLegs = 0

The number of legs.

Definition at line 37 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumMouthJoints = 0

the number of joints that control the mouth

Definition at line 42 of file MantisArmInfo.h.

the total number of outputs

Definition at line 51 of file MantisArmInfo.h.

servo pins

Definition at line 48 of file MantisArmInfo.h.

for the base, feet, gripper, camera, and IR distance rangefinder

Definition at line 52 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumSensors = 0

the number of sensors available

Definition at line 45 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumTailJoints = 0

The number of joints assigned to the tail.

Definition at line 41 of file MantisArmInfo.h.

const unsigned MantisArmInfo::NumWheels = 0

The number of joints per leg.

Definition at line 30 of file MantisArmInfo.h.

Initial value:
 {
    
    "elevator", "shoulder", "twist1", "elbow", "twist2", "wrist",
    
        
    "LED:elevator", "LED:shoulder", "LED:twist1", "LED:elbow", "LED:twist2", "LED:wrist",
        
        
        "BaseFrame", "FingerFrame",
      
    NULL
  }

Names for each of the outputs.

Definition at line 186 of file MantisArmInfo.h.

Initial value:
 {
    
    {RAD(-100),RAD(100)}, 
    {RAD(-100),RAD(100)},
    {RAD(-100),RAD(100)},
    {RAD(-100),RAD(100)},
    {RAD(-100),RAD(100)},
    {RAD(-100),RAD(100)},   
    
    
    {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 248 of file MantisArmInfo.h.

const unsigned MantisArmInfo::PIDJointOffset = 0

The beginning of the PID Joints.

Definition at line 68 of file MantisArmInfo.h.

const LEDBitMask_t MantisArmInfo::RedLEDMask = 1<<(ElevatorLEDOffset-LEDOffset)

mask corresponding to RedLEDOffset

Definition at line 130 of file MantisArmInfo.h.

const LEDOffset_t MantisArmInfo::RedLEDOffset = ElevatorLEDOffset

the ordering of arms

Definition at line 123 of file MantisArmInfo.h.

Use with kinematics to refer to right IR distance rangefinder reference frame.

Definition at line 79 of file MantisArmInfo.h.

const char* const MantisArmInfo::sensorNames[NumSensors+1]
Initial value:
 {
    NULL
  }

Provides a string name for each sensor.

Definition at line 178 of file MantisArmInfo.h.

const unsigned int MantisArmInfo::SoundBufferTime = 32

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

Definition at line 27 of file MantisArmInfo.h.

const char *const MantisArmInfo::TargetName = "MantisArm"

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

Definition at line 164 of file RobotInfo.cc.

const LEDBitMask_t MantisArmInfo::YellowLEDMask = 1<<(ShoulderLEDOffset-LEDOffset)

mask corresponding to YellowLEDOffset

Definition at line 131 of file MantisArmInfo.h.

const LEDOffset_t MantisArmInfo::YellowLEDOffset = ShoulderLEDOffset

the ordering of arms

Definition at line 124 of file MantisArmInfo.h.


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