cisst-saw
Loading...
Searching...
No Matches
robCollaborativeControlForce Class Reference

#include <robCollaborativeControlForce.h>

Classes

class  ParameterType

Public Member Functions

 robCollaborativeControlForce (void)
 robCollaborativeControlForce (double linearGainMaster, double linearGainSlave, double forceLimit, ParameterType::ForceModeType forceMode, double masterToSlaveScale, double forceFeedbackRatio)
 ~robCollaborativeControlForce (void)
void SetParameters (const ParameterType &commandedParameter)
void Update (const vct3 &p1, const vct3 &p2, const bool ClutchMaster, const bool ClutchSlave, vctFixedSizeVector< double, 6 > &ForceMaster, vctFixedSizeVector< double, 6 > &ForceSlave)

Protected Member Functions

 CMN_DECLARE_MEMBER_AND_ACCESSORS (bool, ApplicationMasterClutch)
 CMN_DECLARE_MEMBER_AND_ACCESSORS (bool, ApplicationSlaveClutch)
 CMN_DECLARE_MEMBER_AND_ACCESSORS (bool, ApplicationMasterSlaveClutch)
 CMN_DECLARE_MEMBER_AND_ACCESSORS (ParameterType, Parameter)

Protected Attributes

vct3 WorkspaceOffset
vct3 ClutchOffset
vct3 LeftClutchOffset
vct3 RightClutchOffset
vct3 LeftClutchMSOffset
vct3 RightClutchMSOffset
vct3 Error
vct3 p1Goal
vct3 p2Goal
vct3 p1RGoal
vct3 p2RGoal
vct3 p1Clutched
vct3 p2Clutched
vct3 p1R
vct3 p2R
vct3 p1Last
vct3 p2Last
bool FirstIteration
bool ClutchDone
bool BothClutched
bool ClutchOffsetAdd
int ClutchMode
double ForceFeedNormMaster
double ForceFeedNormSlave
vctFrm3 RelativeTransform

Constructor & Destructor Documentation

◆ robCollaborativeControlForce() [1/2]

robCollaborativeControlForce::robCollaborativeControlForce ( void )

◆ robCollaborativeControlForce() [2/2]

robCollaborativeControlForce::robCollaborativeControlForce ( double linearGainMaster,
double linearGainSlave,
double forceLimit,
ParameterType::ForceModeType forceMode,
double masterToSlaveScale,
double forceFeedbackRatio )

◆ ~robCollaborativeControlForce()

robCollaborativeControlForce::~robCollaborativeControlForce ( void )
inline

Member Function Documentation

◆ CMN_DECLARE_MEMBER_AND_ACCESSORS() [1/4]

robCollaborativeControlForce::CMN_DECLARE_MEMBER_AND_ACCESSORS ( bool ,
ApplicationMasterClutch  )
protected

◆ CMN_DECLARE_MEMBER_AND_ACCESSORS() [2/4]

robCollaborativeControlForce::CMN_DECLARE_MEMBER_AND_ACCESSORS ( bool ,
ApplicationMasterSlaveClutch  )
protected

◆ CMN_DECLARE_MEMBER_AND_ACCESSORS() [3/4]

robCollaborativeControlForce::CMN_DECLARE_MEMBER_AND_ACCESSORS ( bool ,
ApplicationSlaveClutch  )
protected

◆ CMN_DECLARE_MEMBER_AND_ACCESSORS() [4/4]

robCollaborativeControlForce::CMN_DECLARE_MEMBER_AND_ACCESSORS ( ParameterType ,
Parameter  )
protected

◆ SetParameters()

void robCollaborativeControlForce::SetParameters ( const ParameterType & commandedParameter)

Set Parameters function takes arguments from the parent class to mutate the values of; Force Limit, Scale Factor Force Coefficient, Force Mode. These values are currently being used by devicesTutorialExample3 GUI via devSensableHDMasterSlave class.

◆ Update()

void robCollaborativeControlForce::Update ( const vct3 & p1,
const vct3 & p2,
const bool ClutchMaster,
const bool ClutchSlave,
vctFixedSizeVector< double, 6 > & ForceMaster,
vctFixedSizeVector< double, 6 > & ForceSlave )

Update function's goal is to carry out position to force control. Two position parameters and two clutch parameters are provided by the parent class. This function uses those positions and the clutch parameters to calculate the desired force values for teleoperation. Designed for Phantom Omni teleoperation, has not been tested on other platforms.

Member Data Documentation

◆ BothClutched

bool robCollaborativeControlForce::BothClutched
protected

◆ ClutchDone

bool robCollaborativeControlForce::ClutchDone
protected

◆ ClutchMode

int robCollaborativeControlForce::ClutchMode
protected

◆ ClutchOffset

vct3 robCollaborativeControlForce::ClutchOffset
protected

◆ ClutchOffsetAdd

bool robCollaborativeControlForce::ClutchOffsetAdd
protected

◆ Error

vct3 robCollaborativeControlForce::Error
protected

◆ FirstIteration

bool robCollaborativeControlForce::FirstIteration
protected

◆ ForceFeedNormMaster

double robCollaborativeControlForce::ForceFeedNormMaster
protected

◆ ForceFeedNormSlave

double robCollaborativeControlForce::ForceFeedNormSlave
protected

◆ LeftClutchMSOffset

vct3 robCollaborativeControlForce::LeftClutchMSOffset
protected

◆ LeftClutchOffset

vct3 robCollaborativeControlForce::LeftClutchOffset
protected

◆ p1Clutched

vct3 robCollaborativeControlForce::p1Clutched
protected

◆ p1Goal

vct3 robCollaborativeControlForce::p1Goal
protected

◆ p1Last

vct3 robCollaborativeControlForce::p1Last
protected

◆ p1R

vct3 robCollaborativeControlForce::p1R
protected

◆ p1RGoal

vct3 robCollaborativeControlForce::p1RGoal
protected

◆ p2Clutched

vct3 robCollaborativeControlForce::p2Clutched
protected

◆ p2Goal

vct3 robCollaborativeControlForce::p2Goal
protected

◆ p2Last

vct3 robCollaborativeControlForce::p2Last
protected

◆ p2R

vct3 robCollaborativeControlForce::p2R
protected

◆ p2RGoal

vct3 robCollaborativeControlForce::p2RGoal
protected

◆ RelativeTransform

vctFrm3 robCollaborativeControlForce::RelativeTransform
protected

◆ RightClutchMSOffset

vct3 robCollaborativeControlForce::RightClutchMSOffset
protected

◆ RightClutchOffset

vct3 robCollaborativeControlForce::RightClutchOffset
protected

◆ WorkspaceOffset

vct3 robCollaborativeControlForce::WorkspaceOffset
protected

Parameters being used by the Update function for teleoperation

vct3 declarations include the offsets for the workspace, clutch overall, clutch left and right, and the goals for first and second device.

Other declarations(bool, double) are mostly used to manipulate the above mentioned data, such as temporary booleans, scale factor, force limit, etc.


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