This class implements an interface to all 3D-System Phantom haptic devices. More...
#include <CPhantomDevices.h>
Public Member Functions | |
cPhantomDevice (unsigned int a_deviceNumber) | |
Constructor of cPhantomDevice. More... | |
virtual | ~cPhantomDevice () |
Destructor of cPhantomDevice. More... | |
virtual bool | open () |
This method open a connection to the haptic device. More... | |
virtual bool | close () |
This method close 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 device. More... | |
virtual bool | getRotation (cMatrix3d &a_rotation) |
This method returns orientation frame of the haptic device end-effector. More... | |
virtual bool | getUserSwitches (unsigned int &a_userSwitches) |
This method returns the status of all user switches [true = ON / false = OFF]. More... | |
virtual bool | setForceAndTorqueAndGripperForce (const cVector3d &a_force, const cVector3d &a_torque, double a_gripperForce) |
This method sends a force, torque, and gripper force to the haptic device. More... | |
Public Member Functions inherited from chai3d::cGenericHapticDevice | |
cGenericHapticDevice (unsigned int a_deviceNumber=0) | |
Constructor of cGenericHapticDevice. More... | |
virtual | ~cGenericHapticDevice () |
Destructor of cGenericHapticDevice. More... | |
virtual bool | getLinearVelocity (cVector3d &a_linearVelocity) |
This method returns the linear velocity of the haptic device. 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... | |
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... | |
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 cPhantomDevicePtr | create (unsigned int a_deviceNumber) |
Shared cPhantomDevice 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::cGenericHapticDevice | |
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... | |
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::cGenericHapticDevice | |
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 | |
int | m_deviceID |
Device ID number among the Phantom devices connected to the computer. More... | |
Protected Attributes inherited from chai3d::cGenericHapticDevice | |
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... | |
Static Protected Attributes | |
static bool | s_allocationTable [C_MAX_DEVICES] |
Allocation table for devices of this class. true means that the device has been allocated, false means free. More... | |
static unsigned int | s_libraryCounter |
Number of instances for this class of devices currently using the libraries. More... | |
Additional Inherited Members | |
Public Attributes inherited from chai3d::cGenericHapticDevice | |
cHapticDeviceInfo | m_specifications |
Technical specifications of haptic device. More... | |
Protected Member Functions inherited from chai3d::cGenericHapticDevice | |
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... | |
This class implements an interface to all 3D-System Phantom haptic devices.
chai3d::cPhantomDevice::cPhantomDevice | ( | unsigned int | a_deviceNumber | ) |
Constructor of cPhantomDevice.
a_deviceNumber | Index number to the i'th Phantom device |
|
virtual |
Destructor of cPhantomDevice.
|
inlinestatic |
|
virtual |
This method opens a connection to the Phantom device.
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
Close connection to phantom device.
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
Calibrate the phantom device.
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
This method returns the position of the device. Units are meters [m].
a_position | Return value. |
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
This method returns the orientation frame of the device end-effector.
a_rotation | Return value. |
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
This method returns the status of all user switches [true = ON / false = OFF].
a_userSwitches | Return the 32-bit binary mask of the device buttons. |
Reimplemented from chai3d::cGenericHapticDevice.
|
virtual |
This method sends a force [N] and a torque [N*m] and gripper torque [N*m] to the haptic device.
a_force | Force command. |
a_torque | Torque command. |
a_gripperForce | Gripper force command. |
Reimplemented from chai3d::cGenericHapticDevice.
|
static |
This method returns the number of haptic devices available for this class of device.
|
staticprotected |
This method opens the libraries for this class of devices.
|
staticprotected |
This method closes the libraries for this class of devices.
|
staticprotected |
|
staticprotected |
|
protected |