Simbody  3.4 (development)
SimTK::MobilizedBody::Free Class Reference

Unrestricted motion for a rigid body (six mobilities). More...

#include <MobilizedBody_Free.h>

+ Inheritance diagram for SimTK::MobilizedBody::Free:

List of all members.

Public Member Functions

 Free ()
 Default constructor provides an empty handle that can be assigned to reference any MobilizedBody::Free.
 Free (MobilizedBody &parent, const Transform &X_PF, const Body &bodyInfo, const Transform &X_BM, Direction=Forward)
 Create a Free mobilizer between an existing parent (inboard) body P and a new child (outboard) body B created by copying the given bodyInfo into a privately-owned Body within the constructed MobilizedBody object.
 Free (MobilizedBody &parent, const Body &bodyInfo, Direction=Forward)
 Abbreviated constructor you can use if the mobilizer frames are coincident with the parent and child body frames.
FreeaddBodyDecoration (const Transform &X_BD, const DecorativeGeometry &g)
 Add decorative geometry specified relative to the new (outboard) body's reference frame B.
FreeaddOutboardDecoration (const Transform &X_MD, const DecorativeGeometry &g)
 Add decorative geometry specified relative to the outboard mobilizer frame M attached to body B.
FreeaddInboardDecoration (const Transform &X_FD, const DecorativeGeometry &g)
 Add decorative geometry specified relative to the inboard mobilizer frame F attached to the parent body P.
FreesetDefaultInboardFrame (const Transform &X_PF)
 Change this mobilizer's frame F on the parent body P.
FreesetDefaultOutboardFrame (const Transform &X_BM)
 Change this mobilizer's frame M fixed on this (the outboard) body B.
FreesetDefaultTranslation (const Vec3 &)
FreesetDefaultQuaternion (const Quaternion &)
FreesetDefaultRotation (const Rotation &)
FreesetDefaultTransform (const Transform &)
const Vec3getDefaultTranslation () const
const QuaterniongetDefaultQuaternion () const
Rotation getDefaultRotation () const
Transform getDefaultTransform () const
const Vec7getDefaultQ () const
FreesetDefaultQ (const Vec7 &q)
const Vec7getQ (const State &) const
const Vec7getQDot (const State &) const
const Vec7getQDotDot (const State &) const
const Vec6getU (const State &) const
const Vec6getUDot (const State &) const
void setQ (State &, const Vec7 &) const
void setU (State &, const Vec6 &) const
const Vec7getMyPartQ (const State &, const Vector &qlike) const
const Vec6getMyPartU (const State &, const Vector &ulike) const
Vec7updMyPartQ (const State &, Vector &qlike) const
Vec6updMyPartU (const State &, Vector &ulike) const

Detailed Description

Unrestricted motion for a rigid body (six mobilities).

Orientation is modeled the same as for the Ball mobilizer, that is, using quaternions to avoid singularities. A modeling option exists to have the joint modeled with an x-y-z body fixed Euler sequence like a Gimbal or Bushing mobilizer. Translational generalized coordinates are x,y,z translations along the F (inboard) axes. There are six generalized speeds u for this mobilizer. The first three are always the three measure numbers of the angular velocity vector w_FM, the relative angular velocity of the outboard M frame in the inboard F frame, expressed in the F frame. The second three are the measure numbers of v_FM, the relative linear velocity of the M frame's origin Mo in the F frame, expressed in the F frame. The meaning of the generalized speeds is unchanged by setting the "use Euler angles" modeling option, so the rotational generalized speeds here differ from those of a Bushing joint, and qdot != u for this mobilizer.

See also:
MobilizedBody::Bushing for an alternative.

Constructor & Destructor Documentation

Default constructor provides an empty handle that can be assigned to reference any MobilizedBody::Free.

SimTK::MobilizedBody::Free::Free ( MobilizedBody parent,
const Transform X_PF,
const Body bodyInfo,
const Transform X_BM,
Direction  = Forward 
)

Create a Free mobilizer between an existing parent (inboard) body P and a new child (outboard) body B created by copying the given bodyInfo into a privately-owned Body within the constructed MobilizedBody object.

Specify the mobilizer frames F fixed to parent P and M fixed to child B.

See also:
MobilizedBody for a diagram and explanation of terminology.
SimTK::MobilizedBody::Free::Free ( MobilizedBody parent,
const Body bodyInfo,
Direction  = Forward 
)

Abbreviated constructor you can use if the mobilizer frames are coincident with the parent and child body frames.


Member Function Documentation

Free& SimTK::MobilizedBody::Free::addBodyDecoration ( const Transform X_BD,
const DecorativeGeometry geometry 
) [inline]

Add decorative geometry specified relative to the new (outboard) body's reference frame B.

Note that the body itself may already have had some decorative geometry on it when it was first put into this MobilizedBody; this just adds more and the returned index is larger. Use the underlying Body object's accessors to find this decorative geometry again. The given geometry object is copied here; we do not keep a reference to the supplied object.

Reimplemented from SimTK::MobilizedBody.

Free& SimTK::MobilizedBody::Free::addOutboardDecoration ( const Transform X_MD,
const DecorativeGeometry geometry 
) [inline]

Add decorative geometry specified relative to the outboard mobilizer frame M attached to body B.

If body B already has decorative geometry on it, this just adds some more, but kept in a separate list from the body decorations and inboard decorations. Returns a unique index that can be used to identify this outboard decoration later (numbered starting from zero for outboard decorations only).

Reimplemented from SimTK::MobilizedBody.

Free& SimTK::MobilizedBody::Free::addInboardDecoration ( const Transform X_FD,
const DecorativeGeometry geometry 
) [inline]

Add decorative geometry specified relative to the inboard mobilizer frame F attached to the parent body P.

If body P already has decorative geometry on it, this just adds some more, but kept in a separate list from the body decorations and outboard decorations. Returns a unique index that can be used to identify this inboard decoration later (numbered starting from zero for inboard decorations only).

Reimplemented from SimTK::MobilizedBody.

Change this mobilizer's frame F on the parent body P.

Calling this method invalidates the MobilizedBody's topology, so the containing matter subsystem's realizeTopology() method must be called again. A reference to this MobilizedBody is returned so that this can be chained like an assignment operator.

Reimplemented from SimTK::MobilizedBody.

Change this mobilizer's frame M fixed on this (the outboard) body B.

Calling this method invalidates the MobilizedBody's topology, so the containing matter subsystem's realizeTopology() method must be called again. A reference to this MobilizedBody is returned so that this can be chained like an assignment operator.

Reimplemented from SimTK::MobilizedBody.

const Vec7& SimTK::MobilizedBody::Free::getQ ( const State ) const
const Vec7& SimTK::MobilizedBody::Free::getQDot ( const State ) const
const Vec6& SimTK::MobilizedBody::Free::getU ( const State ) const
const Vec6& SimTK::MobilizedBody::Free::getUDot ( const State ) const
void SimTK::MobilizedBody::Free::setQ ( State ,
const Vec7  
) const
void SimTK::MobilizedBody::Free::setU ( State ,
const Vec6  
) const
const Vec7& SimTK::MobilizedBody::Free::getMyPartQ ( const State ,
const Vector qlike 
) const
const Vec6& SimTK::MobilizedBody::Free::getMyPartU ( const State ,
const Vector ulike 
) const
Vec7& SimTK::MobilizedBody::Free::updMyPartQ ( const State ,
Vector qlike 
) const
Vec6& SimTK::MobilizedBody::Free::updMyPartU ( const State ,
Vector ulike 
) const

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines