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 ¤tPos, const T &destination, bool blocking, double velocity, double acceleration) |
bool | moveIsDone () const |
void | idle () |
thread::Mutex & | getEmMutex () 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 > | |
T | currentPosHelper (const T ¤tPos) |
template<typename T > | |
void | moveToThread (const T ¤tPos, 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 |
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.
barrett::systems::Wam< DOF >::~Wam | ( | ) |
Destructor for Wam
thread::Mutex& barrett::systems::Wam< DOF >::getEmMutex | ( | ) | const [inline] |
getEmMutex() method allows access to ExecutionManagers Mutex in LowLevelWam Class.
const Wam< DOF >::jp_type & barrett::systems::Wam< DOF >::getHomePosition | ( | ) | const [inline] |
getHomePosition() returns home postion of individual joints in Radians
Wam< DOF >::jp_type barrett::systems::Wam< DOF >::getJointPositions | ( | ) | const [inline] |
getJointPositions() returns joint Position values in Radians
Wam< DOF >::jt_type barrett::systems::Wam< DOF >::getJointTorques | ( | ) | const |
getJointTorques() returns joint torques in Newtons per meter
Wam< DOF >::jv_type barrett::systems::Wam< DOF >::getJointVelocities | ( | ) | const [inline] |
getJointVelocities() returns joint velocity values in meters per second
LowLevelWam<DOF>& barrett::systems::Wam< DOF >::getLowLevelWam | ( | ) | [inline] |
getLowLevelWam() method allows access to methods in LowLevelWam Class.
math::Matrix< 6, DOF > barrett::systems::Wam< DOF >::getToolJacobian | ( | ) | const [inline] |
getToolJacobian() returns matrix of first order partial derivatives.
Eigen::Quaterniond barrett::systems::Wam< DOF >::getToolOrientation | ( | ) | const |
getToolOrientation() returns Tool Orientation in Quaternions
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
Wam< DOF >::cp_type barrett::systems::Wam< DOF >::getToolPosition | ( | ) | const |
getToolPosition() returns Tool Position in Cartesian Space meters
Wam< DOF >::cv_type barrett::systems::Wam< DOF >::getToolVelocity | ( | ) | const |
getToolVelocity() returns Tool velocity in meters per second
void barrett::systems::Wam< DOF >::gravityCompensate | ( | bool | compensate = true | ) |
gravityCompensate() method activates Gravity Compensation for WAM
void barrett::systems::Wam< DOF >::idle | ( | ) |
bool barrett::systems::Wam< DOF >::isGravityCompensated | ( | ) | [inline] |
isGravityCompensated() returns flag as to the status of Gravity Compensation
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.
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.
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
void barrett::systems::Wam< DOF >::trackReferenceSignal | ( | System::Output< T > & | referenceSignal | ) |
trackReferenceSignal() used for following updating input. (any barrett input units for control)
bool barrett::systems::Wam< DOF >::updateGravity | ( | double | val = -9.8 | ) |
updateGravity() method updates the value of Gravity applied for WAM
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.