16 #ifndef SURGSIM_PHYSICS_RIGIDREPRESENTATION_H 17 #define SURGSIM_PHYSICS_RIGIDREPRESENTATION_H 19 #include "SurgSim/DataStructures/BufferedValue.h" 20 #include "SurgSim/Framework/Macros.h" 21 #include "SurgSim/Framework/ObjectFactory.h" 24 #include "SurgSim/Physics/RigidRepresentationBase.h" 34 typedef RigidLocalization RigidLocalization;
36 SURGSIM_STATIC_REGISTRATION(RigidRepresentation);
97 void update(
double dt)
override;
101 void applyCorrection(
double dt,
const Eigen::VectorBlock<SurgSim::Math::Vector>& deltaVelocity)
override;
130 bool doInitialize()
override;
134 void computeComplianceMatrix(
double dt);
138 void updateGlobalInertiaMatrices(
const RigidState& state)
override;
144 #endif // SURGSIM_PHYSICS_RIGIDREPRESENTATION_H Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
virtual ~RigidRepresentation()
Destructor.
Definition: RigidRepresentation.cpp:53
RigidRepresentation(const std::string &name)
Constructor.
Definition: RigidRepresentation.cpp:36
Eigen::Matrix< double, 6, 1 > Vector6d
A 6D matrix of doubles.
Definition: Vector.h:65
const SurgSim::Math::Matrix66d & getExternalGeneralizedDamping() const
Definition: RigidRepresentation.cpp:191
SurgSim::Math::Matrix33d m_globalInertia
Inertia matrices in global coordinates.
Definition: RigidRepresentation.h:109
A Location defines a local position w.r.t.
Definition: Location.h:39
SurgSim::DataStructures::BufferedValue< SurgSim::Math::Vector6d > & getExternalGeneralizedForce()
Definition: RigidRepresentation.cpp:181
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:57
The RigidRepresentation class defines the dynamic rigid body representation Note that the rigid repre...
Definition: RigidRepresentation.h:42
bool m_hasExternalGeneralizedForce
External generalized force, stiffness and damping applied on the rigid representation.
Definition: RigidRepresentation.h:123
The RigidRepresentationBase class defines the base class for all rigid motion based representations (...
Definition: RigidRepresentationBase.h:38
void setAngularVelocity(const SurgSim::Math::Vector3d &angularVelocity)
Set the current angular velocity of the rigid representation.
Definition: RigidRepresentation.cpp:470
The RigidState class describes a state (position and velocity information).
Definition: RigidState.h:31
Eigen::Matrix< double, 6, 6, Eigen::RowMajor > Matrix66d
A 6x6 matrix of doubles.
Definition: Matrix.h:59
SurgSim::Math::Vector3d m_force
Current force applied on the rigid representation (in N)
Definition: RigidRepresentation.h:114
SurgSim::Math::Matrix66d m_C
Compliance matrix (size of the number of Dof = 6)
Definition: RigidRepresentation.h:119
void setLinearVelocity(const SurgSim::Math::Vector3d &linearVelocity)
Set the current linear velocity of the rigid representation.
Definition: RigidRepresentation.cpp:465
Definitions of small fixed-size square matrix types.
SurgSim::Math::Matrix33d m_invGlobalInertia
Inverse of inertia matrix in global coordinates.
Definition: RigidRepresentation.h:111
Definitions of small fixed-size vector types.
void addExternalGeneralizedForce(const SurgSim::Math::Vector6d &generalizedForce, const SurgSim::Math::Matrix66d &K=SurgSim::Math::Matrix66d::Zero(), const SurgSim::Math::Matrix66d &D=SurgSim::Math::Matrix66d::Zero())
Add an external generalized force applied to the rigid representation's mass center.
Definition: RigidRepresentation.cpp:57
void afterUpdate(double dt) override
Postprocessing done after the update call This needs to be called from the outside usually from a Com...
Definition: RigidRepresentation.cpp:314
void beforeUpdate(double dt) override
Preprocessing done before the update call This needs to be called from the outside usually from a Com...
Definition: RigidRepresentation.cpp:196
SurgSim::Math::Vector3d m_torque
Current torque applied on the rigid representation (in N.m)
Definition: RigidRepresentation.h:116
Eigen::Matrix< double, 3, 3, Eigen::RowMajor > Matrix33d
A 3x3 matrix of doubles.
Definition: Matrix.h:51
void applyCorrection(double dt, const Eigen::VectorBlock< SurgSim::Math::Vector > &deltaVelocity) override
Update the Representation's current position and velocity using a time interval, dt, and change in velocity, deltaVelocity.
Definition: RigidRepresentation.cpp:338
const SurgSim::Math::Matrix66d & getComplianceMatrix() const
Retrieve the rigid body 6x6 compliance matrix.
Definition: RigidRepresentation.cpp:404
const SurgSim::Math::Matrix66d & getExternalGeneralizedStiffness() const
Definition: RigidRepresentation.cpp:186
void update(double dt) override
Update the representation state to the current time step.
Definition: RigidRepresentation.cpp:210