![]() |
3.6.0
|
DHD header file. More...
Functions | |
int __SDK | dhdErrorGetLast () |
const char *__SDK | dhdErrorGetLastStr () |
const char *__SDK | dhdErrorGetStr (int error) |
int __SDK | dhdGetDeviceCount () |
int __SDK | dhdGetAvailableCount () |
int __SDK | dhdSetDevice (char ID) |
int __SDK | dhdGetDeviceID () |
int __SDK | dhdGetSerialNumber (ushort *sn, char ID=-1) |
int __SDK | dhdOpen () |
int __SDK | dhdOpenType (int type) |
int __SDK | dhdOpenSerial (int serial) |
int __SDK | dhdOpenID (char ID) |
int __SDK | dhdClose (char ID=-1) |
int __SDK | dhdStop (char ID=-1) |
int __SDK | dhdGetComMode (char ID=-1) |
int __SDK | dhdEnableForce (uchar val, char ID=-1) |
int __SDK | dhdGetSystemType (char ID=-1) |
const char *__SDK | dhdGetSystemName (char ID=-1) |
int __SDK | dhdGetVersion (double *ver, char ID=-1) |
void __SDK | dhdGetSDKVersion (int *major, int *minor, int *release, int *revision) |
int __SDK | dhdGetStatus (int status[DHD_MAX_STATUS], char ID=-1) |
int __SDK | dhdGetDeviceAngleRad (double *angle, char ID=-1) |
int __SDK | dhdGetDeviceAngleDeg (double *angle, char ID=-1) |
int __SDK | dhdGetEffectorMass (double *mass, char ID=-1) |
ulong __SDK | dhdGetSystemCounter () |
int __SDK | dhdGetButton (int index, char ID=-1) |
uint __SDK | dhdGetButtonMask (char ID=-1) |
int __SDK | dhdSetOutput (uint output, char ID=-1) |
bool __SDK | dhdIsLeftHanded (char ID=-1) |
bool __SDK | dhdHasBase (char ID=-1) |
bool __SDK | dhdHasWrist (char ID=-1) |
bool __SDK | dhdHasActiveWrist (char ID=-1) |
bool __SDK | dhdHasGripper (char ID=-1) |
int __SDK | dhdReset (char ID=-1) |
int __SDK | dhdResetWrist (char ID=-1) |
int __SDK | dhdWaitForReset (int timeout=0, char ID=-1) |
int __SDK | dhdSetStandardGravity (double g, char ID=-1) |
int __SDK | dhdSetGravityCompensation (int val=DHD_ON, char ID=-1) |
int __SDK | dhdSetBrakes (int val=DHD_ON, char ID=-1) |
int __SDK | dhdSetDeviceAngleRad (double angle, char ID=-1) |
int __SDK | dhdSetDeviceAngleDeg (double angle, char ID=-1) |
int __SDK | dhdSetEffectorMass (double mass, char ID=-1) |
int __SDK | dhdGetPosition (double *px, double *py, double *pz, char ID=-1) |
int __SDK | dhdGetForce (double *fx, double *fy, double *fz, char ID=-1) |
int __SDK | dhdSetForce (double fx, double fy, double fz, char ID=-1) |
int __SDK | dhdGetOrientationRad (double *oa, double *ob, double *og, char ID=-1) |
int __SDK | dhdGetOrientationDeg (double *oa, double *ob, double *og, char ID=-1) |
int __SDK | dhdGetPositionAndOrientationRad (double *px, double *py, double *pz, double *oa, double *ob, double *og, char ID=-1) |
int __SDK | dhdGetPositionAndOrientationDeg (double *px, double *py, double *pz, double *oa, double *ob, double *og, char ID=-1) |
int __SDK | dhdGetPositionAndOrientationFrame (double *px, double *py, double *pz, double matrix[3][3], char ID=-1) |
int __SDK | dhdGetForceAndTorque (double *fx, double *fy, double *fz, double *tx, double *ty, double *tz, char ID=-1) |
int __SDK | dhdSetForceAndTorque (double fx, double fy, double fz, double tx, double ty, double tz, char ID=-1) |
int __SDK | dhdGetOrientationFrame (double matrix[3][3], char ID=-1) |
int __SDK | dhdGetGripperAngleDeg (double *a, char ID=-1) |
int __SDK | dhdGetGripperAngleRad (double *a, char ID=-1) |
int __SDK | dhdGetGripperGap (double *g, char ID=-1) |
int __SDK | dhdGetGripperThumbPos (double *px, double *py, double *pz, char ID=-1) |
int __SDK | dhdGetGripperFingerPos (double *px, double *py, double *pz, char ID=-1) |
double __SDK | dhdGetComFreq (char ID=-1) |
int __SDK | dhdSetForceAndGripperForce (double fx, double fy, double fz, double fg, char ID=-1) |
int __SDK | dhdSetForceAndTorqueAndGripperForce (double fx, double fy, double fz, double tx, double ty, double tz, double fg, char ID=-1) |
int __SDK | dhdGetForceAndTorqueAndGripperForce (double *fx, double *fy, double *fz, double *tx, double *ty, double *tz, double *f, char ID=-1) |
int __SDK | dhdConfigLinearVelocity (int ms=DHD_VELOCITY_WINDOW, int mode=DHD_VELOCITY_WINDOWING, char ID=-1) |
int __SDK | dhdGetLinearVelocity (double *vx, double *vy, double *vz, char ID=-1) |
int __SDK | dhdConfigAngularVelocity (int ms=DHD_VELOCITY_WINDOW, int mode=DHD_VELOCITY_WINDOWING, char ID=-1) |
int __SDK | dhdGetAngularVelocityRad (double *wx, double *wy, double *wz, char ID=-1) |
int __SDK | dhdGetAngularVelocityDeg (double *wx, double *wy, double *wz, char ID=-1) |
int __SDK | dhdConfigGripperVelocity (int ms=DHD_VELOCITY_WINDOW, int mode=DHD_VELOCITY_WINDOWING, char ID=-1) |
int __SDK | dhdGetGripperLinearVelocity (double *vg, char ID=-1) |
int __SDK | dhdGetGripperAngularVelocityRad (double *wg, char ID=-1) |
int __SDK | dhdGetGripperAngularVelocityDeg (double *wg, char ID=-1) |
int __SDK | dhdEmulateButton (uchar val, char ID=-1) |
int __SDK | dhdGetBaseAngleXRad (double *angle, char ID=-1) |
int __SDK | dhdGetBaseAngleXDeg (double *angle, char ID=-1) |
int __SDK | dhdSetBaseAngleXRad (double angle, char ID=-1) |
int __SDK | dhdSetBaseAngleXDeg (double angle, char ID=-1) |
int __SDK | dhdGetBaseAngleZRad (double *angle, char ID=-1) |
int __SDK | dhdGetBaseAngleZDeg (double *angle, char ID=-1) |
int __SDK | dhdSetBaseAngleZRad (double angle, char ID=-1) |
int __SDK | dhdSetBaseAngleZDeg (double angle, char ID=-1) |
int __SDK | dhdEnableExpertMode () |
int __SDK | dhdDisableExpertMode () |
int __SDK | dhdPreset (int val[DHD_MAX_DOF], uchar mask, char ID=-1) |
int __SDK | dhdCalibrateWrist (char ID=-1) |
int __SDK | dhdSetTimeGuard (int us, char ID=-1) |
int __SDK | dhdSetVelocityThreshold (uint val, char ID=-1) |
int __SDK | dhdGetVelocityThreshold (uint *val, char ID=-1) |
int __SDK | dhdUpdateEncoders (char ID=-1) |
int __SDK | dhdGetDeltaEncoders (int *enc0, int *enc1, int *enc2, char ID=-1) |
int __SDK | dhdGetWristEncoders (int *enc0, int *enc1, int *enc2, char ID=-1) |
int __SDK | dhdGetGripperEncoder (int *enc, char ID=-1) |
int __SDK | dhdGetEncoder (int index, char ID=-1) |
int __SDK | dhdSetMotor (int index, ushort val, char ID=-1) |
int __SDK | dhdSetDeltaMotor (ushort mot0, ushort mot1, ushort mot2, char ID=-1) |
int __SDK | dhdSetWristMotor (ushort mot0, ushort mot1, ushort mot2, char ID=-1) |
int __SDK | dhdSetGripperMotor (ushort mot, char ID=-1) |
int __SDK | dhdDeltaEncoderToPosition (int enc0, int enc1, int enc2, double *px, double *py, double *pz, char ID=-1) |
int __SDK | dhdDeltaPositionToEncoder (double px, double py, double pz, int *enc0, int *enc1, int *enc2, char ID=-1) |
int __SDK | dhdDeltaMotorToForce (ushort mot0, ushort mot1, ushort mot2, int enc0, int enc1, int enc2, double *fx, double *fy, double *fz, char ID=-1) |
int __SDK | dhdDeltaForceToMotor (double fx, double fy, double fz, int enc0, int enc1, int enc2, ushort *mot0, ushort *mot1, ushort *mot2, char ID=-1) |
int __SDK | dhdWristEncoderToOrientation (int enc0, int enc1, int enc2, double *oa, double *ob, double *og, char ID=-1) |
int __SDK | dhdWristOrientationToEncoder (double oa, double ob, double og, int *enc0, int *enc1, int *enc2, char ID=-1) |
int __SDK | dhdWristMotorToTorque (ushort mot0, ushort mot1, ushort mot2, int enc0, int enc1, int enc2, double *tx, double *ty, double *tz, char ID=-1) |
int __SDK | dhdWristTorqueToMotor (double ta, double tb, double tg, int enc0, int enc1, int enc2, ushort *mot0, ushort *mot1, ushort *mot2, char ID=-1) |
int __SDK | dhdGripperEncoderToAngleRad (int enc, double *a, char ID=-1) |
int __SDK | dhdGripperEncoderToGap (int enc, double *g, char ID=-1) |
int __SDK | dhdGripperAngleRadToEncoder (double a, int *enc, char ID=-1) |
int __SDK | dhdGripperGapToEncoder (double g, int *enc, char ID=-1) |
int __SDK | dhdGripperMotorToForce (ushort mot, double *f, int e[4], char ID=-1) |
int __SDK | dhdGripperForceToMotor (double f, ushort *mot, int e[4], char ID=-1) |
int __SDK | dhdSetMot (ushort mot[DHD_MAX_DOF], uchar mask=0xff, char ID=-1) |
int __SDK | dhdGetEnc (int enc[DHD_MAX_DOF], uchar mask=0xff, char ID=-1) |
int __SDK | dhdSetBrk (uchar mask=0xff, char ID=-1) |
int __SDK | dhdGetDeltaJointAngles (double *j0, double *j1, double *j2, char ID=-1) |
int __SDK | dhdGetDeltaJacobian (double jcb[3][3], char ID=-1) |
int __SDK | dhdDeltaJointAnglesToJacobian (double j0, double j1, double j2, double jcb[3][3], char ID=-1) |
int __SDK | dhdDeltaJointTorquesExtrema (double j0, double j1, double j2, double minq[3], double maxq[3], char ID=-1) |
int __SDK | dhdDeltaGravityJointTorques (double j0, double j1, double j2, double *q0, double *q1, double *q2, char ID=-1) |
int __SDK | dhdSetDeltaJointTorques (double t0, double t1, double t2, char ID=-1) |
int __SDK | dhdGetJointAngles (double j[DHD_MAX_DOF], char ID=-1) |
int __SDK | dhdJointAnglesToInertiaMatrix (double j[DHD_MAX_DOF], double inertia[6][6], char ID=-1) |
int __SDK | dhdSetComMode (int mode, char ID=-1) |
int __SDK | dhdSetComModePriority (int priority, char ID=-1) |
int __SDK | dhdSetWatchdog (unsigned char val, char ID=-1) |
int __SDK | dhdGetWatchdog (unsigned char *val, char ID=-1) |
int __SDK | dhdControllerSetDevice (int device, char ID=-1) |
int __SDK | dhdReadConfigFromFile (char *filename, char ID=-1) |
bool __SDK | dhdKbHit () |
char __SDK | dhdKbGet () |
double __SDK | dhdGetTime () |
void __SDK | dhdSleep (double sec) |
int __SDK | dhdStartThread (void *func(void *), void *arg, int priority) |
DHD header file.
#define DHD_COM_MODE_ASYNC 1 |
The asynchronous USB mode is the default. The asynchronous USB mode allows the operating system to parallelise the read and write operations on the USB port. This parallel operation improves refresh rate stability by reducing communication jitter. Other factors also influence USB performance, including the choice of operating system, machine load and program optimisation.
#define DHD_COM_MODE_NETWORK 4 |
This mode is reported when connected to a haptic device using the Force Dimension network connection mode.
#define DHD_COM_MODE_SYNC 0 |
The synchronous USB mode performs USB read and write operations in sequence, allowing for a theoretical haptic refresh rate of 4 kHz. Please note that Other factors also influence USB performance, including the choice of operating system, machine load and program optimisation.
#define DHD_COM_MODE_VIRTUAL 3 |
This mode is reported when connected to a virtual device.
#define DHD_DELTA_ENC_0 0 |
Array index for encoder 0 of the DELTA structure (expert mode only).
#define DHD_DELTA_ENC_1 1 |
Array index for encoder 1 of the DELTA structure (expert mode only).
#define DHD_DELTA_ENC_2 2 |
Array index for encoder 2 of the DELTA structure (expert mode only).
#define DHD_DELTA_MOTOR_0 0 |
Array index for motor 0 of the DELTA structure (expert mode only).
#define DHD_DELTA_MOTOR_1 1 |
Array index for motor 1 of the DELTA structure (expert mode only).
#define DHD_DELTA_MOTOR_2 2 |
Array index for motor 2 of the DELTA structure (expert mode only).
#define DHD_DEVICE_CONTROLLER 81 |
Device identifier for the Force Dimension stand-alone USB 2.0 controller device.
#define DHD_DEVICE_CONTROLLER_HR 82 |
Device identifier for the Force Dimension stand-alone USB 2.0 controller device with high-resolution encoders (24bits).
#define DHD_DEVICE_CUSTOM 91 |
Device identifier for an unknown device compatible with the Force Dimension communication protocol.
#define DHD_DEVICE_DELTA3 63 |
Device identifier for the Force Dimension DELTA.3 haptic device (USB version).
#define DHD_DEVICE_DELTA6 64 |
Device identifier for the Force Dimension DELTA.6 haptic device (USB version).
#define DHD_DEVICE_FALCON 60 |
Device identifier for the Novint FALCON haptic device.
#define DHD_DEVICE_NONE 0 |
Device identifier returned when no device is connected.
#define DHD_DEVICE_OMEGA3 33 |
Device identifier for the Force Dimension OMEGA.3 haptic device.
#define DHD_DEVICE_OMEGA33 34 |
Device identifier for the right-handed version of the Force Dimension OMEGA.6 haptic device.
#define DHD_DEVICE_OMEGA331 35 |
Device identifier for the right-handed version of the Force Dimension OMEGA.7 haptic device.
#define DHD_DEVICE_OMEGA331_LEFT 37 |
Device identifier for the left-handed version of the Force Dimension OMEGA.7 haptic device.
#define DHD_DEVICE_OMEGA33_LEFT 36 |
Device identifier for the left-handed version of the Force Dimension OMEGA.6 haptic device.
#define DHD_DEVICE_SIGMA331 104 |
Device identifier for the right-handed version of the Force Dimension SIGMA.7 haptic device.
#define DHD_DEVICE_SIGMA331_LEFT 105 |
Device identifier for the left-handed version of the Force Dimension SIGMA.7 haptic device.
#define DHD_DEVICE_SIGMA331S 108 |
Device identifier for the right-handed version of the Force Dimension SIGMA.7S haptic device.
#define DHD_DEVICE_SIGMA331S_LEFT 109 |
Device identifier for the left-handed version of the Force Dimension SIGMA.7S haptic device.
#define DHD_DEVICE_SIGMA33P 106 |
Device identifier for the right-handed version of the Force Dimension SIGMA.6+ haptic device.
#define DHD_DEVICE_SIGMA33P_LEFT 107 |
Device identifier for the left-handed version of the Force Dimension SIGMA.6+ haptic device.
#define DHD_MAX_BUTTONS 8 |
The maximum number of buttons the SDK can address on the Force Dimension haptic device.
#define DHD_MAX_DOF 8 |
Maximum number of encoder channels that are available.
#define DHD_MAX_STATUS 15 |
The length of the status array. See device status for details.
#define DHD_MOTOR_SATURATED 2 |
Return value used when at least one of the motors cannot deliver the requested torque. Motor groups are scaled in order to preserve force and torque direction over magnitude.
#define DHD_OFF 0 |
Applies to the device status values.
#define DHD_ON 1 |
Applies to the device status values.
#define DHD_STATUS_BRAKE 6 |
The index of the BRAKE flag in the status array. This flag indicates if the device is in BRAKE mode or not. See device modes for details.
#define DHD_STATUS_CONNECTED 1 |
The index of the connection flag in the status array. This flag indicates if the device is connected or not.
#define DHD_STATUS_ERROR 9 |
The index of the error flag in the status array. This flag indicates if the an error happened on the device controller.
#define DHD_STATUS_FORCE 5 |
The index of the FORCE flag in the status array. This flag indicates if the device is in FORCE mode or not. See device modes for details.
#define DHD_STATUS_FORCEOFFCAUSE 14 |
The event that caused forces to be disabled on the device (the last time forces were turned off). The event can be one of the following value:
DHD_FORCEOFF_NONE:
nothing has caused forces to be turned off yet DHD_FORCEOFF_BUTTON:
the force button was pushed DHD_FORCEOFF_VELOCITY:
the velocity threshold was reached DHD_FORCEOFF_WATCHDOG:
the communication watchdog kicked in DHD_FORCEOFF_SOFTWARE:
the software requested forces to be turned off, e.g. dhdEnableForce() DHD_FORCEOFF_USBDISCN:
the USB cable was disconnected DHD_FORCEOFF_DEADMAN:
the dead man switch was disconnectedNote that not all devices support all the force-disabling mechanisms listed above.
#define DHD_STATUS_GRAVITY 10 |
The index of the gravity flag in the status array. This flag indicates if the gravity compensation option is enabled or not.
#define DHD_STATUS_IDLE 4 |
The index of the IDLE flag in the status array. This flag indicates if the device is in IDLE mode or not. See device modes for details.
#define DHD_STATUS_POWER 0 |
The index of the power flag in the status array. This flag indicates if the device is powered or not.
#define DHD_STATUS_REDUNDANCY 13 |
The status of the redundant encoder consistency check. For devices equipped with redundant encoders, a value of 1
indicates that the redundancy check is successful. A value of 0
is reported otherwise, or if the device does not feature redundant encoders.
#define DHD_STATUS_RESET 3 |
The index of the RESET flag in the status array. This flag indicates if the device is in RESET mode or not. See device modes for details.
#define DHD_STATUS_STARTED 2 |
The index of the start flag in the status array. This flag indicates if the device controller is running.
#define DHD_STATUS_TIMEGUARD 11 |
The index of the TimeGuard flag in the status array. This flag indicates if the TimeGuard feature is enabled or not. See TimeGuard feature for details.
#define DHD_STATUS_TORQUE 7 |
The index of the TORQUE flag in the status array. This flag indicates if the torques are active or not when the device is in FORCE mode. See device modes for details.
#define DHD_STATUS_WRIST_DETECTED 8 |
The index of the WRIST_DETECTED flag in the status array. This flag indicates if the device has a wrist or not. See device types for details.
#define DHD_STATUS_WRIST_INIT 12 |
The index of the WRIST_INIT flag in the status array. This flag indicates if the device wrist is initialized or not. See device types for details.
#define DHD_THREAD_PRIORITY_DEFAULT 0 |
This constant can be used to tell the dhdStartThread() function to use the default operating system priority level for the newly created thread.
#define DHD_THREAD_PRIORITY_HIGH 1 |
This constant can be used to tell the dhdStartThread() function to use a priority level higher than the default operating system priority for the newly created thread.
#define DHD_THREAD_PRIORITY_LOW 2 |
This constant can be used to tell the dhdStartThread() function to use a priority level lower than the default operating system priority for the newly created thread.
#define DHD_TIMEGUARD 1 |
Return value used when the TimeGuard feature prevented an unnecessary communication with the device.
#define DHD_VELOCITY_WINDOW 20 |
The default window size used by the velocity estimator. The actual time interval (or "window") can be adjusted using dhdConfigLinearVelocity, and should be modified to best suit the dynamic behavior of the device for a given application.
#define DHD_VELOCITY_WINDOWING 0 |
The default velocity estimator mode. In this mode, the velocity is estimated by comparing the current position with the position a given time interval ago. This time interval (or "window") can be adjusted using dhdConfigLinearVelocity, and should be modified to best suit the dynamic behavior of the device for a given application. The windowing estimator mode is the least resource intensive.
#define DHD_WRIST_ENC_0 3 |
Array index for encoder 0 of the WRIST structure (expert mode only).
#define DHD_WRIST_ENC_1 4 |
Array index for encoder 1 of the WRIST structure (expert mode only).
#define DHD_WRIST_ENC_2 5 |
Array index for encoder 2 of the WRIST structure (expert mode only).
#define DHD_WRIST_MOTOR_0 3 |
Array index for motor 0 of the WRIST structure (expert mode only).
#define DHD_WRIST_MOTOR_1 4 |
Array index for motor 1 of the WRIST structure (expert mode only).
#define DHD_WRIST_MOTOR_2 5 |
Array index for motor 2 of the WRIST structure (expert mode only).
enum dhd_errors |
See error management for more details on error management.
Enumerator | |
---|---|
DHD_NO_ERROR |
No error occurred during processing. This is set as the default value in most of the DHD functions. |
DHD_ERROR |
Undocumented error (for custom use). |
DHD_ERROR_COM |
Communication error between the controller and the host computer. |
DHD_ERROR_DHC_BUSY |
The device controller is busy and cannot performed the required task. |
DHD_ERROR_NO_DRIVER_FOUND |
A required device driver is not installed, please refer to your user manual installation section. |
DHD_ERROR_NO_DEVICE_FOUND |
No compatible Force Dimension device was detected. |
DHD_ERROR_NOT_AVAILABLE |
The command or feature is not available for a particular device or software release. |
DHD_ERROR_TIMEOUT |
The operation timed out. |
DHD_ERROR_GEOMETRY |
An error occurred within the device geometric model (expert mode only). |
DHD_ERROR_EXPERT_MODE_DISABLED |
The command or feature is not available because dhdEnableExpertMode() has not been called. |
DHD_ERROR_NOT_IMPLEMENTED |
The command or feature is currently not implemented. |
DHD_ERROR_OUT_OF_MEMORY |
Memory could not be allocated, please close some applications. |
DHD_ERROR_DEVICE_NOT_READY |
The device is not ready to process the requested command. |
DHD_ERROR_FILE_NOT_FOUND |
A required file is missing. |
DHD_ERROR_CONFIGURATION |
There was an error trying to read/write the calibration data into the device memory. |
DHD_ERROR_NULL_ARGUMENT |
The function producing this error was given a null or invalid argument. |
DHD_ERROR_REDUNDANT_FAIL |
The redundant encoder integrity test failed. |
DHD_ERROR_NOT_ENABLED |
A particular feature is not enabled for the current device. |
DHD_ERROR_DEVICE_IN_USE |
The targeted device is already in use. |
int __SDK dhdCalibrateWrist | ( | char | ID | ) |
Trigger the WRIST calibration routine in the device controller.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdClose | ( | char | ID | ) |
Close the connection to a particular device.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdConfigAngularVelocity | ( | int | ms, |
int | mode, | ||
char | ID | ||
) |
Configure the internal velocity computation estimator. This only applies to the device wrist.
ms | [default=DHD_VELOCITY_WINDOW] time interval used to compute velocity [ms] |
mode | [default=DHD_VELOCITY_WINDOWING] device ID (see velocity estimator modes section for details) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdConfigGripperVelocity | ( | int | ms, |
int | mode, | ||
char | ID | ||
) |
Configure the internal velocity computation estimator. This only applies to the device gripper.
ms | [default=DHD_VELOCITY_WINDOW] time interval used to compute velocity [ms] |
mode | [default=DHD_VELOCITY_WINDOWING] device ID (see velocity estimator modes section for details) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdConfigLinearVelocity | ( | int | ms, |
int | mode, | ||
char | ID | ||
) |
Configure the internal velocity computation estimator. This only applies to the device base.
ms | [default=DHD_VELOCITY_WINDOW] time interval used to compute velocity [ms] |
mode | [default=DHD_VELOCITY_WINDOWING] device ID (see velocity estimator modes section for details) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdControllerSetDevice | ( | int | device, |
char | ID | ||
) |
If the connected device is a controller, this function lets you define the Force Dimension mechanical structure attached to it. Upon selecting a device model, the routine will attempt to read that particular device configuration from the controller. If this fails, a default configuration will be selected and stored in the controller.
device | the device type to use |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaEncoderToPosition | ( | int | enc0, |
int | enc1, | ||
int | enc2, | ||
double * | px, | ||
double * | py, | ||
double * | pz, | ||
char | ID | ||
) |
This routine computes and returns the position of the end-effector for a given set of encoder readings.
enc0 | DELTA encoder reading on axis 0 |
enc1 | DELTA encoder reading on axis 1 |
enc2 | DELTA encoder reading on axis 2 |
px | [out] DELTA end-effector position on the X axis [m] |
py | [out] DELTA end-effector position on the Y axis [m] |
pz | [out] DELTA end-effector position on the Z axis [m] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaForceToMotor | ( | double | fx, |
double | fy, | ||
double | fz, | ||
int | enc0, | ||
int | enc1, | ||
int | enc2, | ||
ushort * | mot0, | ||
ushort * | mot1, | ||
ushort * | mot2, | ||
char | ID | ||
) |
This routine computes and returns the motor commands necessary to obtain a given force on the end-effector at a given position (defined by encoder readings).
fx | force on the DELTA end-effector on the X axis [N] |
fy | force on the DELTA end-effector on the Y axis [N] |
fz | force on the DELTA end-effector on the Z axis [N] |
enc0 | DELTA encoder reading on axis 0 |
enc1 | DELTA encoder reading on axis 1 |
enc2 | DELTA encoder reading on axis 2 |
mot0 | [out] motor command on DELTA axis 0 |
mot1 | [out] motor command on DELTA axis 1 |
mot2 | [out] motor command on DELTA axis 2 |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaGravityJointTorques | ( | double | j0, |
double | j1, | ||
double | j2, | ||
double * | q0, | ||
double * | q1, | ||
double * | q2, | ||
char | ID | ||
) |
Compute the DELTA joint torques required to compensate for gravity in a given DELTA joint angle configuration. Please refer to your device user manual for more information on your device coordinate system.
j0 | joint angle for axis 0 in [rad] |
j1 | joint angle for axis 1 in [rad] |
j2 | joint angle for axis 2 in [rad] |
q0 | out gravity compensation joint torque on axis 0 in [Nm] |
q1 | out gravity compensation joint torque on axis 1 in [Nm] |
q2 | out gravity compensation joint torque on axis 2 in [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaJointAnglesToJacobian | ( | double | j0, |
double | j1, | ||
double | j2, | ||
double | jcb[3][3], | ||
char | ID | ||
) |
Retrieve the jacobian matrix based on a given joint configuration. Please refer to your device user manual for more information on your device coordinate system.
j0 | joint angle for axis 0 in [rad] |
j1 | joint angle for axis 1 in [rad] |
j2 | joint angle for axis 2 in [rad] |
jcb | [out] device jacobian |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaJointTorquesExtrema | ( | double | j0, |
double | j1, | ||
double | j2, | ||
double | minq[3], | ||
double | maxq[3], | ||
char | ID | ||
) |
Compute the range of applicable DELTA joint torques for a given DELTA joint angle configuration. Please refer to your device user manual for more information on your device coordinate system.
j0 | joint angle for axis 0 in [rad] |
j1 | joint angle for axis 1 in [rad] |
j2 | joint angle for axis 2 in [rad] |
minq | outarray of minimum applicable joint torque in [Nm] |
maxq | outarray of maximum applicable joint torque in [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaMotorToForce | ( | ushort | mot0, |
ushort | mot1, | ||
ushort | mot2, | ||
int | enc0, | ||
int | enc1, | ||
int | enc2, | ||
double * | fx, | ||
double * | fy, | ||
double * | fz, | ||
char | ID | ||
) |
This routine computes and returns the force applied to the end-effector for a given set of motor commands at a given position (defined by encoder readings).
mot0 | motor command on DELTA axis 0 |
mot1 | motor command on DELTA axis 1 |
mot2 | motor command on DELTA axis 2 |
enc0 | DELTA encoder reading on axis 0 |
enc1 | DELTA encoder reading on axis 1 |
enc2 | DELTA encoder reading on axis 2 |
fx | [out] force on the DELTA end-effector on the X axis [N] |
fy | [out] force on the DELTA end-effector on the Y axis [N] |
fz | [out] force on the DELTA end-effector on the Z axis [N] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDeltaPositionToEncoder | ( | double | px, |
double | py, | ||
double | pz, | ||
int * | enc0, | ||
int * | enc1, | ||
int * | enc2, | ||
char | ID | ||
) |
This routine computes and returns the encoder values for a given end-effector position.
px | DELTA end-effector position on the X axis [m] |
py | DELTA end-effector position on the Y axis [m] |
pz | DELTA end-effector position on the Z axis [m] |
enc0 | [out] DELTA encoder reading on axis 0 |
enc1 | [out] DELTA encoder reading on axis 1 |
enc2 | [out] DELTA encoder reading on axis 2 |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdDisableExpertMode | ( | ) |
Disable the expert mode.
int __SDK dhdEmulateButton | ( | uchar | val, |
char | ID | ||
) |
Enable the button behavior emulation in the omega.7 gripper.
val | DHD_ON to emulate button behavior, DHD_OFF to disable it |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdEnableExpertMode | ( | ) |
Enable the expert mode.
int __SDK dhdEnableForce | ( | uchar | val, |
char | ID | ||
) |
Enable the force mode in the device controller.
val | DHD_ON to enable force, DHD_OFF to disable it |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdErrorGetLast | ( | ) |
Returns the last error code encountered in the running thread. See error management for details.
const char* __SDK dhdErrorGetLastStr | ( | ) |
Returns a brief string describing the last error encountered in the running thread. See error management for details.
const char* __SDK dhdErrorGetStr | ( | int | error | ) |
Returns a brief string describing a given error code. See error management for details.
error | error code |
int __SDK dhdGetAngularVelocityDeg | ( | double * | wx, |
double * | wy, | ||
double * | wz, | ||
char | ID | ||
) |
Retrieve the estimated instantaneous angular velocity in [deg/s]. Velocity computation can be configured by calling dhdConfigAngularVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
wx | [out] angular velocity around the X axis [deg/s] |
wy | [out] angular velocity around the Y axis [deg/s] |
wz | [out] angular velocity around the Z axis [deg/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetAngularVelocityRad | ( | double * | wx, |
double * | wy, | ||
double * | wz, | ||
char | ID | ||
) |
Retrieve the estimated instantaneous angular velocity in [rad/s]. Velocity computation can be configured by calling dhdConfigAngularVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
wx | [out] angular velocity around the X axis [rad/s] |
wy | [out] angular velocity around the Y axis [rad/s] |
wz | [out] angular velocity around the Z axis [rad/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetAvailableCount | ( | ) |
Return the number of available Force Dimension devices connected to the system. This encompasses all devices connected locally, but excludes devices already locked by other applications. Devices are given a unique identifier, as explained in the multiple devices section.
int __SDK dhdGetBaseAngleXDeg | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the X axis.
angle | [out] a pointer to a valid double to receive the device angle in [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetBaseAngleXRad | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the X axis.
angle | [out] a pointer to a valid double to receive the device angle in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetBaseAngleZDeg | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the vertical Z axis.
angle | [out] a pointer to a valid double to receive the device angle in [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetBaseAngleZRad | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the vertical Z axis.
angle | [out] a pointer to a valid double to receive the device angle in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetButton | ( | int | index, |
char | ID | ||
) |
Return the status of the button located on the end-effector.
index | button index, 0 for the gripper button (up to DHD_MAX_BUTTONS) |
ID | [default=-1] device ID (see multiple devices section for details) |
uint __SDK dhdGetButtonMask | ( | char | ID | ) |
Return the 32-bit binary mask of the device buttons.
ID | [default=-1] device ID (see multiple devices section for details) |
double __SDK dhdGetComFreq | ( | char | ID | ) |
Return the communication refresh rate between the computer and the device. Refresh rate computation is based on function calls that apply a force on the device (e.g. dhdSetForce()).
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetComMode | ( | char | ID | ) |
Retrieve the COM operation mode on compatible devices.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetDeltaEncoders | ( | int * | enc0, |
int * | enc1, | ||
int * | enc2, | ||
char | ID | ||
) |
Read all encoders values of the DELTA structure.
enc0 | [out] DELTA axis 0 encoder reading |
enc1 | [out] DELTA axis 1 encoder reading |
enc2 | [out] DELTA axis 2 encoder reading |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetDeltaJacobian | ( | double | jacobian[3][3], |
char | ID | ||
) |
Retrieve the jacobian matrix based on the current end-effector position. Please refer to your device user manual for more information on your device coordinate system.
jacobian | [out] device jacobian |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetDeltaJointAngles | ( | double * | j0, |
double * | j1, | ||
double * | j2, | ||
char | ID | ||
) |
Retrieve the joint angles in [rad] for the DELTA structure.
int __SDK dhdGetDeviceAngleDeg | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the Y axis.
angle | [out] a pointer to a valid double to receive the device angle in [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetDeviceAngleRad | ( | double * | angle, |
char | ID | ||
) |
Get the device base plate angle around the Y axis.
angle | [out] a pointer to a valid double to receive the device angle in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetDeviceCount | ( | ) |
Return the number of compatible Force Dimension devices connected to the system. This encompasses all devices connected locally, including devices already locked by other applications. Devices are given a unique identifier, as explained in the multiple devices section.
int __SDK dhdGetDeviceID | ( | ) |
Return the ID of the current default device.
int __SDK dhdGetEffectorMass | ( | double * | mass, |
char | ID | ||
) |
Get the mass of the end-effector currently defined for a device. The gripper mass is used in the gravity compensation feature.
mass | a pointer to the actual end-effector mass in [kg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetEnc | ( | int | enc[DHD_MAX_DOF], |
uchar | mask, | ||
char | ID | ||
) |
Get selective encoder values into encoder array. Particularly useful when using the the generic controller directly, without a device model attached.
enc | out encoder values array |
mask | [default=0xff] bitwise mask of which encoders should be read in |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetEncoder | ( | int | index, |
char | ID | ||
) |
Read a single encoder value from the haptic device.
index | the encoder index number as defined by DHD_MAX_DOF |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetForce | ( | double * | fx, |
double * | fy, | ||
double * | fz, | ||
char | ID | ||
) |
Retrieve the force vector applied to the end-effector.
fx | [out] force on the X axis in [N] |
fy | [out] force on the Y axis in [N] |
fz | [out] force on the Z axis in [N] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetForceAndTorque | ( | double * | fx, |
double * | fy, | ||
double * | fz, | ||
double * | tx, | ||
double * | ty, | ||
double * | tz, | ||
char | ID | ||
) |
Retrieve the force and torque vectors applied to the device end-effector.
fx | [out] force on the X axis in [N] |
fy | [out] force on the Y axis in [N] |
fz | [out] force on the Z axis in [N] |
tx | [out] torque around the X axis in [Nm] |
ty | [out] torque around the Y axis in [Nm] |
tz | [out] torque around the Z axis in [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetForceAndTorqueAndGripperForce | ( | double * | fx, |
double * | fy, | ||
double * | fz, | ||
double * | tx, | ||
double * | ty, | ||
double * | tz, | ||
double * | f, | ||
char | ID | ||
) |
Retrieve the force and torque vectors applied to the device end-effector, as well as the force applied to the gripper.
fx | [out] force on the X axis in [N] |
fy | [out] force on the Y axis in [N] |
fz | [out] force on the Z axis in [N] |
tx | [out] torque around the X axis in [Nm] |
ty | [out] torque around the Y axis in [Nm] |
tz | [out] torque around the Z axis in [Nm] |
f | [out] force on the gripper in [N] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperAngleDeg | ( | double * | a, |
char | ID | ||
) |
Get the gripper opening angle in degrees.
a | [out] gripper opening [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperAngleRad | ( | double * | a, |
char | ID | ||
) |
Get the gripper opening angle in radians.
a | [out] gripper opening [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperAngularVelocityDeg | ( | double * | wg, |
char | ID | ||
) |
Retrieve the estimated instantaneous angular velocity of the gripper in [deg/s]. Velocity computation can be configured by calling dhdConfigGripperVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
wg | [out] gripper angular velocity [deg/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperAngularVelocityRad | ( | double * | wg, |
char | ID | ||
) |
Retrieve the estimated instantaneous angular velocity of the gripper in [rad/s]. Velocity computation can be configured by calling dhdConfigGripperVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
wg | [out] gripper angular velocity [rad/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperEncoder | ( | int * | enc, |
char | ID | ||
) |
Read the encoder value of the force gripper.
enc | [out] gripper encoder reading |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperFingerPos | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
char | ID | ||
) |
Read the position in Cartesian coordinates of forefinger rest location of the force gripper structure if present.
px | [out] gripper finger X coord |
py | [out] gripper finger Y coord |
pz | [out] gripper finger Z coord |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperGap | ( | double * | g, |
char | ID | ||
) |
Get the gripper opening distance in meters.
g | [out] gripper opening [m] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperLinearVelocity | ( | double * | vg, |
char | ID | ||
) |
Retrieve the estimated instantaneous linear velocity of the gripper in [m/s]. Velocity computation can be configured by calling dhdConfigGripperVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
vg | [out] gripper linear velocity [m/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetGripperThumbPos | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
char | ID | ||
) |
Read the position in Cartesian coordinates of thumb rest location of the force gripper structure if present.
px | [out] gripper thumb X coord |
py | [out] gripper thumb Y coord |
pz | [out] gripper thumb Z coord |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetJointAngles | ( | double | j[DHD_MAX_DOF], |
char | ID | ||
) |
Retrieve the joint angles in [rad] for all sensed degrees-of-freedom of the current device.
j | outarray of joint angles in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetLinearVelocity | ( | double * | vx, |
double * | vy, | ||
double * | vz, | ||
char | ID | ||
) |
Retrieve the estimated instantaneous translational velocity. Velocity computation can be configured by calling dhdConfigLinearVelocity(). By default DHD_VELOCITY_WINDOW and DHD_VELOCITY_WINDOWING are used. See velocity estimator for details.
vx | [out] velocity along the X axis [m/s] |
vy | [out] velocity along the Y axis [m/s] |
vz | [out] velocity along the Z axis [m/s] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetOrientationDeg | ( | double * | oa, |
double * | ob, | ||
double * | og, | ||
char | ID | ||
) |
For the DHD_DEVICE_DELTA6 devices, retrieve the Euler angles of the WRIST structure (around XYZ). For all other devices, retrieve individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles are computed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
oa | [out] device orientation around the X axis in [deg] |
ob | [out] device orientation around the Y axis in [deg] |
og | [out] device orientation around the Z axis in [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetOrientationFrame | ( | double | matrix[3][3], |
char | ID | ||
) |
Retrieve the rotation matrix of the WRIST structure. The identity matrix is returned for devices that do not support orientations.
matrix | [out] orientation matrix frame |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetOrientationRad | ( | double * | oa, |
double * | ob, | ||
double * | og, | ||
char | ID | ||
) |
For the DHD_DEVICE_DELTA6 devices, retrieve the Euler angles of the WRIST structure (around XYZ). For all other devices, retrieve individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles are computed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
oa | [out] device orientation around the X axis in [rad] |
ob | [out] device orientation around the Y axis in [rad] |
og | [out] device orientation around the Z axis in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetPosition | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
char | ID | ||
) |
Retrieve the position of the end-effector in Cartesian coordinates. Please refer to your device user manual for more information on your device coordinate system.
px | [out] device position on the X axis in [m] |
py | [out] device position on the Y axis in [m] |
pz | [out] device position on the Z axis in [m] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetPositionAndOrientationDeg | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
double * | oa, | ||
double * | ob, | ||
double * | og, | ||
char | ID | ||
) |
Retrieve the position and orientation of the end-effector in Cartesian coordinates. For the DHD_DEVICE_DELTA6 devices, the orientation is expressed as the Euler angles of the WRIST structure (around XYZ). For all other devices, the orientation is expressed as the individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles are computed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
px | [out] device position on the X axis in [m] |
py | [out] device position on the Y axis in [m] |
pz | [out] device position on the Z axis in [m] |
oa | [out] device orientation around the X axis in [deg] |
ob | [out] device orientation around the Y axis in [deg] |
og | [out] device orientation around the Z axis in [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetPositionAndOrientationFrame | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
double | matrix[3][3], | ||
char | ID | ||
) |
Retrieve the position and orientation matrix of the end-effector in Cartesian coordinates. Please refer to your device user manual for more information on your device coordinate system.
px | [out] device position on the X axis in [m] |
py | [out] device position on the Y axis in [m] |
pz | [out] device position on the Z axis in [m] |
matrix | [out] orientation matrix frame |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetPositionAndOrientationRad | ( | double * | px, |
double * | py, | ||
double * | pz, | ||
double * | oa, | ||
double * | ob, | ||
double * | og, | ||
char | ID | ||
) |
Retrieve the position and orientation of the end-effector in Cartesian coordinates. For the DHD_DEVICE_DELTA6 devices, the orientation is expressed as the Euler angles of the WRIST structure (around XYZ). For all other devices, the orientation is expressed as the individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles are computed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
px | [out] device position on the X axis in [m] |
py | [out] device position on the Y axis in [m] |
pz | [out] device position on the Z axis in [m] |
oa | [out] device orientation around the X axis in [rad] |
ob | [out] device orientation around the Y axis in [rad] |
og | [out] device orientation around the Z axis in [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
void __SDK dhdGetSDKVersion | ( | int * | major, |
int * | minor, | ||
int * | release, | ||
int * | revision | ||
) |
Return the SDK complete set of version numbers.
major | major version number |
minor | minor version number |
release | release number |
revision | revision number |
int __SDK dhdGetSerialNumber | ( | ushort * | sn, |
char | ID | ||
) |
Return the device serial number.
sn | [out] a pointer to a valid unsigned char to receive the device serial number |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetStatus | ( | int | status[DHD_MAX_STATUS], |
char | ID | ||
) |
Returns the status vector of the haptic device. The status is described in the status section.
status | [out] an array that will receive the status vector |
ID | [default=-1] device ID (see multiple devices section for details) |
ulong __SDK dhdGetSystemCounter | ( | ) |
Returns a timestamp computed from the high-resolution system counter, expressed in microseconds. This function is deprecated, please usr dhdGetTime() instead.
const char* __SDK dhdGetSystemName | ( | char | ID | ) |
Return the haptic device type. As this SDK can be used to control all of Force Dimension haptic products, this can help programmers ensure that their application is running on the appropriate target haptic device.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetSystemType | ( | char | ID | ) |
Return the haptic device type. As this SDK can be used to control all of Force Dimension haptic products, this can help programmers ensure that their application is running on the appropriate target haptic device.
ID | [default=-1] device ID (see multiple devices section for details) |
double __SDK dhdGetTime | ( | ) |
Returns the current value from the high-resolution system counter in [s]. The resolution of the system counter may be machine-dependent, as it is usually derived from one of the CPU clocks signals. The time returned is guaranteed to be monotonic.
int __SDK dhdGetVelocityThreshold | ( | uint * | val, |
char | ID | ||
) |
Retrieves the current velocity threshold of the device. Velocity threshold is a safety feature that prevents the device from accelerating to high velocities without control. If the velocity of one of the device axis passes the threshold, the device enters BRAKES mode.
val | an arbitrary value of velocity threshold the range of threshold values is device dependent, it is recommended NOT to modify factory settings |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetVersion | ( | double * | ver, |
char | ID | ||
) |
Return the device controller version. As this SDK can be used to control all of Force Dimension haptic products, this can help programmers ensure that their application is running on the appropriate version of the haptic controller.
ver | [out] pointer to a variable that will receive the controller release version number |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetWatchdog | ( | uchar * | val, |
char | ID | ||
) |
Get the watchdog duration in multiples of 125 microseconds on compatible devices.
val | [out]watchdog duration in multiples of 125 [us] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGetWristEncoders | ( | int * | enc0, |
int * | enc1, | ||
int * | enc2, | ||
char | ID | ||
) |
Read the encoders values of the WRIST structure.
enc0 | [out] WRIST axis 0 encoder reading |
enc1 | [out] WRIST axis 1 encoder reading |
enc2 | [out] WRIST axis 2 encoder reading |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperAngleRadToEncoder | ( | double | a, |
int * | enc, | ||
char | ID | ||
) |
This routine computes and returns the gripper encoder value for a given gripper angle in [rad]
a | gripper opening in [rad] |
enc | [out] gripper encoder reading |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperEncoderToAngleRad | ( | int | enc, |
double * | a, | ||
char | ID | ||
) |
This routine computes and returns the opening of the gripper as an angle in [rad] for a given encoder reading.
enc | gripper encoder reading |
a | [out] gripper opening [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperEncoderToGap | ( | int | enc, |
double * | gap, | ||
char | ID | ||
) |
This routine computes and returns the opening of the gripper as a distance in [m] for a given encoder reading.
enc | gripper encoder reading |
gap | [out] gripper opening [m] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperForceToMotor | ( | double | frc, |
ushort * | mot, | ||
int | enc[4], | ||
char | ID | ||
) |
Given a desired force to be displayed by the force gripper, this routine computes and returns the corresponding motor command.
frc | force on the gripper end-effector [N] |
mot | [out] motor command on gripper axis |
enc | encoder reading for wrist (at indices 0,1,2) and gripper (at index 3) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperGapToEncoder | ( | double | gap, |
int * | enc, | ||
char | ID | ||
) |
This routine computes and returns the gripper encoder value for a given gripper opening distance in [m]
gap | gripper opening in [m] |
enc | [out] gripper encoder reading |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdGripperMotorToForce | ( | ushort | mot, |
double * | frc, | ||
int | enc[4], | ||
char | ID | ||
) |
This routine computes and returns the force applied to the end-effector for a given motor command.
mot | motor command on gripper axis |
frc | [out] force on the gripper end-effector [N] |
enc | encoder reading for wrist (at indices 0,1,2) and gripper (at index 3) |
ID | [default=-1] device ID (see multiple devices section for details) |
bool __SDK dhdHasActiveWrist | ( | char | ID | ) |
Returns true if the device has an active wrist, false otherwise.
ID | [default=-1] device ID (see multiple devices section for details) |
bool __SDK dhdHasBase | ( | char | ID | ) |
Returns true if the device has a base, false otherwise.
ID | [default=-1] device ID (see multiple devices section for details) |
bool __SDK dhdHasGripper | ( | char | ID | ) |
Returns true if the device has a gripper, false otherwise.
ID | [default=-1] device ID (see multiple devices section for details) |
bool __SDK dhdHasWrist | ( | char | ID | ) |
Returns true if the device has a wrist, false otherwise.
ID | [default=-1] device ID (see multiple devices section for details) |
bool __SDK dhdIsLeftHanded | ( | char | ID | ) |
Returns true if the device is configured for left-handed use, false otherwise.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdJointAnglesToInertiaMatrix | ( | double | j[DHD_MAX_DOF], |
double | inertia[6][6], | ||
char | ID | ||
) |
Retrieve the (Cartesian) inertia matrix based on a given joint configuration. Please refer to your device user manual for more information on your device coordinate system.
j | array of joint angles in [rad] |
inertia | [out] device inertia matrix |
ID | [default=-1] device ID (see multiple devices section for details) |
char __SDK dhdKbGet | ( | ) |
Retrieve a character from the keyboard (OS independent).
bool __SDK dhdKbHit | ( | ) |
Check keyboard for a key hit (OS independent).
int __SDK dhdOpen | ( | ) |
Open a connection to the first available device connected to the system. The order in which devices are opened persists until devices are added or removed.
int __SDK dhdOpenID | ( | char | ID | ) |
Open a connection to one particular device connected to the system. The order in which devices are opened persists until devices are added or removed.
ID | the device ID (must be between 0 and the number of devices connected to the system) |
int __SDK dhdOpenSerial | ( | int | serial | ) |
Open a connection to the device with a given serial number (available on recent models only).
serial | requested system serial number |
int __SDK dhdOpenType | ( | int | type | ) |
Open a connection to the first device of a given type connected to the system. The order in which devices are opened persists until devices are added or removed.
type | requested system Device Types type |
int __SDK dhdPreset | ( | int | val[DHD_MAX_DOF], |
uchar | mask, | ||
char | ID | ||
) |
Set selected encoder offsets to a given value. Intended for use with the the generic controller when no RESET button is available.
val | motor values array |
mask | bitwise mask of which encoder should be set |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdReadConfigFromFile | ( | char * | filename, |
char | ID | ||
) |
Load a specific device calibration/configuration data from a file. Particularly useful when using the generic controller connected to a Force Dimension device without using the dhdControllerSetDevice() call.
filename | configuration file |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdReset | ( | char | ID | ) |
Puts the device in RESET mode.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdResetWrist | ( | char | ID | ) |
Puts the DELTA.6 active device WRIST extension in RESET mode.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBaseAngleXDeg | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the X axis. Please refer to your device user manual for more information on your device coordinate system.
angle | device base plate angle around X [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBaseAngleXRad | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the X axis. Please refer to your device user manual for more information on your device coordinate system.
angle | device base plate angle around X [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBaseAngleZDeg | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the vertical Z axis. Please refer to your device user manual for more information on your device coordinate system.
angle | device base plate angle around Z [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBaseAngleZRad | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the vertical Z axis. Please refer to your device user manual for more information on your device coordinate system.
angle | device base plate angle around Z [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBrakes | ( | int | val, |
char | ID | ||
) |
Enable/disable the device electromagnetic brakes.
val | desired state of the brakes (DHD_ON or DHD_OFF) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetBrk | ( | uchar | mask, |
char | ID | ||
) |
Set brakes electromagnetic brakes status on selective motor groups. Only applies when using the generic controller directly, without a device model attached.
mask | [default=0xff] bitwise mask of which motor group should the brakes be set on. |
ID | [default=-1] device ID (see multiple devices section for details) |
mask
argument addresses all 8 motors bitwise. I a single bit within a motor group address is enabled, the entire motor group brakes will be activated.int __SDK dhdSetComMode | ( | int | mode, |
char | ID | ||
) |
Set the COM operation mode on compatible devices.
mode | desired COM operation mode |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetComModePriority | ( | int | priority, |
char | ID | ||
) |
Set the priority of the thread (if any) that supports the current COM operation mode on compatible devices. Currently unused.
priority | desired thread priority |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetDeltaJointTorques | ( | double | t0, |
double | t1, | ||
double | t2, | ||
char | ID | ||
) |
Set all joint torques of the DELTA structure.
t0 | DELTA axis 0 torque command [Nm] |
t1 | DELTA axis 1 torque command [Nm] |
t2 | DELTA axis 2 torque command [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetDeltaMotor | ( | ushort | mot0, |
ushort | mot1, | ||
ushort | mot2, | ||
char | ID | ||
) |
Set desired motor commands to the amplifier channels commanding the DELTA motors.
mot0 | DELTA axis 0 motor command |
mot1 | DELTA axis 1 motor command |
mot2 | DELTA axis 2 motor command |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetDevice | ( | char | ID | ) |
Select the default device that will receive the SDK commands. The SDK supports multiple devices. This routine allows the programmer to decide which device the SDK single_device_call single-device calls will address. Any subsequent SDK call that does not specifically mention the device ID in its parameter list will be sent to that device.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetDeviceAngleDeg | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the (inverted) Y axis. Please refer to your device user manual for more information on your device coordinate system. An angle value of 0 corresponds to the device "upright" position, with its base plate perpendicular to axis X. An angle value of 90 corresponds to the device base plate resting horizontally.
angle | device base plate angle [deg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetDeviceAngleRad | ( | double | angle, |
char | ID | ||
) |
Set the device base plate angle around the (inverted) Y axis. Please refer to your device user manual for more information on your device coordinate system. An angle value of 0 corresponds to the device "upright" position, with its base plate perpendicular to axis X. An angle value of Pi/2 corresponds to the device base plate resting horizontally.
angle | device base plate angle [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetEffectorMass | ( | double | mass, |
char | ID | ||
) |
Define the mass of the end-effector. This function is required to provide accurate gravity compensation when custom-made or modified end-effectors are used.
mass | the actual end-effector mass in [kg] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetForce | ( | double | fx, |
double | fy, | ||
double | fz, | ||
char | ID | ||
) |
Set the desired force vector in Cartesian coordinates to be applied to the end-effector of the device.
fx | force on the X axis in [N] |
fy | force on the Y axis in [N] |
fz | force on the Z axis in [N] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetForceAndGripperForce | ( | double | fx, |
double | fy, | ||
double | fz, | ||
double | fg, | ||
char | ID | ||
) |
Set the desired force vector in Cartesian coordinates and the desired grasping force to be applied to the device end-effector and force gripper.
fx | translation force along X axis |
fy | translation force along Y axis |
fz | translation force along Z axis |
fg | grasping force |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetForceAndTorque | ( | double | fx, |
double | fy, | ||
double | fz, | ||
double | tx, | ||
double | ty, | ||
double | tz, | ||
char | ID | ||
) |
Set the desired force and torque vectors to be applied to the device end-effector.
fx | force on the X axis in [N] |
fy | force on the Y axis in [N] |
fz | force on the Z axis in [N] |
tx | torque around the X axis in [Nm] |
ty | torque around the Y axis in [Nm] |
tz | torque around the Z axis in [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetForceAndTorqueAndGripperForce | ( | double | fx, |
double | fy, | ||
double | fz, | ||
double | tx, | ||
double | ty, | ||
double | tz, | ||
double | fg, | ||
char | ID | ||
) |
Set the desired force and torque vectors in Cartesian coordinates and the desired grasping force to be applied to the device end-effector and force gripper.
fx | force on the X axis in [N] |
fy | force on the Y axis in [N] |
fz | force on the Z axis in [N] |
tx | torque around the X axis in [Nm] |
ty | torque around the Y axis in [Nm] |
tz | torque around the Z axis in [Nm] |
fg | gripper force in [N] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetGravityCompensation | ( | int | val, |
char | ID | ||
) |
Enable/disable gravity compensation.
val | desired state of the gravity compensation feature (DHD_ON or DHD_OFF) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetGripperMotor | ( | ushort | mot, |
char | ID | ||
) |
Set a desired motor command to the force gripper.
mot | gripper motor command |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetMot | ( | ushort | mot[DHD_MAX_DOF], |
uchar | mask, | ||
char | ID | ||
) |
Program motor commands to a selection of motor channels. Particularly useful when using the generic controller directly, without a device model attached.
mot | motor values array |
mask | [default=0xff] bitwise mask of which motor should be set |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetMotor | ( | int | index, |
ushort | val, | ||
char | ID | ||
) |
Program a command to a single motor channel.
index | the motor index number as defined by DHD_MAX_DOF |
val | the motor DAC value |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetOutput | ( | uint | output, |
char | ID | ||
) |
Set the user programmable output bits on devices that support it.
output | a bitwise mask that toggles the programmable output bits |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetStandardGravity | ( | double | g, |
char | ID | ||
) |
Set the standard gravity constant used in gravity compensation. By default, the constant is set to 9.81 m/s^2.
g | standard gravity constant [m/s^2] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetTimeGuard | ( | int | us, |
char | ID | ||
) |
Enable/disable the TimeGuard feature with an arbitrary minimum period.
us | minimum refresh period in [us] a value of 0 disables the TimeGuard feature, while a value of -1 resets the default value (recommended) |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetVelocityThreshold | ( | uint | val, |
char | ID | ||
) |
Adjust the velocity threshold of the device. Velocity threshold is a safety feature that prevents the device from accelerating to high velocities without control. If the velocity of one of the device axis passes the threshold, the device enters BRAKES mode.
val | an arbitrary value of velocity threshold the range of threshold values is device dependent, it is recommended NOT to modify factory settings |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetWatchdog | ( | uchar | val, |
char | ID | ||
) |
Set the watchdog duration in multiples of 125 microseconds on compatible devices. If the watchdog duration is exceeded before the device receives a new force command, the device firmware will disable forces. A value of 0 disables the watchdog feature.
val | watchdog duration in multiples of 125 [us] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdSetWristMotor | ( | ushort | mot0, |
ushort | mot1, | ||
ushort | mot2, | ||
char | ID | ||
) |
Set desired motor commands to the amplifier channels commanding the WRIST motors.
mot0 | WRIST axis 0 motor command |
mot1 | WRIST axis 1 motor command |
mot2 | WRIST axis 2 motor command |
ID | [default=-1] device ID (see multiple devices section for details) |
void __SDK dhdSleep | ( | double | sec | ) |
Sleep for a given period of time (OS independent).
sec | sleep period in [s] |
int __SDK dhdStartThread | ( | void * | funcvoid *, |
void * | arg, | ||
int | priority | ||
) |
Create a thread on any operating systems supported by the SDK.
func | function to run in the thread |
arg | optional pointer to an argument passed to the thread function |
priority | priority given to the thread (see the multi-threading section for details). The SDK will try to set the priority level, but will continue without error if the OS does not accept the request. |
int __SDK dhdStop | ( | char | ID | ) |
Stop the device. This routine disables the force on the haptic device and puts it into BRAKE mode.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdUpdateEncoders | ( | char | ID | ) |
Force an update of the internal encoder values in the state vector. This call retrieves the encoder readings from the device and places them into the state vector. No kinematic model is called.
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdWaitForReset | ( | int | timeout, |
char | ID | ||
) |
Puts the device in RESET mode and wait for the user to calibrate the device. Optionally, a timeout can be defined after which the call returns even if calibration has not occurred.
timeout | [optional] maximum time to wait for calibration in [ms] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdWristEncoderToOrientation | ( | int | enc0, |
int | enc1, | ||
int | enc2, | ||
double * | oa, | ||
double * | ob, | ||
double * | og, | ||
char | ID | ||
) |
For the DHD_DEVICE_DELTA6 devices, compute the Euler angles of the WRIST structure (around XYZ). For all other devices, compute individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles are computed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
enc0 | WRIST encoder reading on axis 0 |
enc1 | WRIST encoder reading on axis 1 |
enc2 | WRIST encoder reading on axis 2 |
oa | [out] WRIST end-effector orientation around the X axis [rad] |
ob | [out] WRIST end-effector orientation around the Y axis [rad] |
og | [out] WRIST end-effector orientation around the Z axis [rad] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdWristMotorToTorque | ( | ushort | mot0, |
ushort | mot1, | ||
ushort | mot2, | ||
int | enc0, | ||
int | enc1, | ||
int | enc2, | ||
double * | tx, | ||
double * | ty, | ||
double * | tz, | ||
char | ID | ||
) |
This routine computes and returns the torque applied to the end-effector for a given set of motor commands at a given orientation (defined by encoder readings).
mot0 | motor command around WRIST axis 0 |
mot1 | motor command around WRIST axis 1 |
mot2 | motor command around WRIST axis 2 |
enc0 | WRIST encoder reading around axis 0 |
enc1 | WRIST encoder reading around axis 1 |
enc2 | WRIST encoder reading around axis 2 |
tx | [out] torque on the WRIST end-effector around the X axis [Nm] |
ty | [out] torque on the WRIST end-effector around the Y axis [Nm] |
tz | [out] torque on the WRIST end-effector around the Z axis [Nm] |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdWristOrientationToEncoder | ( | double | oa, |
double | ob, | ||
double | og, | ||
int * | enc0, | ||
int * | enc1, | ||
int * | enc2, | ||
char | ID | ||
) |
For the DHD_DEVICE_DELTA6 devices, compute the encoder values from the Euler angles of the WRIST structure (around XYZ). For all other devices, compute the encoder values from individual angle of each joint, starting with the one located nearest to the WRIST base plate. For the DHD_DEVICE_OMEGA33 and DHD_DEVICE_OMEGA33_LEFT devices, angles must be expressed with respect to their internal reference frame, which is rotated 45 degrees around the Y axis. Please refer to your device user manual for more information on your device coordinate system.
oa | WRIST end-effector orientation around the X axis [rad] |
ob | WRIST end-effector orientation around the Y axis [rad] |
og | WRIST end-effector orientation around the Z axis [rad] |
enc0 | [out] WRIST encoder reading on axis 0 |
enc1 | [out] WRIST encoder reading on axis 1 |
enc2 | [out] WRIST encoder reading on axis 2 |
ID | [default=-1] device ID (see multiple devices section for details) |
int __SDK dhdWristTorqueToMotor | ( | double | tx, |
double | ty, | ||
double | tz, | ||
int | enc0, | ||
int | enc1, | ||
int | enc2, | ||
ushort * | mot0, | ||
ushort * | mot1, | ||
ushort * | mot2, | ||
char | ID | ||
) |
This routine computes and returns the motor command necessary to obtain a given torque on the end-effector at a given orientation (defined by encoder readings).
tx | torque on the WRIST end-effector around the X axis [Nm] |
ty | torque on the WRIST end-effector around the Y axis [Nm] |
tz | torque on the WRIST end-effector around the Z axis [Nm] |
enc0 | WRIST encoder reading on axis 0 |
enc1 | WRIST encoder reading on axis 1 |
enc2 | WRIST encoder reading on axis 2 |
mot0 | [out] motor command around WRIST axis 0 |
mot1 | [out] motor command around WRIST axis 1 |
mot2 | [out] motor command around WRIST axis 2 |
ID | [default=-1] device ID (see multiple devices section for details) |