18 #ifndef _SIMBODY_LINK_HH_
19 #define _SIMBODY_LINK_HH_
48 public:
virtual void Load(sdf::ElementPtr _ptr);
51 public:
virtual void Init();
54 public:
virtual void Fini();
57 public:
virtual void OnPoseChange();
60 public:
virtual void SetEnabled(
bool enable)
const;
63 public:
virtual bool GetEnabled()
const;
69 public:
virtual void SetAngularVel(
const math::Vector3 &_vel);
99 public:
virtual void SetGravityMode(
bool _mode);
102 public:
virtual bool GetGravityMode()
const;
105 public:
virtual void SetSelfCollide(
bool _collide);
108 public:
virtual void SetLinearDamping(
double _damping);
111 public:
virtual void SetAngularDamping(
double _damping);
117 public:
virtual void AddRelativeForce(
const math::Vector3 &_force);
120 public:
virtual void AddForceAtWorldPosition(
const math::Vector3 &_force,
124 public:
virtual void AddForceAtRelativePosition(
129 public:
virtual void AddLinkForce(
const math::Vector3 &_force,
133 public:
virtual void AddTorque(
const math::Vector3 &_torque);
136 public:
virtual void AddRelativeTorque(
const math::Vector3 &_torque);
139 public:
virtual void SetAutoDisable(
bool _disable);
142 public:
virtual void SaveSimbodyState(
const SimTK::State &_state);
145 public:
virtual void RestoreSimbodyState(SimTK::State &_state);
152 public:
virtual void SetLinkStatic(
bool _static);
157 public: SimTK::MassProperties GetMassProperties()
const;
159 public: SimTK::MassProperties GetEffectiveMassProps(
160 int _numFragments)
const;
162 public:
void SetDirtyPose(
const math::Pose &_pose);
165 public:
virtual void UpdateMass();
169 private:
void ProcessSetGravityMode();
173 private:
void ProcessSetLinkStatic();
194 private:
bool gravityMode;
197 private:
bool staticLinkDirty;
200 private:
bool gravityModeDirty;
203 private:
bool staticLink;
212 private: std::vector<double> simbodyQ;
215 private: std::vector<double> simbodyU;
boost::shared_ptr< Connection > ConnectionPtr
Definition: CommonTypes.hh:153
SimTK::MobilizedBody masterMobod
Definition: SimbodyLink.hh:181
bool mustBeBaseLink
: Force this link to be a base body, where its inboard body is the world with 6DOF.
Definition: SimbodyLink.hh:177
#define GZ_PHYSICS_VISIBLE
Definition: system.hh:259
Encapsulates a position and rotation in three space.
Definition: Pose.hh:37
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:39
Link class defines a rigid body entity, containing information on inertia, visual and collision prope...
Definition: Link.hh:68
boost::shared_ptr< SimbodyPhysics > SimbodyPhysicsPtr
Definition: SimbodyTypes.hh:37
GAZEBO_VISIBLE void enable()
Enable sensors.
boost::shared_ptr< Entity > EntityPtr
Definition: PhysicsTypes.hh:80
Simbody Link class.
Definition: SimbodyLink.hh:39
std::vector< SimTK::Constraint::Weld > slaveWelds
Definition: SimbodyLink.hh:191
A quaternion class.
Definition: Quaternion.hh:42
static const Vector3 Zero
math::Vector3(0, 0, 0)
Definition: Vector3.hh:42
Simbody wrapper forward declarations and typedefs.
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
std::vector< SimTK::MobilizedBody > slaveMobods
Definition: SimbodyLink.hh:188
bool physicsInitialized
Definition: SimbodyLink.hh:184