Link class defines a rigid body entity, containing information on inertia, visual and collision properties of a rigid body. More...
#include <physics/physics.hh>
Public Member Functions | |
Link (EntityPtr _parent) | |
Constructor. | |
virtual | ~Link () |
Destructor. | |
void | AddChildJoint (JointPtr _joint) |
Joints that have this Link as a parent Link. | |
virtual void | AddForce (const math::Vector3 &_force)=0 |
Add a force to the body. | |
virtual void | AddForceAtRelativePosition (const math::Vector3 &_force, const math::Vector3 &_relPos)=0 |
Add a force to the body at position expressed to the body's own frame of reference. | |
virtual void | AddForceAtWorldPosition (const math::Vector3 &_force, const math::Vector3 &_pos)=0 |
Add a force to the body using a global position. | |
void | AddParentJoint (JointPtr _joint) |
Joints that have this Link as a child Link. | |
virtual void | AddRelativeForce (const math::Vector3 &_force)=0 |
Add a force to the body, components are relative to the body's own frame of reference. | |
virtual void | AddRelativeTorque (const math::Vector3 &_torque)=0 |
Add a torque to the body, components are relative to the body's own frame of reference. | |
virtual void | AddTorque (const math::Vector3 &_torque)=0 |
Add a torque to the body. | |
void | AttachStaticModel (ModelPtr &_model, const math::Pose &_offset) |
Attach a static model to this link. | |
template<typename T > | |
event::ConnectionPtr | ConnectEnabled (T _subscriber) |
Connect to the add entity signal. | |
void | DetachAllStaticModels () |
Detach all static models from this link. | |
void | DetachStaticModel (const std::string &_modelName) |
Detach a static model from this link. | |
void | DisconnectEnabled (event::ConnectionPtr &_conn) |
Disconnect to the add entity signal. | |
void | FillMsg (msgs::Link &_msg) |
Fill a link message. | |
void | Fini () |
Finalize the body. | |
double | GetAngularDamping () const |
Get the angular damping factor. | |
virtual math::Box | GetBoundingBox () const |
Get the bounding box for the link and all the child elements. | |
Link_V | GetChildJointsLinks () const |
Returns a vector of children Links connected by joints. | |
CollisionPtr | GetCollision (const std::string &_name) |
Get a child collision by name. | |
CollisionPtr | GetCollision (unsigned int _index) const |
Get a child collision by index. | |
CollisionPtr | GetCollisionById (unsigned int _id) const |
Get a collision by id. | |
Collision_V | GetCollisions () const |
Get all the child collisions. | |
virtual bool | GetEnabled () const =0 |
Get whether this body is enabled in the physics engine. | |
virtual bool | GetGravityMode ()=0 |
Get the gravity mode. | |
InertialPtr | GetInertial () const |
Get the inertia of the link. | |
virtual bool | GetKinematic () const |
Implement this function. | |
double | GetLinearDamping () const |
Get the linear damping factor. | |
ModelPtr | GetModel () const |
Get the model that this body belongs to. | |
Link_V | GetParentJointsLinks () const |
Returns a vector of parent Links connected by joints. | |
math::Vector3 | GetRelativeAngularAccel () const |
Get the angular acceleration of the body. | |
math::Vector3 | GetRelativeAngularVel () const |
Get the angular velocity of the body. | |
math::Vector3 | GetRelativeForce () const |
Get the force applied to the body. | |
math::Vector3 | GetRelativeLinearAccel () const |
Get the linear acceleration of the body. | |
math::Vector3 | GetRelativeLinearVel () const |
Get the linear velocity of the body. | |
math::Vector3 | GetRelativeTorque () const |
Get the torque applied to the body. | |
bool | GetSelfCollide () |
Get Self-Collision Flag, if this is true, this body will collide with other bodies even if they share the same parent. | |
unsigned int | GetSensorCount () const |
Get sensor count. | |
std::string | GetSensorName (unsigned int _index) const |
Get sensor name. | |
math::Vector3 | GetWorldAngularAccel () const |
Get the angular acceleration of the body in the world frame. | |
virtual math::Vector3 | GetWorldForce () const =0 |
Get the force applied to the body in the world frame. | |
math::Vector3 | GetWorldLinearAccel () const |
Get the linear acceleration of the body in the world frame. | |
virtual math::Vector3 | GetWorldTorque () const =0 |
Get the torque applied to the body in the world frame. | |
virtual void | Init () |
Initialize the body. | |
virtual void | Load (sdf::ElementPtr _sdf) |
Load the body based on an SDF element. | |
virtual void | OnPoseChange () |
This function is called when the entity's (or one of its parents) pose of the parent has changed. | |
void | ProcessMsg (const msgs::Link &_msg) |
Update parameters from a message. | |
void | RemoveChildJoint (JointPtr _joint) |
Remove Joints that have this Link as a parent Link. | |
void | RemoveParentJoint (JointPtr _joint) |
Remove Joints that have this Link as a child Link. | |
void | Reset () |
Reset the link. | |
void | SetAngularAccel (const math::Vector3 &_accel) |
Set the angular acceleration of the body. | |
virtual void | SetAngularDamping (double _damping)=0 |
Set the angular damping factor. | |
virtual void | SetAngularVel (const math::Vector3 &_vel)=0 |
Set the angular velocity of the body. | |
virtual void | SetAutoDisable (bool _disable)=0 |
Allow the link to auto disable. | |
void | SetCollideMode (const std::string &_mode) |
Set the collide mode of the body. | |
virtual void | SetEnabled (bool _enable) const =0 |
Set whether this body is enabled. | |
virtual void | SetForce (const math::Vector3 &_force)=0 |
Set the force applied to the body. | |
virtual void | SetGravityMode (bool _mode)=0 |
Set whether gravity affects this body. | |
void | SetInertial (const InertialPtr &_inertial) |
Set the mass of the link. | |
virtual void | SetKinematic (const bool &_kinematic) |
Implement this function. | |
void | SetLaserRetro (float _retro) |
Set the laser retro reflectiveness. | |
void | SetLinearAccel (const math::Vector3 &_accel) |
Set the linear acceleration of the body. | |
virtual void | SetLinearDamping (double _damping)=0 |
Set the linear damping factor. | |
virtual void | SetLinearVel (const math::Vector3 &_vel)=0 |
Set the linear velocity of the body. | |
virtual bool | SetSelected (bool _set) |
Set whether this entity has been selected by the user through the gui. | |
virtual void | SetSelfCollide (bool _collide)=0 |
Set whether this body will collide with others in the model. | |
void | SetState (const LinkState &_state) |
Set the current link state. | |
virtual void | SetTorque (const math::Vector3 &_torque)=0 |
Set the torque applied to the body. | |
virtual void | Update () |
Update the body. | |
virtual void | UpdateMass () |
Update the mass matrix. | |
virtual void | UpdateParameters (sdf::ElementPtr _sdf) |
Update the parameters using new sdf values. | |
virtual void | UpdateSurface () |
Update surface parameters. | |
Public Member Functions inherited from gazebo::physics::Entity | |
Entity (BasePtr _parent) | |
Constructor. | |
virtual | ~Entity () |
Destructor. | |
CollisionPtr | GetChildCollision (const std::string &_name) |
Get a child collision entity, if one exists. | |
LinkPtr | GetChildLink (const std::string &_name) |
Get a child linke entity, if one exists. | |
math::Box | GetCollisionBoundingBox () const |
Returns collision bounding box. | |
const math::Pose & | GetDirtyPose () const |
Returns Entity::dirtyPose. | |
math::Pose | GetInitialRelativePose () const |
Get the initial relative pose. | |
void | GetNearestEntityBelow (double &_distBelow, std::string &_entityName) |
Get the distance to the nearest entity below (along the Z-axis) this entity. | |
ModelPtr | GetParentModel () |
Get the parent model, if one exists. | |
math::Pose | GetRelativePose () const |
Get the pose of the entity relative to its parent. | |
virtual math::Vector3 | GetWorldAngularVel () const |
Get the angular velocity of the entity in the world frame. | |
virtual math::Vector3 | GetWorldLinearVel () const |
Get the linear velocity of the entity in the world frame. | |
const math::Pose & | GetWorldPose () const |
Get the absolute pose of the entity. | |
bool | IsCanonicalLink () const |
A helper function that checks if this is a canonical body. | |
bool | IsStatic () const |
Return whether this entity is static. | |
void | PlaceOnEntity (const std::string &_entityName) |
Move this entity to be ontop of another entity by name. | |
void | PlaceOnNearestEntityBelow () |
Move this entity to be ontop of the nearest entity below. | |
void | SetAnimation (const common::PoseAnimationPtr &_anim, boost::function< void()> _onComplete) |
Set an animation for this entity. | |
void | SetAnimation (common::PoseAnimationPtr _anim) |
Set an animation for this entity. | |
void | SetCanonicalLink (bool _value) |
Set to true if this entity is a canonical link for a model. | |
void | SetInitialRelativePose (const math::Pose &_pose) |
Set the initial pose. | |
virtual void | SetName (const std::string &_name) |
Set the name of the entity. | |
void | SetRelativePose (const math::Pose &_pose, bool _notify=true, bool _publish=true) |
Set the pose of the entity relative to its parent. | |
void | SetStatic (const bool &_static) |
Set whether this entity is static: immovable. | |
void | SetWorldPose (const math::Pose &_pose, bool _notify=true, bool _publish=true) |
Set the world pose of the entity. | |
void | SetWorldTwist (const math::Vector3 &_linear, const math::Vector3 &_angular, bool _updateChildren=true) |
Set angular and linear rates of an physics::Entity. | |
virtual void | StopAnimation () |
Stop the current animation, if any. | |
Public Member Functions inherited from gazebo::physics::Base | |
Base (BasePtr _parent) | |
Constructor. | |
virtual | ~Base () |
Destructor. | |
void | AddChild (BasePtr _child) |
Add a child to this entity. | |
void | AddType (EntityType _type) |
Add a type specifier. | |
BasePtr | GetById (unsigned int _id) const |
Get a child or self by id. | |
BasePtr | GetByName (const std::string &_name) |
Get by name. | |
BasePtr | GetChild (unsigned int _i) const |
Get a child by index. | |
BasePtr | GetChild (const std::string &_name) |
Get a child by name. | |
unsigned int | GetChildCount () const |
Get the number of children. | |
unsigned int | GetId () const |
Return the ID of this entity. | |
std::string | GetName () const |
Return the name of the entity. | |
BasePtr | GetParent () const |
Get the parent. | |
int | GetParentId () const |
Return the ID of the parent. | |
bool | GetSaveable () const |
Get whether the object should be "saved", when the user selects to save the world to xml. | |
std::string | GetScopedName () const |
Return the name of this entity with the model scope world::model1::...::modelN::entityName. | |
virtual const sdf::ElementPtr | GetSDF () |
Get the SDF values for the object. | |
unsigned int | GetType () const |
Get the full type definition. | |
const WorldPtr & | GetWorld () const |
Get the World this object is in. | |
bool | HasType (const EntityType &_t) const |
Returns true if this object's type definition has the given type. | |
bool | IsSelected () const |
True if the entity is selected by the user. | |
bool | operator== (const Base &_ent) const |
Returns true if the entities are the same. | |
void | Print (const std::string &_prefix) |
Print this object to screen via gzmsg. | |
virtual void | RemoveChild (unsigned int _id) |
Remove a child from this entity. | |
void | RemoveChild (const std::string &_name) |
Remove a child by name. | |
void | RemoveChildren () |
Remove all children. | |
virtual void | Reset (Base::EntityType _resetType) |
Calls recursive Reset on one of the Base::EntityType's. | |
void | SetParent (BasePtr _parent) |
Set the parent. | |
void | SetSaveable (bool _v) |
Set whether the object should be "saved", when the user selects to save the world to xml. | |
void | SetWorld (const WorldPtr &_newWorld) |
Set the world this object belongs to. | |
Protected Attributes | |
math::Vector3 | angularAccel |
Angular acceleration. | |
std::vector< math::Pose > | attachedModelsOffset |
Offsets for the attached models. | |
std::vector< std::string > | cgVisuals |
Center of gravity visual elements. | |
InertialPtr | inertial |
Inertial properties. | |
math::Vector3 | linearAccel |
Linear acceleration. | |
std::vector< std::string > | visuals |
Link visual elements. | |
Protected Attributes inherited from gazebo::physics::Entity | |
common::PoseAnimationPtr | animation |
Current pose animation. | |
event::ConnectionPtr | animationConnection |
Connection used to update an animation. | |
math::Pose | animationStartPose |
Start pose of an animation. | |
std::vector< event::ConnectionPtr > | connections |
All our event connections. | |
math::Pose | dirtyPose |
The pose set by a physics engine. | |
transport::NodePtr | node |
Communication node. | |
EntityPtr | parentEntity |
A helper that prevents numerous dynamic_casts. | |
msgs::Pose * | poseMsg |
Pose message container. | |
common::Time | prevAnimationTime |
Previous time an animation was updated. | |
transport::PublisherPtr | requestPub |
Request publisher. | |
transport::PublisherPtr | visPub |
Visual publisher. | |
msgs::Visual * | visualMsg |
Visual message container. | |
Protected Attributes inherited from gazebo::physics::Base | |
Base_V | children |
Children of this entity. | |
Base_V::iterator | childrenEnd |
End of the children vector. | |
BasePtr | parent |
Parent of this entity. | |
sdf::ElementPtr | sdf |
The SDF values for this object. | |
WorldPtr | world |
Pointer to the world. | |
Additional Inherited Members | |
Public Types inherited from gazebo::physics::Base | |
enum | EntityType { BASE = 0x00000000, ENTITY = 0x00000001, MODEL = 0x00000002, LINK = 0x00000004, COLLISION = 0x00000008, ACTOR = 0x00000016, LIGHT = 0x00000010, VISUAL = 0x00000020, JOINT = 0x00000040, BALL_JOINT = 0x00000080, HINGE2_JOINT = 0x00000100, HINGE_JOINT = 0x00000200, SLIDER_JOINT = 0x00000400, SCREW_JOINT = 0x00000800, UNIVERSAL_JOINT = 0x00001000, SHAPE = 0x00002000, BOX_SHAPE = 0x00004000, CYLINDER_SHAPE = 0x00008000, HEIGHTMAP_SHAPE = 0x00010000, MAP_SHAPE = 0x00020000, MULTIRAY_SHAPE = 0x00040000, RAY_SHAPE = 0x00080000, PLANE_SHAPE = 0x00100000, SPHERE_SHAPE = 0x00200000, TRIMESH_SHAPE = 0x00400000 } |
Unique identifiers for all entity types. More... | |
Link class defines a rigid body entity, containing information on inertia, visual and collision properties of a rigid body.
|
explicit |
Constructor.
[in] | _parent | Parent of this link. |
|
virtual |
Destructor.
void gazebo::physics::Link::AddChildJoint | ( | JointPtr | _joint | ) |
|
pure virtual |
Add a force to the body.
[in] | _force | Force to add. |
|
pure virtual |
Add a force to the body at position expressed to the body's own frame of reference.
[in] | _force | Force to add. |
[in] | _relPos | Position on the link to add the force. |
|
pure virtual |
Add a force to the body using a global position.
[in] | _force | Force to add. |
[in] | _pos | Position in global coord frame to add the force. |
void gazebo::physics::Link::AddParentJoint | ( | JointPtr | _joint | ) |
|
pure virtual |
Add a force to the body, components are relative to the body's own frame of reference.
[in] | _force | Force to add. |
|
pure virtual |
Add a torque to the body, components are relative to the body's own frame of reference.
[in] | _torque | Torque value to add. |
|
pure virtual |
Add a torque to the body.
[in] | _torque | Torque value to add to the link. |
void gazebo::physics::Link::AttachStaticModel | ( | ModelPtr & | _model, |
const math::Pose & | _offset | ||
) |
Attach a static model to this link.
[in] | _model | Pointer to a static model. |
[in] | _offset | Pose relative to this link to place the model. |
|
inline |
Connect to the add entity signal.
[in] | _subscriber | Subsciber callback function. |
References gazebo::event::EventT< T >::Connect().
void gazebo::physics::Link::DetachAllStaticModels | ( | ) |
Detach all static models from this link.
void gazebo::physics::Link::DetachStaticModel | ( | const std::string & | _modelName | ) |
Detach a static model from this link.
[in] | _modelName | Name of an attached model to detach. |
|
inline |
Disconnect to the add entity signal.
[in] | _conn | Connection pointer to disconnect. |
References gazebo::event::EventT< T >::Disconnect().
void gazebo::physics::Link::FillMsg | ( | msgs::Link & | _msg | ) |
Fill a link message.
[out] | _msg | Message to fill |
|
virtual |
Finalize the body.
Reimplemented from gazebo::physics::Entity.
double gazebo::physics::Link::GetAngularDamping | ( | ) | const |
Get the angular damping factor.
|
virtual |
Get the bounding box for the link and all the child elements.
Reimplemented from gazebo::physics::Entity.
Link_V gazebo::physics::Link::GetChildJointsLinks | ( | ) | const |
Returns a vector of children Links connected by joints.
CollisionPtr gazebo::physics::Link::GetCollision | ( | const std::string & | _name | ) |
Get a child collision by name.
[in] | _name | Name of the collision object. |
CollisionPtr gazebo::physics::Link::GetCollision | ( | unsigned int | _index | ) | const |
Get a child collision by index.
[in] | _index | Index of the collision object. |
CollisionPtr gazebo::physics::Link::GetCollisionById | ( | unsigned int | _id | ) | const |
Get a collision by id.
[in] | _id | Id of the collision object to find. |
Collision_V gazebo::physics::Link::GetCollisions | ( | ) | const |
Get all the child collisions.
|
pure virtual |
Get whether this body is enabled in the physics engine.
|
pure virtual |
Get the gravity mode.
|
inline |
|
inlinevirtual |
Implement this function.
Get whether this body is in the kinematic state.
double gazebo::physics::Link::GetLinearDamping | ( | ) | const |
Get the linear damping factor.
ModelPtr gazebo::physics::Link::GetModel | ( | ) | const |
Get the model that this body belongs to.
Link_V gazebo::physics::Link::GetParentJointsLinks | ( | ) | const |
Returns a vector of parent Links connected by joints.
|
virtual |
Get the angular acceleration of the body.
Reimplemented from gazebo::physics::Entity.
|
virtual |
Get the angular velocity of the body.
Reimplemented from gazebo::physics::Entity.
math::Vector3 gazebo::physics::Link::GetRelativeForce | ( | ) | const |
Get the force applied to the body.
|
virtual |
Get the linear acceleration of the body.
Reimplemented from gazebo::physics::Entity.
|
virtual |
Get the linear velocity of the body.
Reimplemented from gazebo::physics::Entity.
math::Vector3 gazebo::physics::Link::GetRelativeTorque | ( | ) | const |
Get the torque applied to the body.
bool gazebo::physics::Link::GetSelfCollide | ( | ) |
Get Self-Collision Flag, if this is true, this body will collide with other bodies even if they share the same parent.
unsigned int gazebo::physics::Link::GetSensorCount | ( | ) | const |
Get sensor count.
This will return the number of sensors created by the link when it was loaded. This function is commonly used with Link::GetSensorName.
std::string gazebo::physics::Link::GetSensorName | ( | unsigned int | _index | ) | const |
Get sensor name.
Get the name of a sensor based on an index. The index should be in the range of 0...Link::GetSensorCount().
[in] | _index | Index of the sensor name. |
|
virtual |
Get the angular acceleration of the body in the world frame.
Reimplemented from gazebo::physics::Entity.
|
pure virtual |
Get the force applied to the body in the world frame.
|
virtual |
Get the linear acceleration of the body in the world frame.
Reimplemented from gazebo::physics::Entity.
|
pure virtual |
Get the torque applied to the body in the world frame.
|
virtual |
Initialize the body.
Reimplemented from gazebo::physics::Base.
|
virtual |
Load the body based on an SDF element.
[in] | _sdf | SDF parameters. |
Reimplemented from gazebo::physics::Entity.
|
virtual |
This function is called when the entity's (or one of its parents) pose of the parent has changed.
Implements gazebo::physics::Entity.
void gazebo::physics::Link::ProcessMsg | ( | const msgs::Link & | _msg | ) |
Update parameters from a message.
[in] | _msg | Message to read. |
void gazebo::physics::Link::RemoveChildJoint | ( | JointPtr | _joint | ) |
void gazebo::physics::Link::RemoveParentJoint | ( | JointPtr | _joint | ) |
|
virtual |
Reset the link.
Reimplemented from gazebo::physics::Entity.
void gazebo::physics::Link::SetAngularAccel | ( | const math::Vector3 & | _accel | ) |
Set the angular acceleration of the body.
[in] | _accel | Angular acceleration. |
|
pure virtual |
Set the angular damping factor.
[in] | _damping | Angular damping factor. |
|
pure virtual |
Set the angular velocity of the body.
[in] | _vel | Angular velocity. |
|
pure virtual |
Allow the link to auto disable.
[in] | _disable | If true, the link is allowed to auto disable. |
void gazebo::physics::Link::SetCollideMode | ( | const std::string & | _mode | ) |
Set the collide mode of the body.
[in] | _mode | Collision Mode, this can be: [all|none|sensors|fixed|ghost] all: collides with everything none: collides with nothing sensors: collides with everything else but other sensors fixed: collides with everything else but other fixed ghost: collides with everything else but other ghost |
|
pure virtual |
Set whether this body is enabled.
[in] | _enable | True to enable the link in the physics engine. |
|
pure virtual |
Set the force applied to the body.
[in] | _force | Force value. |
|
pure virtual |
Set whether gravity affects this body.
[in] | _mode | True to enable gravity. |
void gazebo::physics::Link::SetInertial | ( | const InertialPtr & | _inertial | ) |
Set the mass of the link.
[in] _inertial Inertial value for the link.
|
virtual |
Implement this function.
Set whether this body is in the kinematic state.
[in] | _kinematic | True to make the link kinematic only. |
void gazebo::physics::Link::SetLaserRetro | ( | float | _retro | ) |
Set the laser retro reflectiveness.
[in] | _retro | Retro value for all child collisions. |
void gazebo::physics::Link::SetLinearAccel | ( | const math::Vector3 & | _accel | ) |
Set the linear acceleration of the body.
[in] | _accel | Linear acceleration. |
|
pure virtual |
Set the linear damping factor.
[in] | _damping | Linear damping factor. |
|
pure virtual |
Set the linear velocity of the body.
[in] | _vel | Linear velocity. |
|
virtual |
Set whether this entity has been selected by the user through the gui.
[in] | _set | True to set the link as selected. |
Reimplemented from gazebo::physics::Base.
|
pure virtual |
Set whether this body will collide with others in the model.
[in] | _collid | True to enable collisions. |
void gazebo::physics::Link::SetState | ( | const LinkState & | _state | ) |
Set the current link state.
[in] | _state | The state to set the link to. |
|
pure virtual |
Set the torque applied to the body.
[in] | _torque | Torque value. |
|
virtual |
Update the body.
Reimplemented from gazebo::physics::Base.
|
inlinevirtual |
Update the mass matrix.
|
virtual |
Update the parameters using new sdf values.
[in] | _sdf | SDF values to load from. |
Reimplemented from gazebo::physics::Entity.
|
inlinevirtual |
Update surface parameters.
|
protected |
Angular acceleration.
|
protected |
Offsets for the attached models.
|
protected |
Center of gravity visual elements.
|
protected |
Inertial properties.
Referenced by GetInertial().
|
protected |
Linear acceleration.
|
protected |
Link visual elements.