Public Types | |
enum | CoordFrame { UnknownFrame, EndEffectorFrame, EndEffectorBaseFrame, BaseFrame, MountFrame, PlatformFrame, WorldFrame } |
typedef std::bitset< sizeof(Int)*8 | CollidableFlags ) |
typedef Int | CollidableFlag |
enum | ExternalizationType { Input = 1, Output = 2, IO = 3 } |
Public Member Functions | |
SimulatedRobot (ref< base::VFile > robotSpecification, const base::Point3 &initialPosition, const base::Orient &initialOrientation, ref< physics::SolidSystem > solidSystem, bool dynamic=true) | |
SimulatedRobot (ref< const robot::RobotDescription > robotDescription, const base::Point3 &initialPosition, const base::Orient &initialOrientation, ref< physics::SolidSystem > solidSystem, bool dynamic=true) | |
virtual String | className () const |
virtual ref< PlatformDescription > | newPlatformDescription () const |
virtual ref< ManipulatorDescription > | newManipulatorDescription () const |
virtual void | setDynamic (bool enabled) |
virtual void | setSolidSystem (ref< physics::SolidSystem > solidSystem) |
virtual array< std::pair< String, String > > | controlInterfaces () const |
virtual ref< ControlInterface > | getControlInterface (String interfaceName="") throw (std::invalid_argument) |
virtual bool | isDescriptionProvided () const |
is there a description of this robot available? | |
virtual ref< physics::Solid > | getPlatformSolid () const |
virtual void | setPosition (const Point3 &pos) |
virtual Point3 | getPosition () const |
virtual void | setOrientation (const Orient &orient) |
virtual Orient | getOrientation () const |
virtual void | setConfiguration (const base::Transform &configuration) |
virtual base::Transform | getConfiguration () const |
bool | checkProximity (ref< SimulatedTool > tool) |
test if tool is in position to be grasped by any end-effectors. | |
void | placeToolInProximity (ref< SimulatedTool > tool, Int manipIndex=0) |
'magically' transport a tool to within grasping range of the end-effector | |
bool | graspTool (Int manipIndex=0) |
void | releaseGrasp (Int manipIndex=0) |
release grasp | |
virtual ref< physics::Collidable > | createCollidable (CollidableFlags flags=0) |
virtual bool | formatSupported (String format, Real version=1.0, ExternalizationType type=IO) const |
query if specific format is supported (for input, output or both) | |
virtual void | externalize (base::Externalizer &e, String format="", Real version=1.0) |
read or write object state to Externalizer | |
virtual ref< const RobotDescription > | getRobotDescription () const throw (std::logic_error) |
get a description of the robot, if provided. Throws an exception if no description can be provided. | |
virtual ref< RobotDescription > | newRobotDescription () const |
virtual ref< ToolDescription > | newToolDescription () const |
base::Matrix4 | coordFrameTransform (CoordFrame from, CoordFrame to=PlatformFrame, Int manipulatorIndex=0, const base::Matrix4 &T=base::Matrix4(), const base::Point3 &platformPosition=base::Point3(), const base::Orient &platformOrientation=base::Orient()) const |
virtual bool | isSameKindAs (const ReferencedObject &) const |
virtual bool | isSameKindAs (const Object &) const |
void | reference () const |
bool | unreference () const |
const int | referenceCount () const |
void | enableOnUnreferenceCall (bool enabled) |
virtual void | onUnreference () const |
virtual void | setPositionOrientation (const Point3 &pos, const Orient &orient) |
virtual void | setPosition2D (const base::Point2 &p, Real theta) |
set the 2D (x,y,theta) position (theta is rot. angle about Z-axis) | |
virtual base::Point2 | getPosition2D () const |
get the 2D (x,y) position | |
Real | getOrientation2D () const |
get the 2D angle theta (rot. angle about Z-axis) | |
virtual const String & | getName () const |
virtual void | externalize (Externalizer &e, String format="", Real version=1.0) const |
write object state to Externalizer (throws if e is in Input) | |
void | load (ref< VFile > archive, const String &format="", Real version=1.0) |
void | save (ref< VFile > archive, const String &format="", Real version=1.0) |
Static Public Member Functions | |
CoordFrame | coordFrame (const String &frameString) |
convert String coord. frame specifier to CoordFrame | |
String | coordFrame (CoordFrame coordFrame) |
convert coord. frame specifier to String | |
Protected Types | |
enum | ControlType { ForceControl, VelControl, PosControl } |
Protected Member Functions | |
void | construct (const base::Point3 &initialPosition, const base::Orient &initialOrientation) |
construct the physical robot from loaded spec by adding bodies, joints and motors into solidSystem | |
void | setRobotDescription (ref< const RobotDescription > robotDescription) |
virtual void | setName (const String &name) |
Protected Attributes | |
ref< SimulatedPlatform > | platform |
simulated robot platform | |
reflist< SimulatedSerialManipulator > | manipulators |
simulated manipulators | |
ref< physics::SolidSystem > | solidSystem |
SolidSystem into which the robot's physical parts will be added. | |
ref< physics::SpatialGroup > | spatialGroup |
a group containing the platform and manipulators | |
bool | dynamic |
int | _refCount |
bool | onUnreferenceEnabled |
Definition at line 58 of file SimulatedRobot.
|
Definition at line 45 of file CollidableProvider. |
|
Definition at line 44 of file CollidableProvider. |
|
ForceControl & VelControl require a dynamic simulation; PosControl will also function for simple non-dynamic simulations Definition at line 204 of file SimulatedRobot. |
|
|
|
Definition at line 40 of file Externalizable. |
|
|
|
|
|
test if tool is in position to be grasped by any end-effectors.
|
|
return the name of the object's class type. Must be defined by derived classes. Implements base::Object. Definition at line 70 of file SimulatedRobot. |
|
construct the physical robot from loaded spec by adding bodies, joints and motors into solidSystem
|
|
A Robot provides a number of ControlInterfaces for various parts, such as its drive platform, manipulators and other sensors etc. Refer to documentation for specific concrete Robot implementation for specific ControlInterface names and descriptions. This method enumerates the ControlInterface names and their types. The interfaces can be obtained by passing the name to the getControlInterface() method. Reimplemented from robot::Robot. |
|
convert coord. frame specifier to String
|
|
convert String coord. frame specifier to CoordFrame
|
|
Obtain transformation that will transform between coordinate frames Some transformations will require further information, such as specifying the forward kinematics transform from the base frame to the end-effector frame, or which manipulator (EndEffector[Base]Frame, BaseFrame & MountFrame) Transformations involving the WorldFrame require the platform position and orientation. |
|
Implements physics::CollidableProvider. |
|
If enabled, each call to unreference() will also call virtual method onUnreference() Definition at line 115 of file Referenced. References base::Referenced::onUnreferenceEnabled. |
|
|
read or write object state to Externalizer
Implements base::Externalizable. |
|
query if specific format is supported (for input, output or both)
Implements base::Externalizable. |
|
Reimplemented from physics::PositionableOrientable. |
|
SimulatedRobot provides the following ControlInterfaces (name:type): platform:PlatformControl (only available when dynamic==true)
platformVelocity:PlatformVelocityControl (only available when dynamic==true)
platformPosition:PlatformPositionControl (only available when dynamic==false)
manipulatorN:JointForceControl (only available when dynamic==true)
manipulatorVelocityN:JointVelocityControl (only available when dynamic==true)
manipulatorPositionN:JointPositionControl
manipulatorProximityN:LinkProximitySensors
manipulatorToolGripN:ToolGripControl
toolN:JointForceControl (only available when dynamic==true)
toolVelocityN:JointVelocityControl (only available when dynamic==true)
toolPositionN:JointPositionControl (only available when dynamic==false)
Implements robot::Robot. |
|
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==(). |
|
Implements physics::Orientable. |
|
get the 2D angle theta (rot. angle about Z-axis)
|
|
Definition at line 151 of file SimulatedRobot. References platform. |
|
Implements physics::Positionable. |
|
get the 2D (x,y) position
Definition at line 72 of file PositionableOrientable. References physics::Positionable::getPosition(), base::Point2, base::Point3, base::Vector3::x, and base::Vector3::y. |
|
get a description of the robot, if provided. Throws an exception if no description can be provided.
Definition at line 64 of file Robot. References Exception, and robot::Robot::isDescriptionProvided(). |
|
gasp tool (if a suitable one is within grasping proximity of the end-effector) returns true if a tool was grasped |
|
is there a description of this robot available?
Reimplemented from robot::Robot. Definition at line 149 of file SimulatedRobot. |
|
|
|
Definition at line 52 of file ReferencedObject. |
|
|
|
Reimplemented from robot::Robot. Definition at line 74 of file SimulatedRobot. References NewObj. |
|
Reimplemented from robot::Robot. Definition at line 73 of file SimulatedRobot. References NewObj. |
|
Definition at line 74 of file Robot. References NewObj. |
|
Definition at line 77 of file Robot. References NewObj. |
|
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(). |
|
'magically' transport a tool to within grasping range of the end-effector
|
|
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. |
|
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(). |
|
release grasp
|
|
|
|
Reimplemented from physics::PositionableOrientable. |
|
|
|
|
Implements physics::Orientable. |
|
Implements physics::Positionable. |
|
set the 2D (x,y,theta) position (theta is rot. angle about Z-axis)
|
|
Definition at line 48 of file PositionableOrientable. References base::Point3, and physics::PositionableOrientable::setConfiguration(). |
|
|
|
Definition at line 79 of file SimulatedRobot. |
|
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. |
|
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(). |
|
if true, full physics is simulated; if false, the Solids that comprise the Robot only have a position/orientation - no velocity/acceleration (and the position based ControlInterfaces can be used instead of the velocity & force/torque interfaces) Definition at line 199 of file SimulatedRobot. |
|
simulated manipulators
Definition at line 191 of file SimulatedRobot. |
|
Definition at line 137 of file Referenced. Referenced by base::Referenced::enableOnUnreferenceCall(), base::Referenced::Referenced(), and base::Referenced::unreference(). |
|
simulated robot platform
Definition at line 190 of file SimulatedRobot. Referenced by getPlatformSolid(). |
|
SolidSystem into which the robot's physical parts will be added.
Definition at line 193 of file SimulatedRobot. |
|
a group containing the platform and manipulators
Definition at line 195 of file SimulatedRobot. |