Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ArticulatedAgentQuasistatic Class Reference

#include <ArticulatedAgentQuasistatic.h>

Inheritance diagram for ArticulatedAgentQuasistatic:

ArticulatedAgentBase ArticulatedComponent ComposedPhysicalObject PhysicalObject GraphicalObject Iunctus List of all members.

Public Member Functions

Protected Member Functions


Detailed Description

Computes the velocities of the coordinates for an articulated agent, given forces, using a Featherstone-type algorithm, for the case of quasistatic mechanics.

Definition at line 14 of file ArticulatedAgentQuasistatic.h.


Constructor & Destructor Documentation

ArticulatedAgentQuasistatic::ArticulatedAgentQuasistatic std::string  label = ""  ) 
 

Default constructor; sets the simulator.

Definition at line 19 of file ArticulatedAgentQuasistatic.cpp.

ArticulatedAgentQuasistatic::~ArticulatedAgentQuasistatic  )  [virtual]
 

Destructor; does nothing.

Definition at line 23 of file ArticulatedAgentQuasistatic.cpp.


Member Function Documentation

void ArticulatedAgentQuasistatic::backwardDynamics  )  [protected]
 

Implements the Backward Dynamics step of the Featherstone algorithm.

Definition at line 67 of file ArticulatedAgentQuasistatic.cpp.

References ContactInfo::alpha, PhysicalObject::alpha, ArticulatedComponent::beta, ArticulatedComponent::betaExternal, ArticulatedComponent::betaStar, ArticulatedLink::childLinks, computeBodyDerivativesWithoutContacts(), PhysicalObject::contacts, ArticulatedLimb::cos2, ArticulatedLink::cos2, ArticulatedLimb::cosTheta, ArticulatedLink::cosTheta, ArticulatedComponent::deleteK(), PhysicalObject::externalForce, PhysicalObject::externalTorque, SymmetricMatrix3::getDeterminant(), Matrix3::getElement(), ArticulatedComponent::IStar, ArticulatedComponent::IStar0, ArticulatedComponent::K, ArticulatedLimb::l, ArticulatedLink::l, ArticulatedLimb::links, SymmetricMatrix3::mirror(), ArticulatedLink::motorTorque, ContactInfo::n, ContactInfo::pxn, real, Vector2::rotate(), SymmetricMatrix3::setElements(), Vector2::setToZero(), Vector3::setXYZ(), ContactInfo::sigma, ArticulatedLimb::sin2, ArticulatedLink::sin2, ArticulatedLimb::sinCos, ArticulatedLink::sinCos, ArticulatedLimb::sinTheta, ArticulatedLink::sinTheta, ArticulatedAgentBase::solveSystem(), sqr(), ArticulatedLink::torqueContact, PhysicalObject::v, Vector3::x, Vector2::x, Vector3::y, Vector2::y, and Vector3::z.

Referenced by computeDerivativesWithoutContacts().

void ArticulatedAgentQuasistatic::computeBodyDerivatives GlobalContactInfoVector globalContacts  )  [protected, virtual]
 

Computes the body derivatives. It is externalized in order to allow the possibility of a fixed body.

Definition at line 529 of file ArticulatedAgentQuasistatic.cpp.

References ArticulatedLink::force, real, Vector2::rotate(), Vector2::setXY(), and Vector2::x.

Referenced by computeDerivatives().

void ArticulatedAgentQuasistatic::computeBodyDerivativesWithoutContacts real  determinant  )  [protected, virtual]
 

Computes the body derivatives without contacts. It is externalized in order to allow the possibility of a fixed body.

Definition at line 363 of file ArticulatedAgentQuasistatic.cpp.

References Vector2::rotate(), Vector2::setXY(), ArticulatedAgentBase::solveSystem(), Vector3::x, Vector3::y, and Vector3::z.

Referenced by backwardDynamics().

void ArticulatedAgentQuasistatic::computeDerivatives GlobalContactInfoVector globalContacts  )  [protected, virtual]
 

Computes the derivatives, given the contact forces. The globalContacts pointer is needed for contact processing for articulated agents.

Reimplemented from PhysicalObject.

Definition at line 495 of file ArticulatedAgentQuasistatic.cpp.

References computeBodyDerivatives(), ArticulatedLink::force, ArticulatedLimb::links, ArticulatedComponent::Q, real, ComposedPhysicalObject::setSensors(), and ArticulatedLink::thetaD.

virtual void ArticulatedAgentQuasistatic::computeDerivativesWithoutContacts ContactSolver contactSolver  )  [inline, protected, virtual]
 

Computes the derivatives through the Featherstone algorithm.

Reimplemented from PhysicalObject.

Definition at line 33 of file ArticulatedAgentQuasistatic.h.

References backwardDynamics(), and forwardAccelerations().

void ArticulatedAgentQuasistatic::computeForces GlobalContactInfoVector globalContacts  )  [protected]
 

Definition at line 543 of file ArticulatedAgentQuasistatic.cpp.

References ArticulatedLink::computeForceQuasistatic(), and ArticulatedLimb::links.

void ArticulatedAgentQuasistatic::computeTotalForces GlobalContactInfoVector globalContacts  )  [protected]
 

Computes the total forces and torques acting on a link; used for testing purposes.

Definition at line 558 of file ArticulatedAgentQuasistatic.cpp.

References ArticulatedLink::childLinks, ArticulatedLink::computeForceQuasistatic(), ArticulatedLink::cosTheta, ArticulatedLink::force, ArticulatedLink::forceLocal, ArticulatedLink::l, ArticulatedLimb::links, ArticulatedLink::motorTorque, ArticulatedLink::sinTheta, ArticulatedLink::totalForce, ArticulatedLink::totalTorque, Vector2::x, and Vector2::y.

void ArticulatedAgentQuasistatic::forwardAccelerations ContactSolver contactSolver  )  [protected]
 

Implements the Forward Accelerations step of the Featherstone algorithm.

Definition at line 372 of file ArticulatedAgentQuasistatic.cpp.

References ContactInfo::alpha, PhysicalObject::alpha, ArticulatedComponent::betaStar, ContactSolver::contactMatrix, PhysicalObject::contacts, ContactSolver::contactVector, ArticulatedLink::cosTheta, Vector2::cross(), Matrix3::getElement(), ArticulatedComponent::IStar, ArticulatedComponent::K, ArticulatedLink::l, ArticulatedLimb::l, ArticulatedLimb::links, ArticulatedLink::motorTorque, ContactInfo::n, ArticulatedComponent::nContacts, PhysicalObject::omega, ContactInfo::p, ArticulatedLink::parentLink, ArticulatedComponent::Q, real, Vector2::rotate(), Vector2::setXY(), Vector3::setXYZ(), ContactInfo::sigma, ArticulatedLink::sinTheta, ArticulatedLimb::theta, ArticulatedLink::thetaD, ArticulatedLink::torqueContact, PhysicalObject::v, ArticulatedComponent::vLocal, Vector3::x, Vector2::x, Vector3::y, Vector2::y, and Vector3::z.

Referenced by computeDerivativesWithoutContacts().

void ArticulatedAgentQuasistatic::forwardKinematics  )  [protected]
 

Based on the position of the body and the thetas, computes the position and angle of each of the links.

Definition at line 27 of file ArticulatedAgentQuasistatic.cpp.

References PhysicalObject::alpha, ComposedPhysicalObject::computeMemberPositions(), ArticulatedLink::computeMotorTorque(), ArticulatedLink::computeSinCos(), ArticulatedLink::l, ArticulatedLimb::l, ArticulatedLimb::links, ArticulatedLink::parentLink, PhysicalObject::r, real, Vector2::rotate(), Vector2::setXY(), ArticulatedLink::theta, and ArticulatedLimb::theta.

Referenced by Iunctus::build(), and integrate().

void ArticulatedAgentQuasistatic::integrate const Integrator integrator  )  [protected, virtual]
 

Advances the time to the next timestep, updating the positions.

Reimplemented from ComposedPhysicalObject.

Definition at line 615 of file ArticulatedAgentQuasistatic.cpp.

References PhysicalObject::boxMax, PhysicalObject::boxMin, forwardKinematics(), ComposedPhysicalObject::integrate(), ArticulatedLink::integrate(), ArticulatedLimb::links, Vector2::updateMax(), and Vector2::updateMin().

void ArticulatedAgentQuasistatic::rollback  )  [protected, virtual]
 

Rolls back the time to the previous timestep.

Reimplemented from ComposedPhysicalObject.

Definition at line 643 of file ArticulatedAgentQuasistatic.cpp.

References PhysicalObject::boxMax, PhysicalObject::boxMin, ArticulatedLimb::links, ComposedPhysicalObject::rollback(), ArticulatedLink::rollback(), Vector2::updateMax(), and Vector2::updateMin().


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

Thyrix homepageUsers' guide

(C) Arxia 2004-2005