Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

RobotInfo Namespace Reference

Contains information about the robot, such as number of joints, PID defaults, timing information, etc. More...

Classes

class  Capabilities
 Allows behaviors to lookup output/button/sensor names from other models to support basic cross-model portability. More...

Enumerations

enum  MinMaxRange_t { MinRange, MaxRange }
 

Defines the indexes to use as indices to access the min and max entries of joint limit specifications (e.g. ERS7Info::outputRanges and ERS7Info::mechanicalLimits).

More...

Functions

const char *const detectModel ()
 Some target models, such as ERS2xxInfo, may be dual-booting compatability modes. This function returns the actual robot name (e.g. ERS210Info::TargetName or ERS220Info::TargetName).
const CapabilitiesgetCapabilities (const std::string &robName)
 Accessor for Capabilities::caps, returns the Capabilities instance for a specified robot model (or NULL if robot is unknown or didn't provide a Capabilities instance).

Variables

const char *const RobotName = detectModel()
 Name of the robot which is actually running.
const char * CameraName = CameraModelName
 Name of the camera being used on the robot.
fmat::Matrix< 3, 3 > CameraHomography = fmat::Matrix<3,3>::identity()
 The camera correction homography to utilize.

Detailed Description

Contains information about the robot, such as number of joints, PID defaults, timing information, etc.

This is just a wrapper for whichever namespace corresponds to the current robot target setting (one of TGT_ERS7, TGT_ERS210, TGT_ERS220, or the cross-booting TGT_ERS2xx)

You probably should look at ERS7Info, ERS210Info, ERS220Info, or ERS2xxInfo for the actual constants used for each model, although some common information shared by all of these namespaces is defined in CommonInfo.h


Enumeration Type Documentation

Defines the indexes to use as indices to access the min and max entries of joint limit specifications (e.g. ERS7Info::outputRanges and ERS7Info::mechanicalLimits).

Enumerator:
MinRange 
MaxRange 

Definition at line 66 of file CommonInfo.h.


Function Documentation

const char *const RobotInfo::detectModel (  ) 

Some target models, such as ERS2xxInfo, may be dual-booting compatability modes. This function returns the actual robot name (e.g. ERS210Info::TargetName or ERS220Info::TargetName).

This function should return the actual RobotInfo::TargetName and not a hard coded string. This way, we can rely on testing equality with a direct pointer comparison instead of strcmp(). (Also eliminates chance of typo or missing refactorization if renamed!).

The result of this function is stored in RobotName, so you don't need to call this function -- the only reason it's declared in the header is so you can call it during static initialization, when you can't rely on RobotName having been initialized yet.

Definition at line 206 of file RobotInfo.cc.

const Capabilities* RobotInfo::getCapabilities ( const std::string &  robName  ) 

Accessor for Capabilities::caps, returns the Capabilities instance for a specified robot model (or NULL if robot is unknown or didn't provide a Capabilities instance).

Use this if you have a robot name in string form and want to check or map its capabilities. (For example, if you are communicating with another robot of a different type over the network.) If you know at compile time the type of the robot in question, you could just directly access its 'capabilities' instance via its RobotInfo namespace. (e.g. ERS210Info::capabilities) If you want the capabilities for the current robot, just use the global 'capabilities' instance as RobotInfo.h will automatically import the current robot's namespace into the global space.

Definition at line 157 of file RobotInfo.h.

Referenced by plist::OutputSelector::get(), PostureEngine::loadLine(), plist::OutputSelector::loadXML(), and plist::OutputSelector::set().


Variable Documentation

The camera correction homography to utilize.

Initialized from file by StartupBehavior::doStart(), using CameraName to indicate file name.

Definition at line 238 of file RobotInfo.cc.

Referenced by Config::vision_config::computePixelCorrected(), Config::vision_config::computeRay(), CameraData::loadCameraData(), and CameraData::saveCameraData().

const char * RobotInfo::CameraName = CameraModelName

Name of the camera being used on the robot.

Gets value from previously imported namespace, but can be overridden by DeviceDriver e.g. Mirage

Definition at line 237 of file RobotInfo.cc.

Referenced by CameraData::loadCameraData(), and CameraData::saveCameraData().

const char *const RobotInfo::RobotName = detectModel()

Name of the robot which is actually running.

This is usually set to the TargetName, but if the target model is a "compatability" target, where the actual host hardware may be a different (more restrictive) configuration, then RobotName will be set to the TargetName of that configuration.

Note that you should be able to rely on doing pointer comparisons between RobotName and various TargetNames to test for different robot models, instead of using strcmp() for each.

However, a std::string is used on Aperios to transparently trigger the strcmp because of the way the process model is handled there screws up the pointer comparison (a different process does the static initialization, so we get a pointer relative to its memory space instead of the one we're executing in. Unix-based platforms don't have this problem by using a "real" fork() operation.)

Definition at line 242 of file RobotInfo.cc.

Referenced by ConfigDictionary::ConfigDictionary(), LedEngine::displayNumber(), WorldStateSerializerBehavior::doEvent(), VisualTargetCloseTrans::doEvent(), WorldStateSerializerBehavior::doStart(), EmergencyStopMC::EmergencyStopMC(), EmergencyStopMC::freezeJoints(), PostureEngine::getBinSize(), Controller::init(), PostureEngine::loadLine(), PostureEngine::saveBuffer(), BatteryMonitorBehavior::setFlipper(), LedEngine::setOneOfTwo(), FlashIPAddrBehavior::setupSequence(), EmergencyStopMC::trigger(), and TailWagMC::updateOutputs().


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