This class implements a base class for haptic devices. More...
#include <CGenericHapticDevice.h>
Public Member Functions | |
cGenericHapticDevice (unsigned int a_deviceNumber=0) | |
Constructor of cGenericHapticDevice. More... | |
virtual | ~cGenericHapticDevice () |
Destructor of cGenericHapticDevice. More... | |
virtual bool | open () |
This method opens a connection to the haptic device. More... | |
virtual bool | close () |
This method closes the connection to the haptic device. More... | |
virtual bool | calibrate (bool a_forceCalibration=false) |
This method calibrates the haptic device. More... | |
virtual bool | getPosition (cVector3d &a_position) |
This method returns the position of the haptic device. More... | |
virtual bool | getLinearVelocity (cVector3d &a_linearVelocity) |
This method returns the linear velocity of the haptic device. More... | |
virtual bool | getRotation (cMatrix3d &a_rotation) |
This method returns the orientation frame of the haptic device end-effector. More... | |
virtual bool | getJointAnglesRad (double a_jointAnglesRad[C_MAX_DOF]) |
This method returns the joint angles of the haptic device. More... | |
virtual bool | getAngularVelocity (cVector3d &a_angularVelocity) |
This method returns the angular velocity of haptic device. More... | |
virtual bool | getTransform (cTransform &a_transform) |
This method returns the position and orientation of the haptic device through a transformation matrix. More... | |
virtual bool | getGripperAngleRad (double &a_angle) |
This method returns the gripper angle in radian [rad]. More... | |
bool | getGripperAngleDeg (double &a_angle) |
This method returns the gripper angle in degrees [deg]. More... | |
virtual bool | getGripperAngularVelocity (double &a_gripperAngularVelocity) |
This method returns the angular velocity of the gripper. Units are in radians per second [rad/s]. More... | |
virtual bool | getForce (cVector3d &a_force) |
This method returns the sensed force [N] from the haptic device. More... | |
virtual bool | getTorque (cVector3d &a_torque) |
This method returns the sensed torque [N*m] from the haptic device. More... | |
virtual bool | getGripperForce (double &a_gripperForce) |
This method returns the sensed torque [N*m] from the force gripper. More... | |
virtual bool | getUserSwitch (int a_switchIndex, bool &a_status) |
This method returns the status of a selected user switch [true = ON / false = OFF]. More... | |
virtual bool | getUserSwitches (unsigned int &a_userSwitches) |
This method returns the status of all user switches [true = ON / false = OFF]. More... | |
cHapticDeviceInfo | getSpecifications () |
This method returns the technical specifications of this haptic device. More... | |
virtual void | setEnableGripperUserSwitch (const bool a_status) |
This method enables or disables the virtual gripper switch. More... | |
virtual bool | getEnableGripperUserSwitch () const |
This method returns the status of the virtual gripper user switch. If true, then gripper is used to emulate a user switch. Return false otherwise. More... | |
bool | setForce (const cVector3d &a_force) |
This method sends a force [N] command to the haptic device. More... | |
bool | setForceAndTorque (const cVector3d &a_force, const cVector3d &a_torque) |
This method sends a force [N] and torque [N*m] command to the haptic device. More... | |
virtual bool | setForceAndTorqueAndGripperForce (const cVector3d &a_force, const cVector3d &a_torque, double a_gripperForce) |
This method sends a force [N], torque [N*m], and gripper force [N] command to the haptic device. More... | |
Public Member Functions inherited from chai3d::cGenericDevice | |
cGenericDevice (unsigned int a_deviceNumber=0) | |
Constructor of cGenericDevice. More... | |
virtual | ~cGenericDevice () |
Destructor of cGenericDevice. More... | |
bool | isDeviceAvailable () |
This method returns true if the device is available for communication, false otherwise. More... | |
bool | isDeviceReady () |
This method returns true if the connection to the device has been established by calling method open(), false otherwise. More... | |
Static Public Member Functions | |
static cGenericHapticDevicePtr | create (unsigned int a_deviceNumber=0) |
Shared cGenericHapticDevice allocator. More... | |
static unsigned int | getNumDevices () |
This method returns the number of haptic devices available for this class of devices. More... | |
Static Public Member Functions inherited from chai3d::cGenericDevice | |
static unsigned int | getNumDevices () |
This method returns the number of haptic devices available for this class of devices. More... | |
Public Attributes | |
cHapticDeviceInfo | m_specifications |
Technical specifications of haptic device. More... | |
Protected Member Functions | |
void | estimateLinearVelocity (cVector3d &a_newPosition) |
Estimate linear velocity of handle by passing the latest position. More... | |
void | estimateAngularVelocity (cMatrix3d &a_newRotation) |
Estimate angular velocity of handle by passing the latest orientation frame. More... | |
void | estimateGripperVelocity (double a_newGripperPosition) |
Estimate velocity of gripper by passing the latest gripper position. More... | |
double | computeGripperUserSwitchForce (const double &a_gripperAngle, const double &a_gripperAngularVelocity) |
This method computes the virtual gripper force. More... | |
bool | getGripperUserSwitch () |
This method returns the status of gripper user switch. Return true if virtual user switch is engaged, __false_ otherwise. More... | |
Static Protected Member Functions | |
static bool | openLibraries () |
This method opens libraries for this class of devices. More... | |
static bool | closeLibraries () |
This method closes libraries for this class of devices. More... | |
Static Protected Member Functions inherited from chai3d::cGenericDevice | |
static bool | openLibraries () |
This method opens libraries for this class of devices. More... | |
static bool | closeLibraries () |
This method closes libraries for this class of devices. More... | |
Protected Attributes | |
cVector3d | m_prevForce |
Last force sent to haptic device. More... | |
cVector3d | m_prevTorque |
Last torque sent to haptic device. More... | |
double | m_prevGripperForce |
Last gripper force sent to haptic device. More... | |
cVector3d | m_linearVelocity |
Last estimated linear velocity. More... | |
cVector3d | m_angularVelocity |
Last estimated angular velocity. More... | |
double | m_gripperAngularVelocity |
Last estimated gripper angular velocity. More... | |
cTimestampPos | m_historyPos [C_DEVICE_HISTORY_SIZE] |
History position data of the device. More... | |
cTimestampRot | m_historyRot [C_DEVICE_HISTORY_SIZE] |
History orientation data of the device. More... | |
cTimestampValue | m_historyGripper [C_DEVICE_HISTORY_SIZE] |
History position of device gripper. More... | |
int | m_indexHistoryPos |
Current index position in history data table. More... | |
int | m_indexHistoryRot |
Current index position in history data table. More... | |
int | m_indexHistoryGripper |
Current index position in history data table. More... | |
int | m_indexHistoryPosWin |
Last index position used to compute velocity. More... | |
int | m_indexHistoryRotWin |
Last index position used to compute velocity. More... | |
int | m_indexHistoryGripperWin |
Last index position used to compute velocity. More... | |
double | m_linearVelocityWindowSize |
Window time interval for measuring linear velocity. More... | |
double | m_angularVelocityWindowSize |
Window time interval for measuring angular velocity. More... | |
double | m_gripperVelocityWindowSize |
Window time interval for measuring gripper velocity. More... | |
cPrecisionClock | m_clockGeneral |
General clock used to compute velocity signals. More... | |
bool | m_gripperUserSwitchEnabled |
If true then virtual gripper user switch is enabled. More... | |
double | m_gripperUserSwitchAngleStart |
Position of the gripper when the user encounters the virtual switch. More... | |
double | m_gripperUserSwitchAngleClick |
Position of the gripper when the virtual switch is enabled and the "click" occurs. More... | |
double | m_gripperUserSwitchForceClick |
Maximum force level at the force gripper when the "click" occurs. More... | |
double | m_gripperUserSwitchForceEngaged |
Force level when the gripper is completely closed after the "click" event has occurred. More... | |
double | m_virtualGripperAngle |
Virtual gripper current angle in radians [rad]. More... | |
double | m_virtualGripperAngleMin |
Virtual gripper minimum angle in radians [rad]. More... | |
double | m_virtualGripperAngleMax |
Virtual gripper maximum angle in radians [rad]. More... | |
double | m_virtualGripperAngularVelocity |
Virtual speed value used for simulating the opening and closing of the virtual gripper [rad/s]. More... | |
cPrecisionClock | m_virtualGripperClock |
Clock for computing the position/velocity of the virtual gripper. More... | |
Protected Attributes inherited from chai3d::cGenericDevice | |
bool | m_deviceAvailable |
Flag that indicates if the device is available to the computer. More... | |
bool | m_deviceReady |
Flag that indicates if connection to device was opened successfully by calling method open(). More... | |
int | m_deviceNumber |
Device number ID for this category of devices. Value must be equal or bigger than 0. A value of __-1__ means that the ID has not yet been defined. More... | |
This class implements a base class from which all haptic devices are derived.
chai3d::cGenericHapticDevice::cGenericHapticDevice | ( | unsigned int | a_deviceNumber = 0 | ) |
Constructor of cGenericHapticDevice.
Initializes basic parameters of generic haptic device class.
a_deviceNumber | Device number ID for this class of devices. |
|
inlinevirtual |
|
inlinestatic |
|
inlinevirtual |
Reimplemented from chai3d::cGenericDevice.
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inlinevirtual |
Reimplemented from chai3d::cGenericDevice.
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice.
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice.
|
inlinevirtual |
|
virtual |
This method returns the position and orientation of the device through a transformation matrix.
a_transform | Returned transformation matrix. |
|
virtual |
This method returns the gripper angle in radian.
a_angle | Return value. |
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, and chai3d::cLeapDevice.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
This method returns the status of the user switch [1 = ON / 0 = OFF].
a_switchIndex | Index number of the switch. |
a_status | Result value from reading the selected input switch. |
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice, chai3d::cSixenseDevice, chai3d::cMyCustomDevice, chai3d::cLeapDevice, and chai3d::cPhantomDevice.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in chai3d::cDeltaDevice, chai3d::cMyCustomDevice, and chai3d::cPhantomDevice.
|
inlinestatic |
|
protected |
This method estimates the linear velocity by passing the latest position.
a_newPosition | New position of the haptic device. |
|
protected |
This method estimates the angular velocity by passing the latest orientation frame.
a_newRotation | New rotation frame of the haptic device. |
|
protected |
This method estimates the velocity of the gripper by passing the latest gripper position.
a_newGripperAngle | New angular position of the gripper. |
|
protected |
This method compute a haptic force that simulates a user switch (button) given the angular position and velocity of the gripper.
a_gripperAngle | Current position angle of gripper. |
a_gripperAngularVelocity | Current angular velocity of gripper. |
|
protected |
This method returns true if the gripper is closed, or false if it is open. This mode requires that the gripper has been configured to simulate a user switch by calling method setEnableGripperUserSwitch(), furthermore the gripper needs to provide force-feedback capabilities.
|
inlinestaticprotected |
|
inlinestaticprotected |
cHapticDeviceInfo chai3d::cGenericHapticDevice::m_specifications |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |