Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
gazebo::physics::DARTHinge2Joint Class Reference

A two axis hinge joint. More...

#include <DARTHinge2Joint.hh>

Inheritance diagram for gazebo::physics::DARTHinge2Joint:
Inheritance graph
[legend]

Public Member Functions

 DARTHinge2Joint (BasePtr _parent)
 Constructor. More...
 
virtual ~DARTHinge2Joint ()
 Destructor. More...
 
virtual math::Vector3 GetAnchor (unsigned int _index) const
 Get the anchor point. More...
 
virtual math::Angle GetAngleImpl (unsigned int _index) const
 Get the angle of an axis helper function. More...
 
virtual math::Vector3 GetGlobalAxis (unsigned int _index) const
 Get the axis of rotation in global cooridnate frame. More...
 
virtual double GetMaxForce (unsigned int _index)
 Get the max allowed force of an axis(index) when using Joint::SetVelocity. More...
 
virtual double GetVelocity (unsigned int _index) const
 Get the rotation rate of an axis(index) More...
 
virtual void Init ()
 Initialize a joint. More...
 
virtual void Load (sdf::ElementPtr _sdf)
 Load the joint. More...
 
virtual void SetAxis (unsigned int _index, const math::Vector3 &_axis)
 Set the axis of rotation where axis is specified in local joint frame. More...
 
virtual void SetMaxForce (unsigned int _index, double _force)
 Set the max allowed force of an axis(index) when using Joint::SetVelocity. More...
 
virtual void SetVelocity (unsigned int _index, double _vel)
 Set the velocity of an axis(index). More...
 
- Public Member Functions inherited from gazebo::physics::Hinge2Joint< DARTJoint >
 Hinge2Joint (BasePtr _parent)
 Constructor. More...
 
virtual ~Hinge2Joint ()
 Destructor. More...
 
virtual unsigned int GetAngleCount () const
 
- Public Member Functions inherited from gazebo::physics::DARTJoint
 DARTJoint (BasePtr _parent)
 Constructor. More...
 
virtual ~DARTJoint ()
 Destructor. More...
 
virtual void ApplyDamping ()
 
virtual bool AreConnected (LinkPtr _one, LinkPtr _two) const
 Determines of the two bodies are connected by a joint. More...
 
virtual void Attach (LinkPtr _parent, LinkPtr _child)
 Attach the two bodies with this joint. More...
 
virtual void Detach ()
 Detach this joint from all links. More...
 
dart::dynamics::Joint * GetDARTJoint ()
 Get DART joint pointer. More...
 
DARTModelPtr GetDARTModel () const
 Get DART model pointer. More...
 
virtual double GetForce (unsigned int _index)
 
virtual JointWrench GetForceTorque (unsigned int _index)
 get internal force and torque values at a joint. More...
 
virtual math::Angle GetHighStop (unsigned int _index)
 Get the high stop of an axis(index). More...
 
virtual LinkPtr GetJointLink (unsigned int _index) const
 Get the link to which the joint is attached according the _index. More...
 
virtual math::Vector3 GetLinkForce (unsigned int _index) const
 Get the forces applied to the center of mass of a physics::Link due to the existence of this Joint. More...
 
virtual math::Vector3 GetLinkTorque (unsigned int _index) const
 Get the torque applied to the center of mass of a physics::Link due to the existence of this Joint. More...
 
virtual math::Angle GetLowStop (unsigned int _index)
 Get the low stop of an axis(index). More...
 
virtual double GetParam (const std::string &_key, unsigned int _index)
 Get a non-generic parameter for the joint. More...
 
virtual void Reset ()
 Reset the joint. More...
 
virtual void SetAnchor (unsigned int, const gazebo::math::Vector3 &)
 Set the anchor point. More...
 
virtual void SetDamping (unsigned int _index, double _damping)
 Set the joint damping. More...
 
virtual void SetForce (unsigned int _index, double _force)
 Set the force applied to this physics::Joint. More...
 
virtual bool SetHighStop (unsigned int _index, const math::Angle &_angle)
 Set the high stop of an axis(index). More...
 
virtual bool SetLowStop (unsigned int _index, const math::Angle &_angle)
 Set the low stop of an axis(index). More...
 
virtual bool SetParam (const std::string &_key, unsigned int _index, const boost::any &_value)
 Set a non-generic parameter for the joint. More...
 
virtual void SetStiffness (unsigned int _index, const double _stiffness)
 Set the joint spring stiffness. More...
 
virtual void SetStiffnessDamping (unsigned int _index, double _stiffness, double _damping, double _reference=0)
 Set the joint spring stiffness. More...
 
- Public Member Functions inherited from gazebo::physics::Joint
 Joint (BasePtr _parent)
 Constructor. More...
 
virtual ~Joint ()
 Destructor. More...
 
virtual void ApplyStiffnessDamping ()
 Callback to apply spring stiffness and viscous damping effects to joint. More...
 
virtual void CacheForceTorque ()
 Cache Joint Force Torque Values if necessary for physics engine. More...
 
double CheckAndTruncateForce (unsigned int _index, double _effort)
 check if the force against velocityLimit and effortLimit, truncate if necessary. More...
 
template<typename T >
event::ConnectionPtr ConnectJointUpdate (T _subscriber)
 Connect a boost::slot the the joint update signal. More...
 
void DisconnectJointUpdate (event::ConnectionPtr &_conn)
 Disconnect a boost::slot the the joint update signal. More...
 
void FillMsg (msgs::Joint &_msg)
 Fill a joint message. More...
 
virtual void Fini ()
 Finialize the object. More...
 
math::Pose GetAnchorErrorPose () const
 Get pose offset between anchor pose on child and parent, expressed in the parent link frame. More...
 
math::Angle GetAngle (unsigned int _index) const
 Get the angle of rotation of an axis(index) More...
 
math::Quaternion GetAxisFrame (unsigned int _index) const
 Get orientation of reference frame for specified axis, relative to world frame. More...
 
math::Quaternion GetAxisFrameOffset (unsigned int _index) const
 Get orientation of joint axis reference frame relative to joint frame. More...
 
LinkPtr GetChild () const
 Get the child link. More...
 
double GetDamping (unsigned int _index)
 Returns the current joint damping coefficient. More...
 
virtual double GetEffortLimit (unsigned int _index)
 Get the effort limit on axis(index). More...
 
double GetInertiaRatio (const unsigned int _index) const
 Computes moment of inertia (MOI) across a specified joint axis. More...
 
double GetInertiaRatio (const math::Vector3 &_axis) const
 Computes moment of inertia (MOI) across an arbitrary axis specified in the world frame. More...
 
math::Pose GetInitialAnchorPose () const
 Get initial Anchor Pose specified by model <joint><pose>...</pose></joint> More...
 
math::Vector3 GetLocalAxis (unsigned int _index) const
 Get the axis of rotation. More...
 
math::Angle GetLowerLimit (unsigned int _index) const
 : get the joint upper limit (replaces GetLowStop and GetHighStop) More...
 
msgs::Joint::Type GetMsgType () const
 Get the joint type as msgs::Joint::Type. More...
 
LinkPtr GetParent () const
 Get the parent link. More...
 
math::Pose GetParentWorldPose () const
 Get anchor pose on parent link relative to world frame. More...
 
double GetSpringReferencePosition (unsigned int _index) const
 Get joint spring reference position. More...
 
double GetStiffness (unsigned int _index)
 Returns the current joint spring stiffness coefficient. More...
 
double GetStopDissipation (unsigned int _index) const
 Get joint stop dissipation. More...
 
double GetStopStiffness (unsigned int _index) const
 Get joint stop stiffness. More...
 
math::Angle GetUpperLimit (unsigned int _index) const
 : get the joint lower limit (replacee GetLowStop and GetHighStop) More...
 
virtual double GetVelocityLimit (unsigned int _index)
 Get the velocity limit on axis(index). More...
 
double GetWorldEnergyPotentialSpring (unsigned int _index) const
 Returns this joint's spring potential energy, based on the reference position of the spring. More...
 
math::Pose GetWorldPose () const
 Get pose of joint frame relative to world frame. More...
 
void Load (LinkPtr _parent, LinkPtr _child, const math::Pose &_pose)
 Set pose, parent and child links of a physics::Joint. More...
 
void SetAngle (unsigned int _index, math::Angle _angle) GAZEBO_DEPRECATED(4.0)
 If the Joint is static, Gazebo stores the state of this Joint as a scalar inside the Joint class, so this call will NOT move the joint dynamically for a static Model. More...
 
virtual void SetEffortLimit (unsigned int _index, double _effort)
 Set the effort limit on a joint axis. More...
 
void SetLowerLimit (unsigned int _index, math::Angle _limit)
 : set the joint upper limit (replaces SetLowStop and SetHighStop) More...
 
void SetModel (ModelPtr _model)
 Set the model this joint belongs too. More...
 
virtual bool SetPosition (unsigned int _index, double _position)
 The child links of this joint are updated based on desired position. More...
 
virtual void SetProvideFeedback (bool _enable)
 Set whether the joint should generate feedback. More...
 
void SetState (const JointState &_state)
 Set the joint state. More...
 
void SetStopDissipation (unsigned int _index, double _dissipation)
 Set joint stop dissipation. More...
 
void SetStopStiffness (unsigned int _index, double _stiffness)
 Set joint stop stiffness. More...
 
void SetUpperLimit (unsigned int _index, math::Angle _limit)
 : set the joint lower limit (replacee GetLowStop and GetHighStop) More...
 
virtual void SetVelocityLimit (unsigned int _index, double _velocity)
 Set the velocity limit on a joint axis. More...
 
void Update ()
 Update the joint. More...
 
virtual void UpdateParameters (sdf::ElementPtr _sdf)
 Update the parameters using new sdf values. More...
 
- Public Member Functions inherited from gazebo::physics::Base
 Base (BasePtr _parent)
 Constructor. More...
 
virtual ~Base ()
 Destructor. More...
 
void AddChild (BasePtr _child)
 Add a child to this entity. More...
 
void AddType (EntityType _type)
 Add a type specifier. 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...
 
unsigned int GetChildCount () const
 Get the number of children. More...
 
uint32_t GetId () const
 Return the ID of this entity. More...
 
std::string GetName () const
 Return the name of the entity. More...
 
BasePtr GetParent () const
 Get the parent. More...
 
int GetParentId () const
 Return the ID of the parent. 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 object. More...
 
unsigned int GetType () const
 Get the full type definition. More...
 
const WorldPtrGetWorld () const
 Get the World this object is in. More...
 
bool HasType (const EntityType &_t) const
 Returns true if this object's type definition has the given type. More...
 
bool IsSelected () const
 True if the entity is selected by the user. More...
 
bool operator== (const Base &_ent) const
 Returns true if the entities are the same. More...
 
void Print (const std::string &_prefix)
 Print this object to screen via gzmsg. 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 RemoveChildren ()
 Remove all children. More...
 
virtual void Reset (Base::EntityType _resetType)
 Calls recursive Reset on one of the Base::EntityType's. More...
 
virtual void SetName (const std::string &_name)
 Set the name of the entity. More...
 
void SetParent (BasePtr _parent)
 Set the parent. More...
 
void SetSaveable (bool _v)
 Set whether the object should be "saved", when the user selects to save the world to xml. More...
 
virtual bool SetSelected (bool _show)
 Set whether this entity has been selected by the user through the gui. More...
 
void SetWorld (const WorldPtr &_newWorld)
 Set the world this object belongs to. More...
 

Protected Member Functions

virtual void SetForceImpl (unsigned int _index, double _effort)
 Set the force applied to this physics::Joint. More...
 
- Protected Member Functions inherited from gazebo::physics::Joint
math::Pose ComputeChildLinkPose (unsigned int _index, double _position)
 internal function to help us compute child link pose if a joint position change is applied. More...
 
bool FindAllConnectedLinks (const LinkPtr &_originalParentLink, Link_V &_connectedLinks)
 internal helper to find all links connected to the child link branching out from the children of the child link and any parent of the child link other than the parent link through this joint. More...
 
bool SetPositionMaximal (unsigned int _index, double _position)
 Helper function for maximal coordinate solver SetPosition. More...
 
bool SetVelocityMaximal (unsigned int _index, double _velocity)
 Helper function for maximal coordinate solver SetVelocity. More...
 
- Protected Member Functions inherited from gazebo::physics::Base
void ComputeScopedName ()
 Compute the scoped name of this object based on its parents. More...
 

Protected Attributes

dart::dynamics::UniversalJoint * dtUniveralJoint
 Universal joint of DART. More...
 
- Protected Attributes inherited from gazebo::physics::DARTJoint
DARTPhysicsPtr dartPhysicsEngine
 DARTPhysics engine pointer. More...
 
dart::dynamics::BodyNode * dtChildBodyNode
 DART child body node pointer. More...
 
dart::dynamics::Joint * dtJoint
 DART joint pointer. More...
 
- Protected Attributes inherited from gazebo::physics::Joint
LinkPtr anchorLink
 Anchor link. More...
 
math::Vector3 anchorPos
 Anchor pose. More...
 
math::Pose anchorPose
 Anchor pose specified in SDF <joint><pose> tag. More...
 
gazebo::event::ConnectionPtr applyDamping
 apply damping for adding viscous damping forces on updates More...
 
bool axisParentModelFrame [2]
 Flags that are set to true if an axis value is expressed in the parent model frame. More...
 
LinkPtr childLink
 The first link this joint connects to. More...
 
double dissipationCoefficient [2]
 joint viscous damping coefficient More...
 
double effortLimit [2]
 Store Joint effort limit as specified in SDF. More...
 
math::Angle lowerLimit [2]
 Store Joint position lower limit as specified in SDF. More...
 
ModelPtr model
 Pointer to the parent model. More...
 
math::Pose parentAnchorPose
 Anchor pose relative to parent link frame. More...
 
LinkPtr parentLink
 The second link this joint connects to. More...
 
bool provideFeedback
 Provide Feedback data for contact forces. More...
 
double springReferencePosition [2]
 joint spring reference (zero load) position More...
 
double stiffnessCoefficient [2]
 joint stiffnessCoefficient More...
 
math::Angle upperLimit [2]
 Store Joint position upper limit as specified in SDF. More...
 
double velocityLimit [2]
 Store Joint velocity limit as specified in SDF. More...
 
JointWrench wrench
 Cache Joint force torque values in case physics engine clears them at the end of update step. More...
 
- Protected Attributes inherited from gazebo::physics::Base
Base_V children
 Children of this entity. More...
 
BasePtr parent
 Parent of this entity. More...
 
sdf::ElementPtr sdf
 The SDF values for this object. More...
 
WorldPtr world
 Pointer to the world. More...
 

Additional Inherited Members

- Public Types inherited from gazebo::physics::Joint
enum  Attribute {
  FUDGE_FACTOR, SUSPENSION_ERP, SUSPENSION_CFM, STOP_ERP,
  STOP_CFM, ERP, CFM, FMAX,
  VEL, HI_STOP, LO_STOP
}
 Joint attribute types. More...
 
- 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, GEARBOX_JOINT = 0x00002000,
  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...
 

Detailed Description

A two axis hinge joint.

Constructor & Destructor Documentation

gazebo::physics::DARTHinge2Joint::DARTHinge2Joint ( BasePtr  _parent)

Constructor.

Parameters
[in]_parentParent of the Joint
virtual gazebo::physics::DARTHinge2Joint::~DARTHinge2Joint ( )
virtual

Destructor.

Member Function Documentation

virtual math::Vector3 gazebo::physics::DARTHinge2Joint::GetAnchor ( unsigned int  _index) const
virtual

Get the anchor point.

Parameters
[in]_indexIndex of the axis.
Returns
Anchor value for the axis.

Implements gazebo::physics::Joint.

virtual math::Angle gazebo::physics::DARTHinge2Joint::GetAngleImpl ( unsigned int  _index) const
virtual

Get the angle of an axis helper function.

Parameters
[in]_indexIndex of the axis.
Returns
Angle of the axis.

Implements gazebo::physics::Joint.

virtual math::Vector3 gazebo::physics::DARTHinge2Joint::GetGlobalAxis ( unsigned int  _index) const
virtual

Get the axis of rotation in global cooridnate frame.

Parameters
[in]_indexIndex of the axis to get.
Returns
Axis value for the provided index.

Implements gazebo::physics::Joint.

virtual double gazebo::physics::DARTHinge2Joint::GetMaxForce ( unsigned int  _index)
virtual

Get the max allowed force of an axis(index) when using Joint::SetVelocity.

Note that the unit of force should be consistent with the rest of the simulation scales.

Parameters
[in]_indexIndex of the axis.
Returns
The maximum force.

Implements gazebo::physics::Joint.

virtual double gazebo::physics::DARTHinge2Joint::GetVelocity ( unsigned int  _index) const
virtual

Get the rotation rate of an axis(index)

Parameters
[in]_indexIndex of the axis.
Returns
The rotaional velocity of the joint axis.

Implements gazebo::physics::Joint.

virtual void gazebo::physics::DARTHinge2Joint::Init ( )
virtual

Initialize a joint.

Reimplemented from gazebo::physics::DARTJoint.

virtual void gazebo::physics::DARTHinge2Joint::Load ( sdf::ElementPtr  _sdf)
virtual

Load the joint.

Parameters
[in]_sdfSDF values to load from.

Reimplemented from gazebo::physics::Hinge2Joint< DARTJoint >.

virtual void gazebo::physics::DARTHinge2Joint::SetAxis ( unsigned int  _index,
const math::Vector3 _axis 
)
virtual

Set the axis of rotation where axis is specified in local joint frame.

Parameters
[in]_indexIndex of the axis to set.
[in]_axisVector in local joint frame of axis direction (must have length greater than zero).

Implements gazebo::physics::Joint.

virtual void gazebo::physics::DARTHinge2Joint::SetForceImpl ( unsigned int  _index,
double  _force 
)
protectedvirtual

Set the force applied to this physics::Joint.

Note that the unit of force should be consistent with the rest of the simulation scales. Force is additive (multiple calls to SetForceImpl to the same joint in the same time step will accumulate forces on that Joint).

Parameters
[in]_indexIndex of the axis.
[in]_forceForce value.

Implements gazebo::physics::DARTJoint.

virtual void gazebo::physics::DARTHinge2Joint::SetMaxForce ( unsigned int  _index,
double  _force 
)
virtual

Set the max allowed force of an axis(index) when using Joint::SetVelocity.

Current implementation in Bullet and ODE is enforced using impulses, which enforces force/torque limits when calling Joint::SetVelocity. Current implementation is engine dependent. See for example ODE implementation in ODEHingeJoint::SetMaxForce. Note this functionality is not implemented in DART and Simbody. Note that the unit of force should be consistent with the rest of the simulation scales.

Parameters
[in]_indexIndex of the axis.
[in]_forceMaximum force that can be applied to the axis.

Implements gazebo::physics::Joint.

virtual void gazebo::physics::DARTHinge2Joint::SetVelocity ( unsigned int  _index,
double  _vel 
)
virtual

Set the velocity of an axis(index).

In ODE and Bullet, the SetVelocityMaximal function is used to set the velocity of the child link relative to the parent. In Simbody and DART, this function updates the velocity state, which has a recursive effect on the rest of the chain.

Parameters
[in]_indexIndex of the axis.
[in]_velVelocity.

Implements gazebo::physics::Joint.

Member Data Documentation

dart::dynamics::UniversalJoint* gazebo::physics::DARTHinge2Joint::dtUniveralJoint
protected

Universal joint of DART.


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