HumanHand Class Reference

A hand with tendon information. More...

#include <humanHand.h>

Inheritance diagram for HumanHand:
Inheritance graph
[legend]

List of all members.

Public Member Functions

int contactEquilibrium (std::list< Contact * > contacts, const std::set< size_t > &activeTendons, std::vector< double > &activeTendonForces, double &unbalanced_magnitude)
int contactForcesFromTendonForces (std::list< Contact * > contacts, std::vector< double > &contactForces, const std::set< size_t > &activeTendons, const std::vector< double > &activeTendonForces)
int contactTorques (std::list< Contact * > contacts, std::vector< double > &jointTorques)
void deselectTendon (int i)
virtual void DOFController (double timeStep)
 Applies tendon forces rather than calling the PD Controller.
int getNumTendons ()
int getNumTendonWrappers ()
TendongetTendon (int i)
TendonWrappergetTendonWrapper (int i)
 HumanHand (World *, const char *)
bool insPointInsideWrapper ()
 Returns true if any of the tendons has a permanent insertion point inside a wrapper.
virtual int loadFromXml (const TiXmlElement *root, QString rootPath)
double minInsPointDistance ()
void removeTemporaryInsertionPoints ()
 Removes temporary insertion points for all tendons.
void selectTendon (int i)
void setRestPosition ()
int tendonEquilibrium (const std::set< size_t > &activeTendons, const std::set< size_t > &passiveTendons, bool compute_tendon_forces, std::vector< double > &activeTendonForces, std::vector< double > &jointResiduals, double &unbalanced_magnitude, bool useJointSprings=true)
 Computes if tendon forces are self-balanced around all joints of the hand.
void updateTendonGeometry ()
virtual ~HumanHand ()

Protected Member Functions

void applyTendonForces ()
 Applies dynamic tendon forces, to be called during an interation of the dynamic engine.

Protected Attributes

std::vector< Tendon * > mTendonVec
std::vector< TendonWrapper * > mTendonWrapperVec

Detailed Description

A hand with tendon information.

Currently, the only thing that a human hand has different from a robotic hand is a list of tendons. It will load these tendons from the .cfg file and display them, and the GUI can be used to visualize the tendon geometry, excursion, etc. In the future, the human hand might gain more features.

Definition at line 374 of file humanHand.h.


Constructor & Destructor Documentation

HumanHand::HumanHand ( World w,
const char *  name 
)

Definition at line 1091 of file humanHand.cpp.

virtual HumanHand::~HumanHand (  )  [inline, virtual]

Definition at line 386 of file humanHand.h.


Member Function Documentation

void HumanHand::applyTendonForces (  )  [protected]

Applies dynamic tendon forces, to be called during an interation of the dynamic engine.

Definition at line 1149 of file humanHand.cpp.

int HumanHand::contactEquilibrium ( std::list< Contact * >  contacts,
const std::set< size_t > &  activeTendons,
std::vector< double > &  activeTendonForces,
double &  unbalanced_magnitude 
)

Definition at line 1350 of file humanHand.cpp.

int HumanHand::contactForcesFromTendonForces ( std::list< Contact * >  contacts,
std::vector< double > &  contactForces,
const std::set< size_t > &  activeTendons,
const std::vector< double > &  activeTendonForces 
)

Definition at line 1459 of file humanHand.cpp.

int HumanHand::contactTorques ( std::list< Contact * >  contacts,
std::vector< double > &  jointTorques 
)

Returns the joint torques created by the given contacts applying 1N of force along their normals. Does not care about tendons.

Definition at line 1310 of file humanHand.cpp.

void HumanHand::deselectTendon ( int  i  )  [inline]

Definition at line 402 of file humanHand.h.

void HumanHand::DOFController ( double  timeStep  )  [virtual]

Applies tendon forces rather than calling the PD Controller.

Applies tendon forces; for now both active and passive.

Reimplemented from Robot.

Definition at line 1157 of file humanHand.cpp.

int HumanHand::getNumTendons (  )  [inline]

Definition at line 392 of file humanHand.h.

int HumanHand::getNumTendonWrappers (  )  [inline]

Definition at line 394 of file humanHand.h.

Tendon* HumanHand::getTendon ( int  i  )  [inline]

Definition at line 396 of file humanHand.h.

TendonWrapper* HumanHand::getTendonWrapper ( int  i  )  [inline]

Definition at line 398 of file humanHand.h.

bool HumanHand::insPointInsideWrapper (  ) 

Returns true if any of the tendons has a permanent insertion point inside a wrapper.

Definition at line 1579 of file humanHand.cpp.

int HumanHand::loadFromXml ( const TiXmlElement root,
QString  rootPath 
) [virtual]

First calls the super to load the hand like a regular one (all kinematic chains, links etc). Then loads tendon information from the same file.

Reimplemented from Robot.

Reimplemented in McGrip.

Definition at line 1099 of file humanHand.cpp.

double HumanHand::minInsPointDistance (  )  [inline]

Returns the minimum distance between consecutive permanent insertion points for all tendons Does not look at distances accross tendons

Definition at line 472 of file humanHand.h.

void HumanHand::removeTemporaryInsertionPoints (  )  [inline]

Removes temporary insertion points for all tendons.

Definition at line 462 of file humanHand.h.

void HumanHand::selectTendon ( int  i  )  [inline]

Definition at line 400 of file humanHand.h.

void HumanHand::setRestPosition (  )  [inline]

Sets the rest position of all tendons to their default values, or, if they don't have one, to their current value.

Definition at line 438 of file humanHand.h.

int HumanHand::tendonEquilibrium ( const std::set< size_t > &  activeTendons,
const std::set< size_t > &  passiveTendons,
bool  compute_tendon_forces,
std::vector< double > &  activeTendonForces,
std::vector< double > &  jointResiduals,
double &  unbalanced_magnitude,
bool  useJointSprings = true 
)

Computes if tendon forces are self-balanced around all joints of the hand.

Tries to find force values for all the tendons in the active set so that the joint torques resulting from passive forces on the tendons in the passive set are minimized.

Definition at line 1179 of file humanHand.cpp.

void HumanHand::updateTendonGeometry (  ) 

Definition at line 1142 of file humanHand.cpp.


Member Data Documentation

std::vector<Tendon *> HumanHand::mTendonVec [protected]

Definition at line 377 of file humanHand.h.

std::vector<TendonWrapper *> HumanHand::mTendonWrapperVec [protected]

Definition at line 379 of file humanHand.h.


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


graspit
Author(s):
autogenerated on Wed Jan 25 11:00:22 2012