![]() |
RobWorkProject
23.9.11-
|
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.