HTTP
By default, the HTTP service starts on: http://localhost:10000
. Note: the port can be changed in the service's configuration.
Version
Method: GET
URL: http://localhost:10000/version
Response example:
{
"build_time": "2024-08-07T16:01:53Z",
"git_branch": "main",
"git_describe": "3.0.0-2-gce34c39e",
"git_hash": "ce34c39e",
"git_tag": "3.0.0",
"project_name": "haply-inverse-service",
"project_version": "3.0.0.0"
}
Devices
Method: GET
URL: http://localhost:10000/devices
Response example:
{
"inverse3": [
{
"device_id": "04BA",
"config": {
"type": "inverse3",
"device_info": {
"minor_version": 1,
"major_version": 7,
"id": "04BA",
"device_type": 4,
"uuid": "2D35F80DD9005F599B68F49944CB04BA"
},
"port": "COM13",
"extended_device_id": "2D35F80DD9005F599B68F49944CB04BA",
"extended_firmware_version": "8C20FDC8010AA1E15AA133CDA2534874",
"gravity_compensation": {
"enabled": true,
"scaling_factor": 1
},
"handedness": "right",
"torque_scaling": {
"enabled": true
}
},
"state": {
"angular_position": {
"a0": -69.31704,
"a1": 137.62952,
"a2": 19.832787
},
"angular_velocity": {
"a0": 0,
"a1": 0,
"a2": 0
},
"body_orientation": {
"x": -0.01940918,
"y": 0.7026367,
"z": 0.00048828125,
"w": 0.7113037
},
"cursor_position": {
"x": 0.07842738,
"y": -0.14836666,
"z": 0.14297646
},
"cursor_velocity": {
"x": -0.011969013,
"y": 0.0012009288,
"z": -0.043197
},
"mode": "idle"
},
"status": {
"calibrated": false,
"in_use": false,
"power_supply": true,
"ready": true,
"started": true
}
}
],
"verse_grip": [
{
"device_id": "61548",
"config": {
"port": "COM3",
"type": "verse_grip"
},
"state": {
"button": false,
"hall": 0,
"orientation": {
"x": -0.5019531,
"y": 0.8632202,
"z": -0.048095703,
"w": -0.022338867
}
},
"status": {
"error": 0,
"ready": true
}
}
],
"wireless_verse_grip": [
{
"device_id": "0",
"config": {
"port": "COM6",
"type": "wireless_verse_grip",
"major_version": 1,
"minor_version": 4,
"hardware_version": 1
},
"state": {
"battery_level": 0.816,
"battery_voltage": 3.77,
"buttons": {
"a": false,
"b": false,
"c": false
},
"hall": 16,
"orientation": {
"x": -0.019866943,
"y": -0.017486572,
"z": 0.05508423,
"w": -0.9963989
}
},
"status": {
"connected": true,
"awake": true,
"ready": true
}
}
]
}
Force Scale
Method: POST
URL: http://localhost:10000/force_scale
Body example:
{
"force_scale": 0.5
}
Response example:
{
"ok": true
}
Gravity Compensation
Method: POST
URL: http://localhost:10000/gravity_compensation
Body example:
{
"device_id": "049D",
"enable": true,
"gravity_scaling_factor": 0.8
}
Response example:
{
"ok": true
}
Torque scaling
Method: POST
URL: http://localhost:10000/torque_scaling
Body example:
{
"device_id": "049D",
"enable": true
}
Response example:
{
"ok": true
}
Device Handedness
Method: POST
URL: http://localhost:10000/device_handedness
Body example:
{
"device_id": "049D",
"handedness": "right"
}
Response example:
{
"ok": true
}
Save Configuration
Only works with Inverse3 devices. Warning: Avoid saving the configuration too often, since there is a limited number of save that can be applied to any given device.
Method: POST
URL: http://localhost:10000/save_configuration
Body example:
{
"device_id": "049D"
}
Response example:
{
"ok": true
}
Serial Enable
Enable or disable all the serial communication. When the serial communication is disabled it is impossible to send commands to the devices.
Method: POST
URL: http://localhost:10000/serial_enable
Body example:
{
"enable": true
}
Response example:
{
"ok": true
}
Grip Vertical Stopper
Enable or disable the grip vertical stopper experimental feature. This feature will check the wireless VerseGrip orientation to detect when the VerseGrip is dropped. When it triggers, it sets the Inverse3 into position control in its current position so that the end effector doesn't drop. It is disabled automatically when the VerseGrip is picked up again.
As an experimental feature it is disabled by default and needs to be explicitly enabled to activate.
Method: POST
URL: http://localhost:10000/experimental/features/grip_dropped_simulation_stopper
Body example:
{
"enable": true,
"hall_effect_threshold": 17
}
Response example:
{
"ok": true
}