RobWorkProject
24.12.4-
|
A deformable body composed of a sequence of connected rigid bodies. More...
#include <BeamBody.hpp>
Inherits Body.
Public Types | |
typedef rw::core::Ptr< BeamBody > | Ptr |
Smart pointer type for a BeamBody. | |
Public Types inherited from Body | |
enum | BodyEventType { MassChangedEvent } |
Types of events a body can emit. More... | |
typedef rw::core::Ptr< Body > | Ptr |
Smart pointer type for a Body. | |
typedef boost::function< void(BodyEventType)> | BodyChangedListener |
Defines a state changed listener. More... | |
typedef rw::core::Event< BodyChangedListener, BodyEventType > | BodyChangedEvent |
Type for body events. | |
Public Types inherited from Stateless | |
typedef rw::core::Ptr< Stateless > | Ptr |
Smart pointer type for Stateless. | |
Public Member Functions | |
virtual rw::math::Vector3D | getPointVelW (const rw::math::Vector3D<> &p, const rw::kinematics::State &state) const =0 |
calculates the relative velocity of a point p on the body described in world frames. | |
virtual void | reset (rw::kinematics::State &state)=0 |
reset the state variables of this body | |
double | calcEnergy (const rw::kinematics::State &state, const rw::math::Vector3D<> &gravity=rw::math::Vector3D<>::zero(), const rw::math::Vector3D<> &potZero=rw::math::Vector3D<>::zero()) const |
Calculates the total energy of the body. More... | |
virtual void | setForce (const rw::math::Vector3D<> &f, rw::kinematics::State &state)=0 |
Sets the force described in parent frame acting on the center mass of this body. | |
virtual rw::math::Vector3D | getForce (const rw::kinematics::State &state) const =0 |
Gets the force described in parent frame acting on the center mass of this body. | |
virtual void | addForce (const rw::math::Vector3D<> &force, rw::kinematics::State &state)=0 |
Adds a force described in parent frame to the center of mass of this body. | |
virtual void | setTorque (const rw::math::Vector3D<> &t, rw::kinematics::State &state)=0 |
set the torque of this body with torque t, where t is described in body frame | |
virtual void | addTorque (const rw::math::Vector3D<> &t, rw::kinematics::State &state)=0 |
Adds a force described in parent frame to the center of mass of this body. | |
virtual rw::math::Vector3D | getTorque (const rw::kinematics::State &state) const =0 |
returns torque described in body frame | |
Public Member Functions inherited from Body | |
virtual | ~Body () |
Destructor. | |
const std::string & | getName () const |
name of body which is the name of the BodyFrame More... | |
rw::kinematics::Frame * | getBodyFrame () const |
Returns the frame that the bodies dynamic variables are described relative to. More... | |
const std::vector< rw::geometry::Geometry::Ptr > & | getGeometry (const rw::kinematics::State &state) |
Get all geometry associated with this body. More... | |
const std::vector< rw::geometry::Geometry::Ptr > & | getGeometry () |
Get all geometry associated with this body. More... | |
const std::vector< rw::kinematics::Frame * > & | getFrames () |
gets all frames that is staticly connected to this Body More... | |
const BodyInfo & | getInfo () const |
get the body info More... | |
BodyInfo & | getInfo () |
retrieve body information More... | |
const std::string & | getMaterialID () const |
Material identifier of this object. More... | |
const rw::math::InertiaMatrix & | getInertia () const |
get the inertia matrix of this body. The inertia is described around the center of mass and relative to the parent frame. More... | |
BodyChangedEvent & | changedEvent () |
Returns StateChangeEvent needed for subscribing and firing the event. More... | |
void | setMass (double m) |
Set the mass of the body. More... | |
void | setMass (double m, const rw::math::InertiaMatrix<> &inertia) |
Set the mass and inertia of the body. More... | |
void | setMass (double m, const rw::math::InertiaMatrix<> &inertia, const rw::math::Vector3D<> &com) |
Set the mass, inertia and center of mass of the body. More... | |
void | setObject (rw::models::Object::Ptr obj) |
Replaces object belonging to the body. More... | |
virtual rw::math::VelocityScrew6D | getVelocity (const rw::kinematics::State &state) const =0 |
gets the velocity of this body relative to the parent frame More... | |
virtual rw::math::Vector3D | getLinVel (const rw::kinematics::State &state) const |
returns the linear velocity described in parent frame | |
virtual rw::math::Vector3D | getAngVel (const rw::kinematics::State &state) const |
returns the angular velocity described in parent frame | |
rw::math::Vector3D | getLinVelW (const rw::kinematics::State &state) const |
returns the linear velocity described in world frame | |
rw::math::Vector3D | getAngVelW (const rw::kinematics::State &state) const |
returns the angular velocity described in world frame | |
virtual rw::kinematics::Frame * | getParentFrame (const rw::kinematics::State &state) const |
Get the parent frame of this body. More... | |
virtual void | setForceW (const rw::math::Vector3D<> &f, rw::kinematics::State &state) |
Sets the force described in world frame acting on the center mass of this body. More... | |
virtual rw::math::Vector3D | getForceW (const rw::kinematics::State &state) const |
Gets the force described in world frame acting on the center mass of this body. | |
virtual void | addForceW (const rw::math::Vector3D<> &force, rw::kinematics::State &state) |
Adds a force described in world frame to the center of mass of this body. | |
void | addForceToPos (const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &pos, rw::kinematics::State &state) |
Adds a force described in parent frame to this body which is working on a specific position pos that is described relative to this body. | |
virtual void | addForceWToPosW (const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &pos, rw::kinematics::State &state) |
Adds a force described in world frame to this body which is worked on a specific position pos that is described relative to world. | |
virtual void | setTorqueW (const rw::math::Vector3D<> &t, rw::kinematics::State &state) |
set the torque of this body with torque t, where t is described in world frame | |
virtual void | addTorqueW (const rw::math::Vector3D<> &t, rw::kinematics::State &state) |
Add a torque to the body. More... | |
virtual rw::math::Vector3D | getTorqueW (const rw::kinematics::State &state) const |
returns torque described in world frame | |
virtual rw::math::Transform3D | getTransformW (const rw::kinematics::State &state) const |
Get the current position and orientation of the body frame relative to world frame. More... | |
rw::math::Transform3D | pTbf (const rw::kinematics::State &state) const |
Get the current position and orientation of the body frame relative to the body parent frame. More... | |
rw::math::Transform3D | pTcom (const rw::kinematics::State &state) const |
Get the current position of the body center of mass relative to the body parent frame. More... | |
rw::math::Transform3D | wTbf (const rw::kinematics::State &state) const |
Get the current position and orientation of the body frame relative to world frame. More... | |
rw::math::Transform3D | wTcom (const rw::kinematics::State &state) const |
Get the current position of the body center of mass relative to the world frame. More... | |
rw::models::Object::Ptr | getObject () const |
Get the geometry information for the body. More... | |
Public Member Functions inherited from Stateless | |
virtual | ~Stateless () |
destructor | |
virtual void | registerIn (State &state) |
initialize this stateless data to a specific state More... | |
virtual void | registerIn (StateStructure::Ptr state) |
register this stateless object in a statestructure. | |
virtual void | unregister () |
unregisters all state data of this stateless object | |
StateStructure::Ptr | getStateStructure () |
Get the state structure. More... | |
const StateStructure::Ptr | getStateStructure () const |
Get the state structure. More... | |
bool | isRegistered () |
Check if object has registered its state. More... | |
Additional Inherited Members | |
Public Attributes inherited from Body | |
BodyChangedEvent | _bodyChangedEvent |
The event where listeners can be registered. | |
Protected Member Functions inherited from Body | |
Body (const BodyInfo &info, rw::models::Object::Ptr obj) | |
Construct a new dynamic body. More... | |
Protected Member Functions inherited from Stateless | |
Stateless () | |
constructor | |
template<class T > | |
void | add (StatelessData< T > &data) |
implementations of sensor should add all their stateless data on initialization | |
void | add (StateData *data) |
Add data. More... | |
void | add (rw::core::Ptr< StateData > data) |
implementations of sensor should add all their state data on initialization | |
Protected Attributes inherited from Body | |
BodyInfo | _info |
The dynamic parameters for the body. | |
Protected Attributes inherited from Stateless | |
bool | _registered |
True if object has registered its state. | |
std::vector< rw::core::Ptr< StateData > > | _datas |
Data. | |
StateStructure::Ptr | _stateStruct |
The state structure. | |
A deformable body composed of a sequence of connected rigid bodies.
The beam body models deformations that are approximated with relatively stiff joints and small deformations. eg. the bending of a long metal beam due to gravitational effects.
|
inlinevirtual |
Calculates the total energy of the body.
state | [in] the state with position and velocity of the body. |
gravity | [in] (optional) the gravity to use for calculation of potential energy
|
potZero | [in] (optional) the zero point for calculation of potential energy. |
Implements Body.