Simbody
Public Member Functions

SimTK::Constraint::ConstantOrientation Class Reference

Three constraint equations. More...

#include <Constraint.h>

Inheritance diagram for SimTK::Constraint::ConstantOrientation:

List of all members.

Public Member Functions

 ConstantOrientation (MobilizedBody &baseBody_B, const Rotation &defaultRB, MobilizedBody &followerBody_F, const Rotation &defaultRF)
ConstantOrientationsetDefaultBaseRotation (const Rotation &)
ConstantOrientationsetDefaultFollowerRotation (const Rotation &)
MobilizedBodyIndex getBaseMobilizedBodyIndex () const
MobilizedBodyIndex getFollowerMobilizedBodyIndex () const
const RotationgetDefaultBaseRotation () const
const RotationgetDefaultFollowerRotation () const
const RotationgetBaseRotation (const State &) const
const RotationgetFollowerRotation (const State &) const
Vec3 getPositionErrors (const State &) const
Vec3 getVelocityErrors (const State &) const
Vec3 getAccelerationErrors (const State &) const
Vec3 getMultipliers (const State &) const
Vec3 getTorqueOnFollowerBody (const State &) const
 SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS (ConstantOrientation, ConstantOrientationImpl, Constraint)

Detailed Description

Three constraint equations.

This constraint enforces that a reference frame fixed to one body (the "follower body") must have the same orientation as another reference frame fixed on another body (the "base body"). That is, we have three constraint equations that collectively prohibit any relative rotation between the base and follower. The run time equations we use are just three "constant angle" constraints enforcing perpendicularity between follower's x,y,z axes with the base y,z,x axes respectively.

This constraint is enforced by an internal (non-working) torque vector applied equal and opposite on each body.

TODO: The assembly condition is not the same as the run-time constraint, because the perpendicularity conditions can be satisfied with antiparallel axes. For assembly we must have additional (redundant) constraints requiring parallel axes.


Constructor & Destructor Documentation

SimTK::Constraint::ConstantOrientation::ConstantOrientation ( MobilizedBody baseBody_B,
const Rotation defaultRB,
MobilizedBody followerBody_F,
const Rotation defaultRF 
)

Member Function Documentation

ConstantOrientation& SimTK::Constraint::ConstantOrientation::setDefaultBaseRotation ( const Rotation )
ConstantOrientation& SimTK::Constraint::ConstantOrientation::setDefaultFollowerRotation ( const Rotation )
MobilizedBodyIndex SimTK::Constraint::ConstantOrientation::getBaseMobilizedBodyIndex ( ) const
MobilizedBodyIndex SimTK::Constraint::ConstantOrientation::getFollowerMobilizedBodyIndex ( ) const
const Rotation& SimTK::Constraint::ConstantOrientation::getDefaultBaseRotation ( ) const
const Rotation& SimTK::Constraint::ConstantOrientation::getDefaultFollowerRotation ( ) const
const Rotation& SimTK::Constraint::ConstantOrientation::getBaseRotation ( const State ) const
const Rotation& SimTK::Constraint::ConstantOrientation::getFollowerRotation ( const State ) const
Vec3 SimTK::Constraint::ConstantOrientation::getPositionErrors ( const State ) const
Vec3 SimTK::Constraint::ConstantOrientation::getVelocityErrors ( const State ) const
Vec3 SimTK::Constraint::ConstantOrientation::getAccelerationErrors ( const State ) const
Vec3 SimTK::Constraint::ConstantOrientation::getMultipliers ( const State ) const
Vec3 SimTK::Constraint::ConstantOrientation::getTorqueOnFollowerBody ( const State ) const
SimTK::Constraint::ConstantOrientation::SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS ( ConstantOrientation  ,
ConstantOrientationImpl  ,
Constraint   
)

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