Libbarrett  1.2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Defines
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
barrett::systems::Wam< DOF > Class Template Reference

List of all members.

Public Types

enum  { JT_INPUT = 0, GRAVITY_INPUT, SC_INPUT }

Public Member Functions

 BARRETT_UNITS_TEMPLATE_TYPEDEFS (DOF)
 Wam (ExecutionManager *em, const std::vector< Puck * > &genericPucks, SafetyModule *safetyModule, const libconfig::Setting &setting, std::vector< int > torqueGroupIds=std::vector< int >(), const std::string &sysName="Wam")
 ~Wam ()
template<typename T >
void trackReferenceSignal (System::Output< T > &referenceSignal)
const jp_type & getHomePosition () const
jt_type getJointTorques () const
jp_type getJointPositions () const
jv_type getJointVelocities () const
cp_type getToolPosition () const
cv_type getToolVelocity () const
Eigen::Quaterniond getToolOrientation () const
pose_type getToolPose () const
math::Matrix< 6, DOF > getToolJacobian () const
void gravityCompensate (bool compensate=true)
bool updateGravity (double val=-9.8)
bool isGravityCompensated ()
void moveHome (bool blocking=true)
void moveHome (bool blocking, double velocity)
void moveHome (bool blocking, double velocity, double acceleration)
void moveTo (const jp_type &destination, bool blocking=true, double velocity=0.5, double acceleration=0.5)
void moveTo (const cp_type &destination, bool blocking=true, double velocity=0.1, double acceleration=0.2)
void moveTo (const Eigen::Quaterniond &destination, bool blocking=true, double velocity=0.5, double acceleration=0.5)
void moveTo (const pose_type &destination, bool blocking=true, double velocity=0.1, double acceleration=0.2)
template<typename T >
void moveTo (const T &currentPos, const T &destination, bool blocking, double velocity, double acceleration)
bool moveIsDone () const
void idle ()
thread::MutexgetEmMutex () const
LowLevelWam< DOF > & getLowLevelWam ()
const LowLevelWam< DOF > & getLowLevelWam () const

Public Attributes

LowLevelWamWrapper< DOF > llww
KinematicsBase< DOF > kinematicsBase
GravityCompensator< DOF > gravity
FirstOrderFilter< jv_type > jvFilter
ToolPosition< DOF > toolPosition
ToolVelocity< DOF > toolVelocity
ToolOrientation< DOF > toolOrientation
TupleGrouper< cp_type,
Eigen::Quaterniond > 
toolPose
Converter< jt_type > supervisoryController
Gain< jt_type, double > jtPassthrough
PIDController< jp_type, jt_type > jpController
PIDController< jv_type, jt_type > jvController1
FirstOrderFilter< jt_type > jvController2
PIDController< cp_type, cf_type > tpController
ToolForceToJointTorques< DOF > tf2jt
ToolOrientationController< DOF > toController
ToolTorqueToJointTorques< DOF > tt2jt
TupleSplitter< cp_type,
Eigen::Quaterniond > 
tpoSplitter
PIDController< cp_type, cf_type > tpoTpController
ToolForceToJointTorques< DOF > tpoTf2jt
ToolOrientationController< DOF > tpoToController
ToolTorqueToJointTorques< DOF > tpoTt2jt
Summer< jt_type, 2 > tpoSum
Summer< jt_type, 3 > jtSum
System::Input< jt_type > & input
System::Output< jp_type > & jpOutput
System::Output< jv_type > & jvOutput

Protected Member Functions

template<typename T >
currentPosHelper (const T &currentPos)
template<typename T >
void moveToThread (const T &currentPos, const T &destination, double velocity, double acceleration, bool *started, boost::shared_future< boost::thread * > threadPtrFuture)

Protected Attributes

bool doneMoving
boost::thread_group mtThreadGroup
math::Kinematics< DOF > kin

template<size_t DOF>
class barrett::systems::Wam< DOF >


Constructor & Destructor Documentation

template<size_t DOF>
barrett::systems::Wam< DOF >::Wam ( ExecutionManager em,
const std::vector< Puck * > &  genericPucks,
SafetyModule safetyModule,
const libconfig::Setting &  setting,
std::vector< int >  torqueGroupIds = std::vector<int>(),
const std::string &  sysName = "Wam< DOF >" 
)

Constructor for Wam

GenericPucks must be ordered by joint and must break into torque groups as arranged.

template<size_t DOF>
barrett::systems::Wam< DOF >::~Wam ( )

Destructor for Wam


Member Function Documentation

template<size_t DOF>
thread::Mutex& barrett::systems::Wam< DOF >::getEmMutex ( ) const [inline]

getEmMutex() method allows access to ExecutionManagers Mutex in LowLevelWam Class.

template<size_t DOF>
const Wam< DOF >::jp_type & barrett::systems::Wam< DOF >::getHomePosition ( ) const [inline]

getHomePosition() returns home postion of individual joints in Radians

template<size_t DOF>
Wam< DOF >::jp_type barrett::systems::Wam< DOF >::getJointPositions ( ) const [inline]

getJointPositions() returns joint Position values in Radians

template<size_t DOF>
Wam< DOF >::jt_type barrett::systems::Wam< DOF >::getJointTorques ( ) const

getJointTorques() returns joint torques in Newtons per meter

template<size_t DOF>
Wam< DOF >::jv_type barrett::systems::Wam< DOF >::getJointVelocities ( ) const [inline]

getJointVelocities() returns joint velocity values in meters per second

template<size_t DOF>
LowLevelWam<DOF>& barrett::systems::Wam< DOF >::getLowLevelWam ( ) [inline]

getLowLevelWam() method allows access to methods in LowLevelWam Class.

template<size_t DOF>
math::Matrix< 6, DOF > barrett::systems::Wam< DOF >::getToolJacobian ( ) const [inline]

getToolJacobian() returns matrix of first order partial derivatives.

template<size_t DOF>
Eigen::Quaterniond barrett::systems::Wam< DOF >::getToolOrientation ( ) const

getToolOrientation() returns Tool Orientation in Quaternions

template<size_t DOF>
Wam< DOF >::pose_type barrett::systems::Wam< DOF >::getToolPose ( ) const [inline]

getToolPose() returns Tool Pose as a combination of Tool Position in Cartesian Space meters and Tool Orientation in Quaternions

template<size_t DOF>
Wam< DOF >::cp_type barrett::systems::Wam< DOF >::getToolPosition ( ) const

getToolPosition() returns Tool Position in Cartesian Space meters

template<size_t DOF>
Wam< DOF >::cv_type barrett::systems::Wam< DOF >::getToolVelocity ( ) const

getToolVelocity() returns Tool velocity in meters per second

template<size_t DOF>
void barrett::systems::Wam< DOF >::gravityCompensate ( bool  compensate = true)

gravityCompensate() method activates Gravity Compensation for WAM

template<size_t DOF>
void barrett::systems::Wam< DOF >::idle ( )

idle() method Terminates the position controller (if active).

To prevent uncontrolled falling, you should ensure you have set gravityCompensate(true) before calling idle().

template<size_t DOF>
bool barrett::systems::Wam< DOF >::isGravityCompensated ( ) [inline]

isGravityCompensated() returns flag as to the status of Gravity Compensation

template<size_t DOF>
void barrett::systems::Wam< DOF >::moveHome ( bool  blocking = true) [inline]

moveHome(bool blocking, double velocity, double acceleration) method sends WAM to stored Home Position

Blocking Allows/Disallows other functions to happen while Movement is under way Velocity Speed value in m/s Acceleration Acceleration value in m/s^2 Function is overloaded to allow multiple types of calls.

template<size_t DOF>
bool barrett::systems::Wam< DOF >::moveIsDone ( ) const

moveIsDone() method returns false while the trajectory controller for the most recent moveTo() command is still active.

Only useful if the moveTo() is non-blocking.

template<size_t DOF>
void barrett::systems::Wam< DOF >::moveTo ( const jp_type &  destination,
bool  blocking = true,
double  velocity = 0.5,
double  acceleration = 0.5 
) [inline]

moveTo() method sends WAM to desired point based on input type.

Function is overloaded to allow moves any type of Barrett Unit Types input. Destination Based on type cartesian(xyz), joint(radians), quaternoind(orientation), pose blocking Determines whether program should wait for move to finish before continuing velocity Speed at which to move acceleration value in radians per second

template<size_t DOF>
template<typename T >
void barrett::systems::Wam< DOF >::trackReferenceSignal ( System::Output< T > &  referenceSignal)

trackReferenceSignal() used for following updating input. (any barrett input units for control)

template<size_t DOF>
bool barrett::systems::Wam< DOF >::updateGravity ( double  val = -9.8)

updateGravity() method updates the value of Gravity applied for WAM


Member Data Documentation

template<size_t DOF>
System::Input<jt_type>& barrett::systems::Wam< DOF >::input

Input/Output Interface definitions available to developers.

Joint Torques are passed into the WAM, while providing the output joint positions and joint vectors.


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