Actor Class Reference

Actor class enables GPU based mesh model / skeleton scriptable animation. More...

#include <physics/physics.hh>

Inherits Model.

Public Types

enum  EntityType {
  BASE = 0x00000000, ENTITY = 0x00000001, MODEL = 0x00000002, LINK = 0x00000004,
  COLLISION = 0x00000008, LIGHT = 0x00000010, VISUAL = 0x00000020, JOINT = 0x00000040,
  BALL_JOINT = 0x00000080, HINGE2_JOINT = 0x00000100, HINGE_JOINT = 0x00000200, SLIDER_JOINT = 0x00000400,
  SCREW_JOINT = 0x00000800, UNIVERSAL_JOINT = 0x00001000, GEARBOX_JOINT = 0x00002000, FIXED_JOINT = 0x00004000,
  ACTOR = 0x00008000, SHAPE = 0x00010000, BOX_SHAPE = 0x00020000, CYLINDER_SHAPE = 0x00040000,
  HEIGHTMAP_SHAPE = 0x00080000, MAP_SHAPE = 0x00100000, MULTIRAY_SHAPE = 0x00200000, RAY_SHAPE = 0x00400000,
  PLANE_SHAPE = 0x00800000, SPHERE_SHAPE = 0x01000000, MESH_SHAPE = 0x02000000, POLYLINE_SHAPE = 0x04000000,
  SENSOR_COLLISION = 0x10000000
}
 Unique identifiers for all entity types. More...
 
typedef std::map< std::string,
common::SkeletonAnimation * > 
SkeletonAnimation_M
 Typedef the skeleton animation map, indexed by their names. More...
 

Public Member Functions

 Actor (BasePtr _parent)
 Constructor. More...
 
virtual ~Actor ()
 Destructor. More...
 
void AddChild (BasePtr _child)
 Add a child to this entity. More...
 
void AddType (EntityType _type)
 Add a type specifier. More...
 
void AttachStaticModel (ModelPtr &_model, ignition::math::Pose3d _offset)
 Attach a static model to this model. More...
 
virtual ignition::math::Box BoundingBox () const
 Get the size of the bounding box. More...
 
ignition::math::Box CollisionBoundingBox () const
 Returns collision bounding box. More...
 
gazebo::physics::JointPtr CreateJoint (const std::string &_name, const std::string &_type, physics::LinkPtr _parent, physics::LinkPtr _child)
 Create a joint for this model. More...
 
gazebo::physics::JointPtr CreateJoint (sdf::ElementPtr _sdf)
 Create a joint for this model. More...
 
LinkPtr CreateLink (const std::string &_name)
 Create a new link for this model. More...
 
void DetachStaticModel (const std::string &_model)
 Detach a static model from this model. More...
 
const ignition::math::Pose3d & DirtyPose () const
 Returns Entity::dirtyPose. More...
 
virtual void FillMsg (msgs::Model &_msg)
 Fill a model message. More...
 
virtual void Fini ()
 Finalize the actor. More...
 
bool GetAutoDisable () const
 Return the value of the SDF <allow_auto_disable> element. More...
 
BasePtr GetByName (const std::string &_name)
 Get by name. More...
 
BasePtr GetChild (unsigned int _i) const
 Get a child by index. More...
 
BasePtr GetChild (const std::string &_name)
 Get a child by name. More...
 
CollisionPtr GetChildCollision (const std::string &_name)
 Get a child collision entity, if one exists. More...
 
unsigned int GetChildCount () const
 Get the number of children. More...
 
LinkPtr GetChildLink (const std::string &_name)
 Get a child linke entity, if one exists. More...
 
GripperPtr GetGripper (size_t _index) const
 Get a gripper based on an index. More...
 
size_t GetGripperCount () const
 Get the number of grippers in this model. More...
 
uint32_t GetId () const
 Return the ID of this entity. More...
 
JointPtr GetJoint (const std::string &name)
 Get a joint. More...
 
JointControllerPtr GetJointController ()
 Get a handle to the Controller for the joints in this model. More...
 
unsigned int GetJointCount () const
 Get the number of joints. More...
 
const Joint_VGetJoints () const
 Get the joints. More...
 
LinkPtr GetLink (const std::string &_name="canonical") const
 Get a link by name. More...
 
const Link_VGetLinks () const
 Construct and return a vector of Link's in this model Note this constructs the vector of Link's on the fly, could be costly. More...
 
std::string GetName () const
 Return the name of the entity. More...
 
void GetNearestEntityBelow (double &_distBelow, std::string &_entityName)
 Get the distance to the nearest entity below (along the Z-axis) this entity. More...
 
BasePtr GetParent () const
 Get the parent. More...
 
int GetParentId () const
 Return the ID of the parent. More...
 
ModelPtr GetParentModel ()
 Get the parent model, if one exists. More...
 
unsigned int GetPluginCount () const
 Get the number of plugins this model has. More...
 
bool GetSaveable () const
 Get whether the object should be "saved", when the user selects to save the world to xml. More...
 
std::string GetScopedName (bool _prependWorldName=false) const
 Return the name of this entity with the model scope model1::...::modelN::entityName. More...
 
virtual const sdf::ElementPtr GetSDF ()
 Get the SDF values for the actor. More...
 
virtual bool GetSelfCollide () const
 Get whether the links in the actor can collide with each other. More...
 
unsigned int GetSensorCount () const
 Get the number of sensors attached to this model. More...
 
unsigned int GetType () const
 Get the full type definition. More...
 
const WorldPtrGetWorld () const
 Get the World this object is in. More...
 
double GetWorldEnergy () const
 Returns this model's total energy, or sum of Model::GetWorldEnergyPotential() and Model::GetWorldEnergyKinetic(). More...
 
double GetWorldEnergyKinetic () const
 Returns sum of the kinetic energies of all links in this model. More...
 
double GetWorldEnergyPotential () const
 Returns the potential energy of all links and joint springs in the model. More...
 
bool HasType (const EntityType &_t) const
 Returns true if this object's type definition has the given type. More...
 
virtual void Init ()
 Initialize the actor. More...
 
ignition::math::Pose3d InitialRelativePose () const
 Get the initial relative pose. More...
 
virtual bool IsActive () const
 Returns true when actor is playing animation. More...
 
bool IsCanonicalLink () const
 A helper function that checks if this is a canonical body. More...
 
bool IsSelected () const
 True if the entity is selected by the user. More...
 
bool IsStatic () const
 Return whether this entity is static. More...
 
void Load (sdf::ElementPtr _sdf)
 Load the actor. More...
 
void LoadJoints ()
 Load all the joints. More...
 
void LoadPlugins ()
 Load all plugins. More...
 
ModelPtr NestedModel (const std::string &_name) const
 Get a nested model that is a direct child of this model. More...
 
const Model_VNestedModels () const
 Get all the nested models. More...
 
bool operator== (const Base &_ent) const
 Returns true if the entities are the same. More...
 
void PlaceOnEntity (const std::string &_entityName)
 Move this entity to be ontop of another entity by name. More...
 
void PlaceOnNearestEntityBelow ()
 Move this entity to be ontop of the nearest entity below. More...
 
virtual void Play ()
 Start playing the script. More...
 
void PluginInfo (const common::URI &_pluginUri, ignition::msgs::Plugin_V &_plugins, bool &_success)
 Get information about plugins in this model or one of its children, according to the given _pluginUri. More...
 
void Print (const std::string &_prefix)
 Print this object to screen via gzmsg. More...
 
void ProcessMsg (const msgs::Model &_msg)
 Update parameters from a model message. More...
 
virtual ignition::math::Vector3d RelativeAngularAccel () const
 Get the angular acceleration of the entity. More...
 
virtual ignition::math::Vector3d RelativeAngularVel () const
 Get the angular velocity of the entity. More...
 
virtual ignition::math::Vector3d RelativeLinearAccel () const
 Get the linear acceleration of the entity. More...
 
virtual ignition::math::Vector3d RelativeLinearVel () const
 Get the linear velocity of the entity. More...
 
ignition::math::Pose3d RelativePose () const
 Get the pose of the entity relative to its parent. More...
 
virtual void RemoveChild (EntityPtr _child)
 Remove a child. More...
 
virtual void RemoveChild (unsigned int _id)
 Remove a child from this entity. More...
 
void RemoveChild (const std::string &_name)
 Remove a child by name. More...
 
void RemoveChild (physics::BasePtr _child)
 Remove a child by pointer. More...
 
void RemoveChildren ()
 Remove all children. More...
 
bool RemoveJoint (const std::string &_name)
 Remove a joint for this model. More...
 
void Reset ()
 Reset the actor. More...
 
virtual void Reset (Base::EntityType _resetType)
 Calls recursive Reset on one of the Base::EntityType's. More...
 
void ResetCustomTrajectory ()
 Reset custom trajectory of the actor. More...
 
void ResetPhysicsStates ()
 Reset the velocity, acceleration, force and torque of all child links. More...
 
ignition::math::Vector3d Scale () const
 Get the scale of model. More...
 
double ScriptTime () const
 Get the current script time. More...
 
std::vector< std::string > SensorScopedName (const std::string &_name) const
 Get scoped sensor name(s) in the model that matches sensor name. More...
 
void SetAngularAccel (const ignition::math::Vector3d &_vel) GAZEBO_DEPRECATED(9.0)
 Set the angular acceleration of the model, and all its links. More...
 
void SetAngularVel (const ignition::math::Vector3d &_vel)
 Set the angular velocity of the model, and all its links. More...
 
void SetAnimation (const common::PoseAnimationPtr &_anim, boost::function< void()> _onComplete)
 Set an animation for this entity. More...
 
void SetAnimation (common::PoseAnimationPtr _anim)
 Set an animation for this entity. More...
 
void SetAutoDisable (bool _disable)
 Allow the model the auto disable. More...
 
void SetCanonicalLink (bool _value)
 Set to true if this entity is a canonical link for a model. More...
 
void SetCollideMode (const std::string &_mode)
 This is not implemented in Link, which means this function doesn't do anything. More...
 
void SetCustomTrajectory (TrajectoryInfoPtr &_trajInfo)
 Set a custom trajectory for the actor, using one of the existing animations. More...
 
void SetEnabled (bool _enabled)
 Enable all the links in all the models. More...
 
void SetGravityMode (const bool &_value)
 Set the gravity mode of the model. More...
 
void SetInitialRelativePose (const ignition::math::Pose3d &_pose)
 Set the initial pose. More...
 
void SetJointAnimation (const std::map< std::string, common::NumericAnimationPtr > &_anims, boost::function< void()> _onComplete=NULL)
 Joint Animation. More...
 
void SetJointPosition (const std::string &_jointName, double _position, int _index=0)
 Set the positions of a Joint by name. More...
 
void SetJointPositions (const std::map< std::string, double > &_jointPositions)
 Set the positions of a set of joints. More...
 
void SetLaserRetro (const float _retro)
 Set the laser retro reflectiveness of the model. More...
 
void SetLinearAccel (const ignition::math::Vector3d &_vel) GAZEBO_DEPRECATED(9.0)
 Set the linear acceleration of the model, and all its links. More...
 
void SetLinearVel (const ignition::math::Vector3d &_vel)
 Set the linear velocity of the model, and all its links. More...
 
void SetLinkWorldPose (const ignition::math::Pose3d &_pose, std::string _linkName)
 Set the Pose of the entire Model by specifying desired Pose of a Link within the Model. More...
 
void SetLinkWorldPose (const ignition::math::Pose3d &_pose, const LinkPtr &_link)
 Set the Pose of the entire Model by specifying desired Pose of a Link within the Model. More...
 
virtual void SetName (const std::string &_name)
 Set the name of the entity. More...
 
void SetParent (BasePtr _parent)
 Set the parent. More...
 
void SetRelativePose (const ignition::math::Pose3d &_pose, const bool _notify=true, const bool _publish=true)
 Set the pose of the entity relative to its parent. More...
 
void SetSaveable (bool _v)
 Set whether the object should be "saved", when the user selects to save the world to xml. More...
 
void SetScale (const ignition::math::Vector3d &_scale, const bool _publish=false)
 Set the scale of model. More...
 
void SetScriptTime (const double _time)
 Set the current script time. More...
 
virtual bool SetSelected (bool _show)
 Set whether this entity has been selected by the user through the gui. More...
 
virtual void SetSelfCollide (bool _selfCollide)
 Override set self collide method to make it impossible to set it to true for actors. More...
 
void SetState (const ModelState &_state)
 Set the current model state. More...
 
void SetStatic (const bool &_static)
 Set whether this entity is static: immovable. More...
 
virtual void SetWindMode (const bool _enabled)
 Override set wind mode method to make it impossible to set it to true for actors. More...
 
void SetWorld (const WorldPtr &_newWorld)
 Set the world this object belongs to. More...
 
void SetWorldPose (const ignition::math::Pose3d &_pose, const bool _notify=true, const bool _publish=true)
 Set the world pose of the entity. More...
 
void SetWorldTwist (const ignition::math::Vector3d &_linear, const ignition::math::Vector3d &_angular, const bool _updateChildren=true)
 Set angular and linear rates of an physics::Entity. More...
 
boost::shared_ptr< Modelshared_from_this ()
 Allow Model class to share itself as a boost shared_ptr. More...
 
const SkeletonAnimation_MSkeletonAnimations () const
 Returns a dictionary of all the skeleton animations associated with the actor. More...
 
virtual void Stop ()
 Stop playing the script. More...
 
virtual void StopAnimation ()
 Stop the current animations. More...
 
std::string TypeStr () const
 Get the string name for the entity type. More...
 
virtual const sdf::ElementPtr UnscaledSDF ()
 
void Update ()
 Update the actor. More...
 
virtual void UpdateParameters (sdf::ElementPtr _sdf)
 Update the parameters using new sdf values. More...
 
common::URI URI () const
 Return the common::URI of this entity. More...
 
virtual bool WindMode () const
 Get whether the links in the actor are affected by wind. More...
 
virtual ignition::math::Vector3d WorldAngularAccel () const
 Get the angular acceleration of the entity in the world frame. More...
 
virtual ignition::math::Vector3d WorldAngularVel () const
 Get the angular velocity of the entity in the world frame. More...
 
virtual ignition::math::Vector3d WorldLinearAccel () const
 Get the linear acceleration of the entity in the world frame. More...
 
virtual ignition::math::Vector3d WorldLinearVel () const
 Get the linear velocity of the entity in the world frame. More...
 
virtual const
ignition::math::Pose3d & 
WorldPose () const
 Get the absolute pose of the entity. More...
 

Protected Member Functions

void ComputeScopedName ()
 Compute the scoped name of this object based on its parents. More...
 
virtual void OnPoseChange ()
 Callback when the pose of the model has been changed. More...
 
virtual void RegisterIntrospectionItems ()
 Register items in the introspection service. More...
 
virtual void UnregisterIntrospectionItems ()
 Unregister items in the introspection service. More...
 

Protected Attributes

bool active
 True if the actor is being updated. More...
 
common::PoseAnimationPtr animation
 Current pose animation. More...
 
event::ConnectionPtr animationConnection
 Connection used to update an animation. More...
 
ignition::math::Pose3d animationStartPose
 Start pose of an animation. More...
 
std::vector< ModelPtrattachedModels
 used by Model::AttachStaticModel More...
 
std::vector
< ignition::math::Pose3d > 
attachedModelsOffset
 used by Model::AttachStaticModel More...
 
bool autoStart
 True if the actor should start running automatically, otherwise it will only start once Play is called. More...
 
transport::PublisherPtr bonePosePub
 Publisher to send bone info. More...
 
Base_V children
 Children of this entity. More...
 
std::vector< event::ConnectionPtrconnections
 All our event connections. More...
 
ignition::math::Pose3d dirtyPose
 The pose set by a physics engine. More...
 
std::map< std::string, bool > interpolateX
 Map of animation types (the same name as in skelAnimation and skelNodesMap) and whether they should be interpolated along X. More...
 
std::vector< common::URIintrospectionItems
 All the introspection items regsitered for this. More...
 
transport::PublisherPtr jointPub
 Publisher for joint info. More...
 
ignition::math::Vector3d lastPos
 Last position of the actor. More...
 
unsigned int lastTraj
 Id of the last trajectory. More...
 
bool loop
 True if the animation should loop. More...
 
LinkPtr mainLink
 Pointer to the actor's canonical link. More...
 
const common::Meshmesh = nullptr
 Pointer to the actor's mesh. More...
 
transport::NodePtr node
 Communication node. More...
 
ignition::transport::Node nodeIgn
 Ignition communication node. More...
 
BasePtr parent
 Parent of this entity. More...
 
EntityPtr parentEntity
 A helper that prevents numerous dynamic_casts. More...
 
double pathLength
 Length of the actor's path. More...
 
common::Time playStartTime
 Time when the animation was started. More...
 
common::Time prevAnimationTime
 Previous time an animation was updated. More...
 
common::Time prevFrameTime
 Time of the previous frame. More...
 
transport::PublisherPtr requestPub
 Request publisher. More...
 
ignition::transport::Node::Publisher requestPubIgn
 Request publisher. More...
 
ignition::math::Vector3d scale
 Scale of the entity. More...
 
double scriptLength
 Total time length of the script, in seconds. More...
 
sdf::ElementPtr sdf
 The SDF values for this object. More...
 
SkeletonAnimation_M skelAnimation
 Map of skeleton animations, indexed by their names. More...
 
common::Skeletonskeleton = nullptr
 The actor's skeleton. More...
 
std::map< std::string,
std::map< std::string,
std::string > > 
skelNodesMap
 Skeleton to node map: More...
 
std::string skinFile
 Filename for the skin. More...
 
double skinScale
 Scaling factor to apply to the skin. More...
 
double startDelay
 Time to wait before starting the script. More...
 
std::map< unsigned int,
common::PoseAnimation * > 
trajectories
 Map of all the trajectories (pose animations) and their indices. More...
 
std::vector< TrajectoryInfotrajInfo
 A vector of trajectory information, which contains information such as their durations, uniquely identifiable by their IDs. More...
 
transport::PublisherPtr visPub
 Visual publisher. More...
 
ignition::transport::Node::Publisher visPubIgn
 Visual publisher. More...
 
uint32_t visualId
 ID for the visual representing the skin. More...
 
msgs::Visual * visualMsg
 Visual message container. More...
 
std::string visualName
 Name of the visual representing the skin. More...
 
WorldPtr world
 Pointer to the world. More...
 
ignition::math::Pose3d worldPose
 World pose of the entity. More...
 

Detailed Description

Actor class enables GPU based mesh model / skeleton scriptable animation.

Member Typedef Documentation

typedef std::map<std::string, common::SkeletonAnimation *> SkeletonAnimation_M

Typedef the skeleton animation map, indexed by their names.

Member Enumeration Documentation

enum EntityType
inherited

Unique identifiers for all entity types.

Enumerator
BASE 

Base type.

ENTITY 

Entity type.

MODEL 

Model type.

LINK 

Link type.

COLLISION 

Collision type.

LIGHT 

Light type.

VISUAL 

Visual type.

JOINT 

Joint type.

BALL_JOINT 

BallJoint type.

HINGE2_JOINT 

Hing2Joint type.

HINGE_JOINT 

HingeJoint type.

SLIDER_JOINT 

SliderJoint type.

SCREW_JOINT 

ScrewJoint type.

UNIVERSAL_JOINT 

UniversalJoint type.

GEARBOX_JOINT 

GearboxJoint type.

FIXED_JOINT 

FixedJoint type.

ACTOR 

Actor type.

SHAPE 

Shape type.

BOX_SHAPE 

BoxShape type.

CYLINDER_SHAPE 

CylinderShape type.

HEIGHTMAP_SHAPE 

HeightmapShape type.

MAP_SHAPE 

MapShape type.

MULTIRAY_SHAPE 

MultiRayShape type.

RAY_SHAPE 

RayShape type.

PLANE_SHAPE 

PlaneShape type.

SPHERE_SHAPE 

SphereShape type.

MESH_SHAPE 

MeshShape type.

POLYLINE_SHAPE 

PolylineShape type.

SENSOR_COLLISION 

Indicates a collision shape used for sensing.

Constructor & Destructor Documentation

Actor ( BasePtr  _parent)
explicit

Constructor.

Parameters
[in]_parentParent object
virtual ~Actor ( )
virtual

Destructor.

Member Function Documentation

void AddChild ( BasePtr  _child)
inherited

Add a child to this entity.

Parameters
[in]_childChild entity.
void AddType ( EntityType  _type)
inherited

Add a type specifier.

Parameters
[in]_typeNew type to append to this objects type definition.
void AttachStaticModel ( ModelPtr _model,
ignition::math::Pose3d  _offset 
)
inherited

Attach a static model to this model.

This function takes as input a static Model, which is a Model that has been marked as static (no physics simulation), and attaches it to this Model with a given offset.

This function is useful when you want to simulate a grasp of a static object, or move a static object around using a dynamic model.

If you are in doubt, do not use this function.

Parameters
[in]_modelPointer to the static model.
[in]_offsetOffset, relative to this Model, to place _model.
virtual ignition::math::Box BoundingBox ( ) const
virtualinherited

Get the size of the bounding box.

Returns
The bounding box.

Reimplemented from Entity.

ignition::math::Box CollisionBoundingBox ( ) const
inherited

Returns collision bounding box.

Returns
Collsion bounding box.
void ComputeScopedName ( )
protectedinherited

Compute the scoped name of this object based on its parents.

See Also
Base::GetScopedName
gazebo::physics::JointPtr CreateJoint ( const std::string &  _name,
const std::string &  _type,
physics::LinkPtr  _parent,
physics::LinkPtr  _child 
)
inherited

Create a joint for this model.

Parameters
[in]_namename of joint
[in]_typetype of joint
[in]_parentparent link of joint
[in]_childchild link of joint
Returns
a JointPtr to the new joint created, returns NULL JointPtr() if joint by name _name already exists.
Exceptions
common::ExceptionWhen _type is not recognized
gazebo::physics::JointPtr CreateJoint ( sdf::ElementPtr  _sdf)
inherited

Create a joint for this model.

Parameters
[in]_sdfSDF parameters for <joint>
Returns
a JointPtr to the new joint created, returns NULL JointPtr() if joint by name _name already exists.
Exceptions
common::ExceptionWhen _type is not recognized
LinkPtr CreateLink ( const std::string &  _name)
inherited

Create a new link for this model.

Parameters
[in]_namename of the new link
Returns
a LinkPtr to the new link created, returns NULL if link _name already exists.
void DetachStaticModel ( const std::string &  _model)
inherited

Detach a static model from this model.

Parameters
[in]_modelName of an attached static model to remove.
See Also
Model::AttachStaticModel.
const ignition::math::Pose3d& DirtyPose ( ) const
inherited

Returns Entity::dirtyPose.

The dirty pose is the pose set by the physics engine before it's value is propagated to the rest of the simulator.

Returns
The dirty pose of the entity.
virtual void FillMsg ( msgs::Model &  _msg)
virtualinherited

Fill a model message.

Parameters
[in]_msgMessage to fill using this model's data.
virtual void Fini ( )
virtual

Finalize the actor.

Reimplemented from Model.

bool GetAutoDisable ( ) const
inherited

Return the value of the SDF <allow_auto_disable> element.

Returns
True if auto disable is allowed for this model.
BasePtr GetByName ( const std::string &  _name)
inherited

Get by name.

Parameters
[in]_nameGet a child (or self) object by name
Returns
A pointer to the object, NULL if not found
BasePtr GetChild ( unsigned int  _i) const
inherited

Get a child by index.

Parameters
[in]_iIndex of the child to retreive.
Returns
A pointer to the object, NULL if the index is invalid.
BasePtr GetChild ( const std::string &  _name)
inherited

Get a child by name.

Parameters
[in]_nameName of the child.
Returns
A pointer to the object, NULL if not found
CollisionPtr GetChildCollision ( const std::string &  _name)
inherited

Get a child collision entity, if one exists.

Parameters
[in]_nameName of the child collision object.
Returns
Pointer to the Collision object, or NULL if not found.
unsigned int GetChildCount ( ) const
inherited

Get the number of children.

Returns
The number of children.
LinkPtr GetChildLink ( const std::string &  _name)
inherited

Get a child linke entity, if one exists.

Parameters
[in]_nameName of the child Link object.
Returns
Pointer to the Link object, or NULL if not found.
GripperPtr GetGripper ( size_t  _index) const
inherited

Get a gripper based on an index.

Returns
A pointer to a Gripper. Null if the _index is invalid.
size_t GetGripperCount ( ) const
inherited

Get the number of grippers in this model.

Returns
Size of this->grippers array.
See Also
Model::GetGripper()
uint32_t GetId ( ) const
inherited

Return the ID of this entity.

This id is unique.

Returns
Integer ID.
JointPtr GetJoint ( const std::string &  name)
inherited

Get a joint.

Parameters
nameThe name of the joint, specified in the world file
Returns
Pointer to the joint
JointControllerPtr GetJointController ( )
inherited

Get a handle to the Controller for the joints in this model.

Returns
A handle to the Controller for the joints in this model.
unsigned int GetJointCount ( ) const
inherited

Get the number of joints.

Returns
Get the number of joints.
const Joint_V& GetJoints ( ) const
inherited

Get the joints.

Returns
Vector of joints.
LinkPtr GetLink ( const std::string &  _name = "canonical") const
inherited

Get a link by name.

Parameters
[in]_nameName of the link to get.
Returns
Pointer to the link, NULL if the name is invalid.
const Link_V& GetLinks ( ) const
inherited

Construct and return a vector of Link's in this model Note this constructs the vector of Link's on the fly, could be costly.

Returns
a vector of Link's in this model
std::string GetName ( ) const
inherited

Return the name of the entity.

Returns
Name of the entity.
void GetNearestEntityBelow ( double &  _distBelow,
std::string &  _entityName 
)
inherited

Get the distance to the nearest entity below (along the Z-axis) this entity.

Parameters
[out]_distBelowThe distance to the nearest entity below.
[out]_entityNameThe name of the nearest entity below.
BasePtr GetParent ( ) const
inherited

Get the parent.

Returns
Pointer to the parent entity.
int GetParentId ( ) const
inherited

Return the ID of the parent.

Returns
Integer ID.
ModelPtr GetParentModel ( )
inherited

Get the parent model, if one exists.

Returns
Pointer to a model, or NULL if no parent model exists.
unsigned int GetPluginCount ( ) const
inherited

Get the number of plugins this model has.

Returns
Number of plugins associated with this model.
bool GetSaveable ( ) const
inherited

Get whether the object should be "saved", when the user selects to save the world to xml.

Returns
True if the object is saveable.
std::string GetScopedName ( bool  _prependWorldName = false) const
inherited

Return the name of this entity with the model scope model1::...::modelN::entityName.

Parameters
[in]_prependWorldNameTrue to prended the returned string with the world name. The result will be world::model1::...::modelN::entityName.
Returns
The scoped name.
virtual const sdf::ElementPtr GetSDF ( )
virtual

Get the SDF values for the actor.

Returns
Pointer to the SDF values.

Reimplemented from Model.

virtual bool GetSelfCollide ( ) const
virtual

Get whether the links in the actor can collide with each other.

This is always false for actors.

Returns
False, because actors can't self-collide.
See Also
SetSelfCollide()

Reimplemented from Model.

unsigned int GetSensorCount ( ) const
inherited

Get the number of sensors attached to this model.

This will count all the sensors attached to all the links.

Returns
Number of sensors.
unsigned int GetType ( ) const
inherited

Get the full type definition.

Returns
The full type definition.
const WorldPtr& GetWorld ( ) const
inherited

Get the World this object is in.

Returns
The World this object is part of.
double GetWorldEnergy ( ) const
inherited

Returns this model's total energy, or sum of Model::GetWorldEnergyPotential() and Model::GetWorldEnergyKinetic().

Returns
this link's total energy
double GetWorldEnergyKinetic ( ) const
inherited

Returns sum of the kinetic energies of all links in this model.

Computed using link's CoG velocity in the inertial (world) frame.

Returns
this link's kinetic energy
double GetWorldEnergyPotential ( ) const
inherited

Returns the potential energy of all links and joint springs in the model.

Returns
this link's potential energy,
bool HasType ( const EntityType _t) const
inherited

Returns true if this object's type definition has the given type.

Parameters
[in]_tType to check.
Returns
True if this object's type definition has the.
virtual void Init ( )
virtual

Initialize the actor.

Reimplemented from Model.

ignition::math::Pose3d InitialRelativePose ( ) const
inherited

Get the initial relative pose.

Returns
The initial relative pose.
virtual bool IsActive ( ) const
virtual

Returns true when actor is playing animation.

Returns
True if animation is being played.
bool IsCanonicalLink ( ) const
inlineinherited

A helper function that checks if this is a canonical body.

Returns
True if the link is canonical.
bool IsSelected ( ) const
inherited

True if the entity is selected by the user.

Returns
True if the entity is selected.
bool IsStatic ( ) const
inherited

Return whether this entity is static.

Returns
True if static.
void Load ( sdf::ElementPtr  _sdf)
virtual

Load the actor.

Parameters
[in]_sdfSDF parameters

Reimplemented from Entity.

void LoadJoints ( )
inherited

Load all the joints.

void LoadPlugins ( )
inherited

Load all plugins.

Load all plugins specified in the SDF for the model.

ModelPtr NestedModel ( const std::string &  _name) const
inherited

Get a nested model that is a direct child of this model.

Parameters
[in]_nameName of the child model to get.
Returns
Pointer to the model, NULL if the name is invalid.
const Model_V& NestedModels ( ) const
inherited

Get all the nested models.

Returns
a vector of Model's in this model
virtual void OnPoseChange ( )
protectedvirtualinherited

Callback when the pose of the model has been changed.

Implements Entity.

bool operator== ( const Base _ent) const
inherited

Returns true if the entities are the same.

Checks only the name.

Parameters
[in]_entBase object to compare with.
Returns
True if the entities are the same.
void PlaceOnEntity ( const std::string &  _entityName)
inherited

Move this entity to be ontop of another entity by name.

Parameters
[in]_entityNameName of the Entity this Entity should be ontop of.
void PlaceOnNearestEntityBelow ( )
inherited

Move this entity to be ontop of the nearest entity below.

virtual void Play ( )
virtual

Start playing the script.

void PluginInfo ( const common::URI _pluginUri,
ignition::msgs::Plugin_V &  _plugins,
bool &  _success 
)
inherited

Get information about plugins in this model or one of its children, according to the given _pluginUri.

Some accepted URI patterns:

  • Info about a specific model plugin in this model: data://world/<world_name>/model/<this_name>/plugin/<plugin_name>
  • Info about all model plugins in this model (empty plugin name): data://world/<world_name>/model/<this_name>/plugin
  • Info about a model plugin in a nested model: data://world/<world_name>/model/<this_name>/model/ <nested_model_name>/plugin/<plugin_name>
Parameters
[in]_pluginUriURI for the desired plugin(s).
[out]_pluginsMessage containing vector of plugins.
[out]_successTrue if the info was successfully obtained.
void Print ( const std::string &  _prefix)
inherited

Print this object to screen via gzmsg.

Parameters
[in]_prefixUsually a set of spaces.
void ProcessMsg ( const msgs::Model &  _msg)
inherited

Update parameters from a model message.

Parameters
[in]_msgMessage to process.
virtual void RegisterIntrospectionItems ( )
protectedvirtualinherited

Register items in the introspection service.

Reimplemented from Base.

virtual ignition::math::Vector3d RelativeAngularAccel ( ) const
virtualinherited

Get the angular acceleration of the entity.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d RelativeAngularVel ( ) const
virtualinherited

Get the angular velocity of the entity.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d RelativeLinearAccel ( ) const
virtualinherited

Get the linear acceleration of the entity.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d RelativeLinearVel ( ) const
virtualinherited

Get the linear velocity of the entity.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

ignition::math::Pose3d RelativePose ( ) const
inherited

Get the pose of the entity relative to its parent.

Returns
The pose of the entity relative to its parent.
virtual void RemoveChild ( EntityPtr  _child)
virtualinherited

Remove a child.

Parameters
[in]_childRemove a child entity.
virtual void RemoveChild ( unsigned int  _id)
virtualinherited

Remove a child from this entity.

Parameters
[in]_idID of the child to remove.
void RemoveChild ( const std::string &  _name)
inherited

Remove a child by name.

Parameters
[in]_nameName of the child.
void RemoveChild ( physics::BasePtr  _child)
inherited

Remove a child by pointer.

Parameters
[in]_childPointer to the child.
void RemoveChildren ( )
inherited

Remove all children.

bool RemoveJoint ( const std::string &  _name)
inherited

Remove a joint for this model.

Parameters
[in]_namename of joint
Returns
true if successful, false if not.
void Reset ( )
virtual

Reset the actor.

Reimplemented from Entity.

virtual void Reset ( Base::EntityType  _resetType)
virtualinherited

Calls recursive Reset on one of the Base::EntityType's.

Parameters
[in]_resetTypeThe type of reset operation
void ResetCustomTrajectory ( )

Reset custom trajectory of the actor.

See Also
SetCustomTrajectory
void ResetPhysicsStates ( )
inherited

Reset the velocity, acceleration, force and torque of all child links.

ignition::math::Vector3d Scale ( ) const
inherited

Get the scale of model.

Returns
Scale of the model.
See Also
void SetScale(const ignition::math::Vector3d &_scale, const bool _publish = false)
double ScriptTime ( ) const

Get the current script time.

Returns
_time Time in seconds from the beginning of the current script loop.
See Also
SetScriptTime
std::vector<std::string> SensorScopedName ( const std::string &  _name) const
inherited

Get scoped sensor name(s) in the model that matches sensor name.

Get the names of sensors in the model where sensor name matches the user provided argument.

Note
A Model does not manage or maintain a pointer to a sensors::Sensor. Access to a Sensor object is accomplished through the sensors::SensorManager. This was done to separate the physics engine from the sensor engine.
Parameters
[in]_nameUnscoped sensor name.
Returns
The scoped name of the sensor(s), or empty list if not found.
void SetAngularAccel ( const ignition::math::Vector3d &  _vel)
inherited

Set the angular acceleration of the model, and all its links.

Parameters
[in]_velThe new angular acceleration
Deprecated:
acceleration should be achieved by applying a force.
void SetAngularVel ( const ignition::math::Vector3d &  _vel)
inherited

Set the angular velocity of the model, and all its links.

Parameters
[in]_velThe new angular velocity.
void SetAnimation ( const common::PoseAnimationPtr _anim,
boost::function< void()>  _onComplete 
)
inherited

Set an animation for this entity.

Parameters
[in]_animPose animation.
[in]_onCompleteCallback for when the animation completes.
void SetAnimation ( common::PoseAnimationPtr  _anim)
inherited

Set an animation for this entity.

Parameters
[in]_animPose animation.
void SetAutoDisable ( bool  _disable)
inherited

Allow the model the auto disable.

This is ignored if the model has joints.

Parameters
[in]_disableIf true, the model is allowed to auto disable.
void SetCanonicalLink ( bool  _value)
inherited

Set to true if this entity is a canonical link for a model.

Parameters
[in]_valueTrue if the link is canonical.
void SetCollideMode ( const std::string &  _mode)
inherited

This is not implemented in Link, which means this function doesn't do anything.

Set the collide mode of the model.

Parameters
[in]_modeThe collision mode
void SetCustomTrajectory ( TrajectoryInfoPtr _trajInfo)

Set a custom trajectory for the actor, using one of the existing animations.

This will override any trajectories previously defined. When a custom trajectory is defined, the script time must be set with SetScriptTime in order to play the animation.

Parameters
[in]_trajInfoInformation about custom trajectory.
See Also
ResetCustomTrajectory, SetScriptTime
void SetEnabled ( bool  _enabled)
inherited

Enable all the links in all the models.

Parameters
[in]_enabledTrue to enable all the links.
void SetGravityMode ( const bool &  _value)
inherited

Set the gravity mode of the model.

Parameters
[in]_valueTrue to enable gravity.
void SetInitialRelativePose ( const ignition::math::Pose3d &  _pose)
inherited

Set the initial pose.

Parameters
[in]_poseThe initial pose.
void SetJointAnimation ( const std::map< std::string, common::NumericAnimationPtr > &  _anims,
boost::function< void()>  _onComplete = NULL 
)
inherited

Joint Animation.

Parameters
[in]_animMap of joint names to their position animation.
[in]_onCompleteCallback function for when the animation completes.
void SetJointPosition ( const std::string &  _jointName,
double  _position,
int  _index = 0 
)
inherited

Set the positions of a Joint by name.

See Also
JointController::SetJointPosition
Parameters
[in]_jointNameName of the joint to set.
[in]_positionPosition to set the joint to.
void SetJointPositions ( const std::map< std::string, double > &  _jointPositions)
inherited

Set the positions of a set of joints.

See Also
JointController::SetJointPositions.
Parameters
[in]_jointPositionsMap of joint names to their positions.
void SetLaserRetro ( const float  _retro)
inherited

Set the laser retro reflectiveness of the model.

Parameters
[in]_retroRetro reflectance value.
void SetLinearAccel ( const ignition::math::Vector3d &  _vel)
inherited

Set the linear acceleration of the model, and all its links.

Parameters
[in]_velThe new linear acceleration.
Deprecated:
acceleration should be achieved by applying a force.
void SetLinearVel ( const ignition::math::Vector3d &  _vel)
inherited

Set the linear velocity of the model, and all its links.

Parameters
[in]_velThe new linear velocity.
void SetLinkWorldPose ( const ignition::math::Pose3d &  _pose,
std::string  _linkName 
)
inherited

Set the Pose of the entire Model by specifying desired Pose of a Link within the Model.

Doing so, keeps the configuration of the Model unchanged, i.e. all Joint angles are unchanged.

Parameters
[in]_posePose to set the link to.
[in]_linkNameName of the link to set.
void SetLinkWorldPose ( const ignition::math::Pose3d &  _pose,
const LinkPtr _link 
)
inherited

Set the Pose of the entire Model by specifying desired Pose of a Link within the Model.

Doing so, keeps the configuration of the Model unchanged, i.e. all Joint angles are unchanged.

Parameters
[in]_posePose to set the link to.
[in]_linkPointer to the link to set.
virtual void SetName ( const std::string &  _name)
virtualinherited

Set the name of the entity.

Parameters
[in]_nameThe new name.

Reimplemented from Base.

void SetParent ( BasePtr  _parent)
inherited

Set the parent.

Parameters
[in]_parentParent object.
void SetRelativePose ( const ignition::math::Pose3d &  _pose,
const bool  _notify = true,
const bool  _publish = true 
)
inherited

Set the pose of the entity relative to its parent.

Parameters
[in]_poseThe new pose.
[in]_notifyTrue = tell children of the pose change.
[in]_publishTrue to publish the pose.
void SetSaveable ( bool  _v)
inherited

Set whether the object should be "saved", when the user selects to save the world to xml.

Parameters
[in]_vSet to True if the object should be saved.
void SetScale ( const ignition::math::Vector3d &  _scale,
const bool  _publish = false 
)
inherited

Set the scale of model.

Parameters
[in]_scaleScale to set the model to.
[in]_publishTrue to publish a message for the client with the new scale.
See Also
ignition::math::Vector3d Scale() const
void SetScriptTime ( const double  _time)

Set the current script time.

Parameters
[in]_timeTime in seconds from the beginning of the current script loop.
See Also
ScriptTime
virtual bool SetSelected ( bool  _show)
virtualinherited

Set whether this entity has been selected by the user through the gui.

Parameters
[in]_showTrue to set this entity as selected.

Reimplemented in Link.

virtual void SetSelfCollide ( bool  _selfCollide)
virtual

Override set self collide method to make it impossible to set it to true for actors.

Parameters
[in]_selfCollideWhether this can collide with itself, will be false for actors regardless of the input.
See Also
GetSelfCollide()

Reimplemented from Model.

void SetState ( const ModelState _state)
inherited

Set the current model state.

Parameters
[in]_stateState to set the model to.
void SetStatic ( const bool &  _static)
inherited

Set whether this entity is static: immovable.

Parameters
[in]_staticTrue = static.
virtual void SetWindMode ( const bool  _enabled)
virtual

Override set wind mode method to make it impossible to set it to true for actors.

Parameters
[in]_enabledWhether this is affected by wind, will be false for actors regardless of the input.
See Also
GetWindMode()

Reimplemented from Model.

void SetWorld ( const WorldPtr _newWorld)
inherited

Set the world this object belongs to.

This will also set the world for all children.

Parameters
[in]_newWorldThe new World this object is part of.
void SetWorldPose ( const ignition::math::Pose3d &  _pose,
const bool  _notify = true,
const bool  _publish = true 
)
inherited

Set the world pose of the entity.

Parameters
[in]_poseThe new world pose.
[in]_notifyTrue = tell children of the pose change.
[in]_publishTrue to publish the pose.
void SetWorldTwist ( const ignition::math::Vector3d &  _linear,
const ignition::math::Vector3d &  _angular,
const bool  _updateChildren = true 
)
inherited

Set angular and linear rates of an physics::Entity.

Parameters
[in]_linearLinear twist.
[in]_angularAngular twist.
[in]_updateChildrenTrue to pass this update to child entities.
boost::shared_ptr<Model> shared_from_this ( )
inherited

Allow Model class to share itself as a boost shared_ptr.

Returns
a shared pointer to itself
const SkeletonAnimation_M& SkeletonAnimations ( ) const

Returns a dictionary of all the skeleton animations associated with the actor.

Returns
A map of SkeletonAnimation, indexed by their name.
virtual void Stop ( )
virtual

Stop playing the script.

virtual void StopAnimation ( )
virtualinherited

Stop the current animations.

Reimplemented from Entity.

std::string TypeStr ( ) const
inherited

Get the string name for the entity type.

Returns
The string name for this entity.
virtual void UnregisterIntrospectionItems ( )
protectedvirtualinherited

Unregister items in the introspection service.

virtual const sdf::ElementPtr UnscaledSDF ( )
virtualinherited
void Update ( )
virtual

Update the actor.

Reimplemented from Base.

virtual void UpdateParameters ( sdf::ElementPtr  _sdf)
virtual

Update the parameters using new sdf values.

Parameters
[in]_sdfSDF values to update from.

Reimplemented from Model.

common::URI URI ( ) const
inherited

Return the common::URI of this entity.

The URI includes the world where the entity is contained and all the hierarchy of sub-entities that can compose this entity. E.g.: A link entity contains the name of the link and the model where the link is contained.

Returns
The URI of this entity.
virtual bool WindMode ( ) const
virtual

Get whether the links in the actor are affected by wind.

This is always false for actors.

Returns
False, because forces can't be applied to actors.
See Also
SetWindMode()

Reimplemented from Model.

virtual ignition::math::Vector3d WorldAngularAccel ( ) const
virtualinherited

Get the angular acceleration of the entity in the world frame.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d WorldAngularVel ( ) const
virtualinherited

Get the angular velocity of the entity in the world frame.

Returns
ignition::math::Vector3, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d WorldLinearAccel ( ) const
virtualinherited

Get the linear acceleration of the entity in the world frame.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual ignition::math::Vector3d WorldLinearVel ( ) const
virtualinherited

Get the linear velocity of the entity in the world frame.

Returns
ignition::math::Vector3d, set to 0, 0, 0 if the model has no body.

Reimplemented from Entity.

virtual const ignition::math::Pose3d& WorldPose ( ) const
inlinevirtualinherited

Get the absolute pose of the entity.

Returns
The absolute pose of the entity.

Reimplemented in Collision, and Light.

References Entity::worldPose.

Member Data Documentation

bool active
protected

True if the actor is being updated.

common::PoseAnimationPtr animation
protectedinherited

Current pose animation.

event::ConnectionPtr animationConnection
protectedinherited

Connection used to update an animation.

ignition::math::Pose3d animationStartPose
protectedinherited

Start pose of an animation.

std::vector<ModelPtr> attachedModels
protectedinherited
std::vector<ignition::math::Pose3d> attachedModelsOffset
protectedinherited
bool autoStart
protected

True if the actor should start running automatically, otherwise it will only start once Play is called.

transport::PublisherPtr bonePosePub
protected

Publisher to send bone info.

Base_V children
protectedinherited

Children of this entity.

std::vector<event::ConnectionPtr> connections
protectedinherited

All our event connections.

ignition::math::Pose3d dirtyPose
protectedinherited

The pose set by a physics engine.

std::map<std::string, bool> interpolateX
protected

Map of animation types (the same name as in skelAnimation and skelNodesMap) and whether they should be interpolated along X.

See Also
skelAnimation
skelNodesMap
std::vector<common::URI> introspectionItems
protectedinherited

All the introspection items regsitered for this.

transport::PublisherPtr jointPub
protectedinherited

Publisher for joint info.

ignition::math::Vector3d lastPos
protected

Last position of the actor.

unsigned int lastTraj
protected

Id of the last trajectory.

bool loop
protected

True if the animation should loop.

LinkPtr mainLink
protected

Pointer to the actor's canonical link.

const common::Mesh* mesh = nullptr
protected

Pointer to the actor's mesh.

transport::NodePtr node
protectedinherited

Communication node.

ignition::transport::Node nodeIgn
protectedinherited

Ignition communication node.

BasePtr parent
protectedinherited

Parent of this entity.

EntityPtr parentEntity
protectedinherited

A helper that prevents numerous dynamic_casts.

double pathLength
protected

Length of the actor's path.

common::Time playStartTime
protected

Time when the animation was started.

common::Time prevAnimationTime
protectedinherited

Previous time an animation was updated.

common::Time prevFrameTime
protected

Time of the previous frame.

transport::PublisherPtr requestPub
protectedinherited

Request publisher.

ignition::transport::Node::Publisher requestPubIgn
protectedinherited

Request publisher.

ignition::math::Vector3d scale
protectedinherited

Scale of the entity.

double scriptLength
protected

Total time length of the script, in seconds.

sdf::ElementPtr sdf
protectedinherited

The SDF values for this object.

SkeletonAnimation_M skelAnimation
protected

Map of skeleton animations, indexed by their names.

The names match those in interpolateX and skelNodesMap.

See Also
interpolateX
skelNodesMap
common::Skeleton* skeleton = nullptr
protected

The actor's skeleton.

std::map<std::string, std::map<std::string, std::string> > skelNodesMap
protected

Skeleton to node map:

  • Skeleton animation name (should match those in skelAnimation and interpolateX)
  • Map holding:
std::string skinFile
protected

Filename for the skin.

double skinScale
protected

Scaling factor to apply to the skin.

double startDelay
protected

Time to wait before starting the script.

If running in a loop, this time will be waited before starting each cycle.

std::map<unsigned int, common::PoseAnimation *> trajectories
protected

Map of all the trajectories (pose animations) and their indices.

The indices here match the order in trajInfo.

See Also
trajInfo
std::vector<TrajectoryInfo> trajInfo
protected

A vector of trajectory information, which contains information such as their durations, uniquely identifiable by their IDs.

The IDs here match those on the trajectories vector.

See Also
trajectories
transport::PublisherPtr visPub
protectedinherited

Visual publisher.

ignition::transport::Node::Publisher visPubIgn
protectedinherited

Visual publisher.

uint32_t visualId
protected

ID for the visual representing the skin.

msgs::Visual* visualMsg
protectedinherited

Visual message container.

std::string visualName
protected

Name of the visual representing the skin.

WorldPtr world
protectedinherited

Pointer to the world.

ignition::math::Pose3d worldPose
mutableprotectedinherited

World pose of the entity.

Referenced by Entity::WorldPose().


The documentation for this class was generated from the following file: