17 #ifndef GAZEBO_PHYSICS_SIMBODY_SIMBODYLINK_HH_
18 #define GAZEBO_PHYSICS_SIMBODY_SIMBODYLINK_HH_
47 public:
virtual void Load(sdf::ElementPtr _ptr);
50 public:
virtual void Init();
53 public:
virtual void Fini();
56 public:
virtual void OnPoseChange();
59 public:
virtual void SetEnabled(
bool enable)
const;
62 public:
virtual bool GetEnabled()
const;
65 public:
virtual void SetLinearVel(
const ignition::math::Vector3d &_vel);
68 public:
virtual void SetAngularVel(
const ignition::math::Vector3d &_vel);
71 public:
virtual void SetForce(
const ignition::math::Vector3d &_force);
74 public:
virtual void SetTorque(
const ignition::math::Vector3d &_force);
77 public:
virtual ignition::math::Vector3d WorldLinearVel(
78 const ignition::math::Vector3d &_vector3)
const;
81 public:
virtual ignition::math::Vector3d WorldLinearVel(
82 const ignition::math::Vector3d &_offset,
83 const ignition::math::Quaterniond &_q)
const;
86 public:
virtual ignition::math::Vector3d WorldCoGLinearVel()
const;
89 public:
virtual ignition::math::Vector3d WorldAngularVel()
const;
92 public:
virtual ignition::math::Vector3d WorldForce()
const;
95 public:
virtual ignition::math::Vector3d WorldTorque()
const;
98 public:
virtual void SetGravityMode(
bool _mode);
101 public:
virtual bool GetGravityMode()
const;
104 public:
virtual void SetSelfCollide(
bool _collide);
107 public:
virtual void SetLinearDamping(
double _damping);
110 public:
virtual void SetAngularDamping(
double _damping);
113 public:
virtual void AddForce(
const ignition::math::Vector3d &_force);
116 public:
virtual void AddRelativeForce(
117 const ignition::math::Vector3d &_force);
120 public:
virtual void AddForceAtWorldPosition(
121 const ignition::math::Vector3d &_force,
122 const ignition::math::Vector3d &_pos);
125 public:
virtual void AddForceAtRelativePosition(
126 const ignition::math::Vector3d &_force,
127 const ignition::math::Vector3d &_relpos);
130 public:
virtual void AddLinkForce(
const ignition::math::Vector3d &_force,
131 const ignition::math::Vector3d &_offset =
132 ignition::math::Vector3d::Zero);
135 public:
virtual void AddTorque(
const ignition::math::Vector3d &_torque);
138 public:
virtual void AddRelativeTorque(
139 const ignition::math::Vector3d &_torque);
142 public:
virtual void SetAutoDisable(
bool _disable);
145 public:
virtual void SaveSimbodyState(
const SimTK::State &_state);
148 public:
virtual void RestoreSimbodyState(SimTK::State &_state);
155 public:
virtual void SetLinkStatic(
bool _static);
160 public: SimTK::MassProperties GetMassProperties()
const;
162 public: SimTK::MassProperties GetEffectiveMassProps(
163 int _numFragments)
const;
167 public:
void SetDirtyPose(
const ignition::math::Pose3d &_pose);
170 public:
virtual void UpdateMass();
174 private:
void ProcessSetGravityMode();
178 private:
void ProcessSetLinkStatic();
199 private:
bool gravityMode;
202 private:
bool staticLinkDirty;
205 private:
bool gravityModeDirty;
208 private:
bool staticLink;
217 private: std::vector<double> simbodyQ;
220 private: std::vector<double> simbodyU;
Link class defines a rigid body entity, containing information on inertia, visual and collision prope...
Definition: Link.hh:58
void enable()
Enable sensors.
boost::shared_ptr< SimbodyPhysics > SimbodyPhysicsPtr
Definition: SimbodyTypes.hh:40
SimTK::MobilizedBody masterMobod
Definition: SimbodyLink.hh:186
Simbody Link class.
Definition: SimbodyLink.hh:38
Simbody wrapper forward declarations and typedefs.
std::vector< SimTK::MobilizedBody > slaveMobods
Definition: SimbodyLink.hh:193
boost::shared_ptr< Connection > ConnectionPtr
Definition: CommonTypes.hh:134
boost::shared_ptr< Entity > EntityPtr
Definition: PhysicsTypes.hh:85
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
bool physicsInitialized
Definition: SimbodyLink.hh:189
bool mustBeBaseLink
: Force this link to be a base body, where its inboard body is the world with 6DOF.
Definition: SimbodyLink.hh:182
std::vector< SimTK::Constraint::Weld > slaveWelds
Definition: SimbodyLink.hh:196