Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

robot::ControlInterface Class Reference

Inheritance diagram for robot::ControlInterface:

Inheritance graph
[legend]
Collaboration diagram for robot::ControlInterface:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ControlInterface ()
 ControlInterface (const String &name, const String &type)
 ControlInterface (const ControlInterface &ci)
const String & getType () const
virtual Int inputSize () const=0
virtual String inputName (Int i) const=0
virtual Real getInput (Int i) const=0
virtual const VectorgetInputs () const=0
virtual Int outputSize () const=0
virtual String outputName (Int i) const=0
virtual void setOutput (Int i, Real value)=0
virtual void setOutputs (const Vector &values)=0
virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
virtual String className () const=0
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const
virtual const String & getName () const

Protected Member Functions

void setType (const String &type)
virtual void setName (const String &name)

Protected Attributes

int _refCount
bool onUnreferenceEnabled

Detailed Description

The abstract interface through which Controller(s) can control Controllables.

Each interface has a number of inputs and outputs. The meaning of these depend on the specific interface type. Interfaces are also named. Both the type and name are Strings. Type strings are title case with an initial capital letter and name strings are title case with an initial lower case letter.

An example specification of a ControlInterface: type: "ManipulatorForceControl" name: "titanJoints" outputs: i:[0..N-1] - N= num of joints: commanded joint force/torque inputs: i:[0..N-1] - N= num of joints: current joint position

The inputs and outputs of each interface are also named. For example, getInputName(0) on the above interface might return "jointPosition1". ControlInterfaces are obtained via the Controllable method getControlInterface(String interfaceName) by name. e.g. ref<ControlInterface> titan( c->getControlInterface("titanJoints") ); They can then be passed to a Contoller that is expecting a ControlInterface of that type. e.g. controller->setControlInterface(titan); will succeed if the controller was expecting an interface of type "ManipulatorForceControl" and will be silently ignored otherwise. Use the Controller::isConnected() to query if a Controller has been connected to all the ControlInterfaces it needs.

Definition at line 66 of file ControlInterface.


Constructor & Destructor Documentation

robot::ControlInterface::ControlInterface  )  [inline]
 

Definition at line 69 of file ControlInterface.

robot::ControlInterface::ControlInterface const String &  name,
const String &  type
[inline]
 

Definition at line 70 of file ControlInterface.

References base.

robot::ControlInterface::ControlInterface const ControlInterface ci  )  [inline]
 

Definition at line 72 of file ControlInterface.

References base.


Member Function Documentation

virtual String base::Object::className  )  const [pure virtual, inherited]
 

return the name of the object's class type. Must be defined by derived classes.

Implemented in base::Application, base::BinarySerializer, base::Cache, base::CacheDirectory, base::CacheFile, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::Directory, base::Expression, base::Externalizer, base::File, base::LineSegPathRep, base::LineSegTrajectoryRep, base::Math, base::NegateExpression, base::ParametricPathRep, base::ParametricTrajectoryRep, base::Path, base::PathComponent, base::PathName, base::ProductExpression, base::QuotientExpression, base::SimpleXMLSerializer, base::SinExpression, base::StdFileSystem, base::SumExpression, base::Time, base::Trajectory, base::Universe, base::VariableExpression, base::VDirectory, base::WaypointPathRep, base::WaypointTrajectoryRep, base::World, gfx::IndexedPoint3Array, gfx::OSGWorld, gfx::TriangleIterator, gfx::VisualPath, gfx::VisualTriangles, gfx::VisualTriangles::TriangleArrayIteratorState, physics::Body, physics::Box, physics::Capsule, physics::CollidableGroup, physics::CollisionModel::ModelState, physics::CollisionState, physics::Cone, physics::Cylinder, physics::DynamicSpatial, physics::GJKCollisionDetector, physics::GJKCollisionDetector::GJKCollisionState, physics::GJKCollisionModel, physics::HeightField, physics::LODTerrain, physics::MassProperties, physics::Material, physics::NullCollisionResponseHandler, physics::OBBCollisionDetector, physics::OBBCollisionDetector::OBBCollisionState, physics::OBBCollisionModel, physics::ODEBallJoint, physics::ODECollidableBody, physics::ODECollidableBody::BodyState, physics::ODECollidableGroup, physics::ODECollisionCuller, physics::ODECollisionDetector, physics::ODECollisionDetector::ODECollisionState, physics::ODECollisionModel, physics::ODECollisionResponseHandler, physics::ODEConstraintGroup, physics::ODEContactConstraint, physics::ODEDoubleHingeJoint, physics::ODEFixedConstraint, physics::ODEHingeJoint, physics::ODEMotor, physics::ODESliderJoint, physics::ODESolid, physics::ODESolidConnectedCollidableBody, physics::ODESolidSystem, physics::ODEUniversalJoint, physics::Polyhedron, physics::Polyhedron::Vertex, physics::Polyhedron::Edge, physics::Polyhedron::Polygon, physics::SimpleCollisionCuller, physics::SimpleTerrain, physics::Solid, physics::SOLIDCollisionDetector, physics::SOLIDCollisionDetector::SOLIDCollisionState, physics::SOLIDCollisionModel, physics::SolidCollisionResponseHandler, physics::SpatialGroup, physics::SpatialTransform, physics::Sphere, physics::Torus, physics::VisualDebugUtil, robot::AggregateControlInterface, robot::control::ControllableAdaptor, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::AnalyticLagrangianFSBetaOptimizer, robot::control::kinematics::AnalyticLagrangianNullSpaceBetaOptimizer, robot::control::kinematics::BetaFormConstraints::BetaFormConstraint, robot::control::kinematics::BetaFormConstraints, robot::control::kinematics::IKOR, robot::control::kinematics::IKOR::JointLimitBetaConstraint, robot::control::kinematics::IKOR::PushAwayBetaConstraint, robot::control::kinematics::IKOR::RankLossBetaConstraint, robot::control::kinematics::IKORController, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::kinematics::IKORFullSpaceSolver, robot::control::kinematics::LeastNormIKSolver, robot::control::kinematics::MPPseudoInvSolver, robot::control::kinematics::OldIKOR, robot::control::kinematics::ReferenceOpVectorFormObjective, robot::control::kinematics::SVDFullSpaceSolver, robot::control::ManipulatorPIDPositionController, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::JFKengine, robot::KinematicChain::Link, robot::KinematicChain, robot::ManipulatorDescription, robot::ManipulatorJointTrajectory, robot::NumericKinematicEvaluator, robot::PlatformDescription, robot::RobotDescription, robot::sim::BasicEnvironment, robot::sim::BasicEnvironment::Tool, robot::sim::BasicEnvironment::Obstacle, robot::sim::Environment, robot::sim::IKORTest, robot::sim::IKORTest::Test, robot::sim::IKORTester, robot::sim::SimulatedBasicEnvironment, robot::sim::SimulatedKinematicChain::ProximityCollisionResponseHandler, robot::sim::SimulatedManipulatorDescription, robot::sim::SimulatedPlatform, robot::sim::SimulatedRobot, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::sim::SimulatedRobotDescription, robot::sim::SimulatedSerialManipulator, robot::sim::SimulatedTool, robot::sim::TestBasicEnvironment, robot::sim::VisualIKORTest, robot::TestRobot, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, robot::TestRobot::ProximitySensorInterface, and robot::ToolDescription.

void base::Referenced::enableOnUnreferenceCall bool  enabled  )  [inline, inherited]
 

If enabled, each call to unreference() will also call virtual method onUnreference()

Definition at line 115 of file Referenced.

References base::Referenced::onUnreferenceEnabled.

virtual Real robot::ControlInterface::getInput Int  i  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, and robot::TestRobot::ProximitySensorInterface.

virtual const Vector& robot::ControlInterface::getInputs  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::TestRobot::ManipulatorControlInterface, and robot::TestRobot::ToolControlInterface.

virtual const String& base::Named::getName  )  const [inline, virtual, inherited]
 

Definition at line 44 of file Named.

References base::String.

Referenced by physics::Collidable::findNamed(), physics::operator<<(), robot::ToolDescription::operator=(), robot::RobotDescription::operator=(), robot::PlatformDescription::operator=(), robot::ManipulatorDescription::operator=(), base::Named::operator=(), and robot::ManipulatorDescription::operator==().

const String& robot::ControlInterface::getType  )  const [inline]
 

Definition at line 75 of file ControlInterface.

virtual String robot::ControlInterface::inputName Int  i  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, and robot::TestRobot::ProximitySensorInterface.

virtual Int robot::ControlInterface::inputSize  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ToolControlInterface, and robot::TestRobot::ToolControlInterface.

virtual bool base::Object::isSameKindAs const Object  )  const [inline, virtual, inherited]
 

Definition at line 47 of file Object.

virtual bool base::ReferencedObject::isSameKindAs const ReferencedObject  )  const [inline, virtual, inherited]
 

Definition at line 52 of file ReferencedObject.

virtual void base::Referenced::onUnreference  )  const [inline, virtual, inherited]
 

Called by unreference() if enabled via enableOnUnreferenceCall(true). Typically overridden in subclasses that wish to know about unreference() calls - for example to handle manually breaking cyclic references

Reimplemented in robot::control::ControllableAdaptor::AdaptorControlInterface, and robot::control::ControllableAdaptor.

Definition at line 121 of file Referenced.

Referenced by base::Referenced::unreference().

virtual String robot::ControlInterface::outputName Int  i  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, and robot::TestRobot::ProximitySensorInterface.

virtual Int robot::ControlInterface::outputSize  )  const [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ToolControlInterface, and robot::TestRobot::ToolControlInterface.

void base::Referenced::reference  )  const [inline, inherited]
 

Increment the reference count by one, indicating that this object has another pointer which is referencing it.

Definition at line 65 of file Referenced.

References base::Referenced::_refCount.

const int base::Referenced::referenceCount  )  const [inline, inherited]
 

Return the number pointers currently referencing this object.

Definition at line 112 of file Referenced.

References base::Referenced::_refCount.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::onUnreference().

virtual void base::Named::setName const String name  )  [inline, protected, virtual, inherited]
 

Reimplemented in physics::Collidable, physics::Solid, and robot::sim::BasicEnvironment::Obstacle.

Definition at line 47 of file Named.

References base::String.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::AdaptorControlInterface(), robot::control::kinematics::BetaFormConstraints::BetaFormConstraint::BetaFormConstraint(), robot::control::kinematics::IKORController::EEPositionControlInterface::EEPositionControlInterface(), robot::control::kinematics::IKOR::JointLimitBetaConstraint::JointLimitBetaConstraint(), robot::control::kinematics::IKORController::LinkPositionsControlInterface::LinkPositionsControlInterface(), robot::ToolDescription::operator=(), robot::RobotDescription::operator=(), robot::PlatformDescription::operator=(), robot::ManipulatorDescription::operator=(), base::Named::operator=(), robot::control::ManipulatorPIDPositionController::PositionInterface::PositionInterface(), robot::RobotDescription::set(), robot::PlatformDescription::set(), robot::ManipulatorDescription::set(), and physics::Solid::setName().

virtual void robot::ControlInterface::setOutput Int  i,
Real  value
[pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, and robot::TestRobot::ProximitySensorInterface.

virtual void robot::ControlInterface::setOutputs const Vector values  )  [pure virtual]
 

Implemented in robot::AggregateControlInterface, robot::BasicControlInterface, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::TestRobot::ManipulatorControlInterface, and robot::TestRobot::ToolControlInterface.

void robot::ControlInterface::setType const String &  type  )  [inline, protected]
 

Definition at line 88 of file ControlInterface.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::AdaptorControlInterface(), robot::control::kinematics::IKORController::EEPositionControlInterface::EEPositionControlInterface(), robot::control::kinematics::IKORController::LinkPositionsControlInterface::LinkPositionsControlInterface(), and robot::control::ManipulatorPIDPositionController::PositionInterface::PositionInterface().

bool base::Referenced::unreference  )  const [inline, inherited]
 

Decrement the reference count by one, indicating that a pointer to this object is referencing it. If the refence count goes to zero, it is assumed that this object is nolonger referenced and is automatically deleted.

Definition at line 81 of file Referenced.

References base::Referenced::_refCount, Exception, base::Referenced::onUnreference(), and base::Referenced::onUnreferenceEnabled.


Member Data Documentation

int base::Referenced::_refCount [mutable, protected, inherited]
 

Definition at line 136 of file Referenced.

Referenced by base::Referenced::reference(), base::Referenced::referenceCount(), base::Referenced::Referenced(), base::Referenced::unreference(), and base::Referenced::~Referenced().

bool base::Referenced::onUnreferenceEnabled [protected, inherited]
 

Definition at line 137 of file Referenced.

Referenced by base::Referenced::enableOnUnreferenceCall(), base::Referenced::Referenced(), and base::Referenced::unreference().


The documentation for this class was generated from the following file:
Generated on Thu Jul 29 16:41:50 2004 for OpenSim by doxygen 1.3.6