RobWorkProject  23.9.11-
Public Types | Public Member Functions | List of all members
FixedBody Class Reference

a body with a fixed position, zero velocity and zero force. More...

#include <FixedBody.hpp>

Inherits Body.

Public Types

typedef rw::core::Ptr< FixedBody > Ptr
 Smart pointer type for a fixed body.
 
- 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

 FixedBody (const BodyInfo &info, rw::models::Object::Ptr obj)
 Construct a new dynamic body. More...
 
virtual ~FixedBody ()
 destructor
 
virtual rw::math::Vector3D getPointVelW (const rw::math::Vector3D<> &p, const rw::kinematics::State &state) const
 calculates the relative velocity of a point p on the body described in world frames. More...
 
rw::math::VelocityScrew6D getVelocity (const rw::kinematics::State &state) const
 gets the velocity of this body relative to the parent frame More...
 
void reset (rw::kinematics::State &state)
 reset the state variables of this body More...
 
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...
 
void setForce (const rw::math::Vector3D<> &f, rw::kinematics::State &state)
 Sets the force described in parent frame acting on the center mass of this body. More...
 
rw::math::Vector3D getForce (const rw::kinematics::State &state) const
 Gets the force described in parent frame acting on the center mass of this body. More...
 
void addForce (const rw::math::Vector3D<> &force, rw::kinematics::State &state)
 Adds a force described in parent frame to the center of mass of this body. More...
 
void setTorque (const rw::math::Vector3D<> &t, rw::kinematics::State &state)
 set the torque of this body with torque t, where t is described in body frame More...
 
void addTorque (const rw::math::Vector3D<> &t, rw::kinematics::State &state)
 Adds a force described in parent frame to the center of mass of this body. More...
 
rw::math::Vector3D getTorque (const rw::kinematics::State &state) const
 returns torque described in body frame More...
 
- 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::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.
 

Detailed Description

a body with a fixed position, zero velocity and zero force.

This body type is not allowed to move during simulation.

Constructor & Destructor Documentation

◆ FixedBody()

FixedBody ( const BodyInfo &  info,
rw::models::Object::Ptr  obj 
)
inline

Construct a new dynamic body.

Parameters
info[in] general information about the dynamic properties of this body.
obj[in] information about the body reference frame and geometry.

Member Function Documentation

◆ addForce()

void addForce ( const rw::math::Vector3D<> &  force,
rw::kinematics::State &  state 
)
inlinevirtual

Adds a force described in parent frame to the center of mass of this body.

Implements Body.

◆ addTorque()

void addTorque ( const rw::math::Vector3D<> &  t,
rw::kinematics::State &  state 
)
inlinevirtual

Adds a force described in parent frame to the center of mass of this body.

Implements Body.

◆ calcEnergy()

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
inlinevirtual

Calculates the total energy of the body.

Parameters
state[in] the state with position and velocity of the body.
gravity[in] (optional) the gravity to use for calculation of potential energy
  • if not specified, no potential energy is calculated.
potZero[in] (optional) the zero point for calculation of potential energy.
Returns
the total energy of the body.

Implements Body.

◆ getForce()

rw::math::Vector3D getForce ( const rw::kinematics::State &  state) const
inlinevirtual

Gets the force described in parent frame acting on the center mass of this body.

Implements Body.

◆ getPointVelW()

virtual rw::math::Vector3D getPointVelW ( const rw::math::Vector3D<> &  p,
const rw::kinematics::State &  state 
) const
inlinevirtual

calculates the relative velocity of a point p on the body described in world frames.

Reimplemented from Body.

◆ getTorque()

rw::math::Vector3D getTorque ( const rw::kinematics::State &  state) const
inlinevirtual

returns torque described in body frame

Implements Body.

◆ getVelocity()

rw::math::VelocityScrew6D getVelocity ( const rw::kinematics::State &  state) const
inlinevirtual

gets the velocity of this body relative to the parent frame

Parameters
state
Returns

Implements Body.

◆ reset()

void reset ( rw::kinematics::State &  state)
inlinevirtual

reset the state variables of this body

Implements Body.

◆ setForce()

void setForce ( const rw::math::Vector3D<> &  f,
rw::kinematics::State &  state 
)
inlinevirtual

Sets the force described in parent frame acting on the center mass of this body.

Implements Body.

◆ setTorque()

void setTorque ( const rw::math::Vector3D<> &  t,
rw::kinematics::State &  state 
)
inlinevirtual

set the torque of this body with torque t, where t is described in body frame

Implements Body.


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