Tekkotsu Homepage
Dev. Resources

HandEyeZInfo.h File Reference

Defines some capabilities of the modified HandEye planar arm robot. More...

#include <cmath>
#include <stdlib.h>
#include "CommonInfo.h"
Include dependency graph for HandEyeZInfo.h:

Go to the source code of this file.


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


namespace  HandEyeZInfo

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


#define RAD(deg)   (((deg) * (float)M_PI ) / 180.0f)
 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?


const char *const HandEyeZInfo::TargetName = "HandEyeZ"
 the name of the model, to be used for logging and remote GUIs
const unsigned int HandEyeZInfo::FrameTime = 32
 time between frames in the motion system (milliseconds)
const unsigned int HandEyeZInfo::NumFrames = 1
 the number of frames per buffer (don't forget also double buffered)
const unsigned int HandEyeZInfo::SoundBufferTime = 32
 the number of milliseconds per sound buffer... I'm not sure if this can be changed
const fmat::Column< 3 > HandEyeZInfo::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 > HandEyeZInfo::AgentBoundingBoxHalfDims = fmat::pack(304.8/2, 304.8/2, 0)
 Half of the length, width, and height of the robot.
const char *const HandEyeZInfo::outputNames [NumReferenceFrames+1]
 Names for each of the outputs.
const HandEyeZCapabilities HandEyeZInfo::capabilities
 allocation declared in RobotInfo.cc
const float HandEyeZInfo::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 HandEyeZInfo::MaxOutputSpeed [NumOutputs]
 These values are our recommended maximum joint velocities, in rad/ms.
const float HandEyeZInfo::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 HandEyeZInfo::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 HandEyeZInfo::NumWheels = 0
 The number of joints per leg.
const unsigned HandEyeZInfo::FingerJointsPerArm = 2
 The number of joints per leg.
const unsigned HandEyeZInfo::JointsPerArm = 5
 The number of joints per leg.
const unsigned HandEyeZInfo::NumArms = 1
 The number of joints per leg.
const unsigned HandEyeZInfo::NumArmJoints = JointsPerArm*NumArms
 The number of joints per leg.
const unsigned HandEyeZInfo::JointsPerLeg = 0
 The number of joints per leg.
const unsigned HandEyeZInfo::NumLegs = 0
 The number of legs.
const unsigned HandEyeZInfo::NumLegJoints = JointsPerLeg*NumLegs
 the TOTAL number of joints on ALL legs
const unsigned HandEyeZInfo::NumHeadJoints = 2
 The number of joints in the pantilt.
const unsigned HandEyeZInfo::NumTailJoints = 0
 The number of joints assigned to the tail.
const unsigned HandEyeZInfo::NumMouthJoints = 0
 the number of joints that control the mouth
const unsigned HandEyeZInfo::NumEarJoints = 0
 The number of joints which control the ears (NOT per ear, is total).
const unsigned HandEyeZInfo::NumButtons = 3
 the number of buttons that are available
const unsigned HandEyeZInfo::NumSensors = 2
 the number of sensors available
const unsigned HandEyeZInfo::NumFacePanelLEDs = 0
 The number of face panel LEDs.
const unsigned HandEyeZInfo::NumLEDs = 7
 The number of LEDs which can be controlled (one per dynamixel servo).
const unsigned HandEyeZInfo::NumPIDJoints = NumWheels + NumArmJoints + NumLegJoints+NumHeadJoints+NumTailJoints+NumMouthJoints
 The number of joints per leg.
const unsigned HandEyeZInfo::NumOutputs = NumWheels + NumPIDJoints + NumLEDs
 servo pins
const unsigned HandEyeZInfo::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  HandEyeZInfo::ArmOffset_t {
  HandEyeZInfo::ArmShoulderOffset = ArmOffset, HandEyeZInfo::ArmElbowOffset, HandEyeZInfo::WristOffset, HandEyeZInfo::WristYawOffset = WristOffset,
  HandEyeZInfo::LeftGripperOffset, HandEyeZInfo::RightGripperOffset

These are 'absolute' offsets for the arm joints.

enum  HandEyeZInfo::TPROffset_t { HandEyeZInfo::PanOffset = 0, HandEyeZInfo::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).

enum  HandEyeZInfo::HeadOffset_t { HandEyeZInfo::HeadPanOffset = HeadOffset, HandEyeZInfo::HeadTiltOffset }

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

enum  HandEyeZInfo::LEDOffset_t {
  HandEyeZInfo::ArmShoulderLEDOffset = LEDOffset, HandEyeZInfo::ArmElbowLEDOffset, HandEyeZInfo::ArmWristLEDOffset, HandEyeZInfo::ArmLeftGripperLEDOffset,
  HandEyeZInfo::ArmRightGripperLEDOffset, HandEyeZInfo::NeckPanLEDOffset, HandEyeZInfo::NeckTiltLEDOffset

The offsets of the individual LEDs.

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

Input Offsets

The order in which inputs should be stored

enum  HandEyeZInfo::ButtonOffset_t { HandEyeZInfo::GreenButOffset, HandEyeZInfo::RedButOffset, HandEyeZInfo::YellowButOffset }

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

enum  HandEyeZInfo::SensorOffset_t { HandEyeZInfo::PowerThermoOffset, HandEyeZInfo::PowerVoltageOffset }

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

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

Detailed Description

Defines some capabilities of the modified HandEye planar arm robot.

ejt (Creator)

Definition in file HandEyeZInfo.h.

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

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

Just a little macro for converting degrees to radians.

Definition at line 235 of file HandEyeZInfo.h.

Tekkotsu v5.1CVS
Generated Mon May 9 04:58:57 2016 by Doxygen 1.6.3