Skip to content

Teleoperation

3D Mouse

Host Computer Sets 3D Mouse Parameters

Command: 0x4600

Parameter NameTypeRangeDescription
ABCint[4,6]Attitude control: 4 means A selected, 5 means B selected, 6 means C selected
mouseSendouble[4][0,300]3D mouse sensitivity list, including X direction sensitivity, Y direction sensitivity, Z direction sensitivity, attitude sensitivity

Request Example:

json
{
  "ABC": 4,
  "mouseSen": [128.0, 128.0, 128.0, 128.0]
}

Host Computer Queries 3D Mouse Parameters

Command: 0x4601

Request Example:

json
{}

Controller Replies 3D Mouse Parameters to Host Computer

Command: 0x4602

Parameter NameTypeRangeDescription
ABCint[4,6]Attitude control: 4 means A selected, 5 means B selected, 6 means C selected
enablebool-3D mouse enable
mouseSendouble[4][0,300]3D mouse sensitivity list, including X/Y/Z direction sensitivity and attitude sensitivity

Response Example:

json
{
  "ABC": 4,
  "enable": false,
  "mouseSen": [128.0, 128.0, 128.0, 128.0]
}

Host Computer Requests Marking 3D Mouse Zero Point

Command: 0x4603

Request Example:

json
{}

Host Computer Queries 3D Mouse Zero Point Marking Status

Command: 0x4604

Request Example:

json
{}

Controller Replies 3D Mouse Zero Point Marking Status to Host Computer

Command: 0x4605

Parameter NameTypeRangeDescription
zeroTaggedint[0,1]3D mouse zero point marking status: 0 means not marked, 1 means marked

Response Example:

json
{
  "zeroTagged": 0
}

Host Computer Requests Marking 3D Mouse Positive Direction

Command: 0x4606

Parameter NameTypeRangeDescription
axisint[1,3]Direction to mark: 1 for X direction, 2 for Y direction, 3 for Z direction

Request Example:

json
{
  "axis": 1
}

Host Computer Queries 3D Mouse Positive Direction Marking Status

Command: 0x4607

Request Example:

json
{}

Controller Replies 3D Mouse Positive Direction Marking Status to Host Computer

Command: 0x4608

Parameter NameTypeRangeDescription
xTaggedint[0,2]X positive direction marking status: 0 for uncalibrated, 1 for calibrated, 2 for communication failure
yTaggedint[0,2]Y positive direction marking status: 0 for uncalibrated, 1 for calibrated, 2 for communication failure
zTaggedint[0,2]Z positive direction marking status: 0 for uncalibrated, 1 for calibrated, 2 for communication failure

Response Example:

json
{
  "xTagged": 2,
  "yTagged": 0,
  "zTagged": 0
}

Host Computer Sets 3D Mouse Parameter Page Return

Command: 0x4609

Parameter NameTypeDescription
pageBackintHost computer page leaves 3D mouse parameter page

Request Example:

json
{
  "pageBack": 1
}

Host Computer Sets 3D Mouse Port Number

Command: 0x460A

Parameter NameTypeRangeDescription
portint[1,10]3D mouse port number

Request Example:

json
{
  "port": 1
}

Host Computer Queries 3D Mouse Port Number

Command: 0x460B

Request Example:

json
{}

Controller Replies 3D Mouse Port Number to Host Computer

Command: 0x460C

Parameter NameTypeRangeDescription
portint[1,10]3D mouse port number

Response Example:

json
{
  "port": 1
}

Six-Axis Force/Torque Sensor

Description

The six-axis force/torque sensor is installed at the robot end-effector, obtaining force variations through the sensor end sensing area.

The basic parameters of the six-axis force/torque sensor are set in 0x4000, including sensor mass and center of mass. They must be written before zero calibration calculation, otherwise the zero calibration calculation result will be incorrect.

When using the six-axis force/torque sensor for torque dragging and position dragging, no-load zero calibration must be performed after sensor installation. If additional drag handles need to be installed, payload calculation must be performed after zero calibration.

When using the six-axis force/torque sensor for torque dragging, friction compensation is performed when each axis torque conversion data exceeds the joint friction compensation threshold.

Host Computer Requests Calculation of Six-Axis Force/Torque Sensor Payload Parameters

Command: 0x4620

Request Example:

json
{}

Host Computer Queries Six-Axis Force/Torque Sensor Payload Parameter Calculation Results

Command: 0x4621

Request Example:

json
{}

Controller Replies Calculated Payload Parameters of Six-Axis Force/Torque Sensor to Host Computer

Command: 0x4622

Parameter NameTypeUnitDescription
isFinishedbool-Whether payload calculation trajectory has finished running (only exists when replying to 0x4620)
runSuccessbool-Whether payload parameters are calculated successfully (only exists when replying to 0x4620)
payloadMassdoublekgCalculated payload block mass (only exists when replying to 0x4621)
payloadMassCenterXdoublemCalculated payload block center of mass X (only exists when replying to 0x4621)
payloadMassCenterYdoublemCalculated payload block center of mass Y (only exists when replying to 0x4621)
payloadMassCenterZdoublemCalculated payload block center of mass Z (only exists when replying to 0x4621)

Response Example:

json
{
  "isFinished": true,
  "runSuccess": true,
  "payloadMass": 0.0,
  "payloadMassCenterX": 0.0,
  "payloadMassCenterY": 0.0,
  "payloadMassCenterZ": 0.0
}

Host Computer Queries Six-Axis Force/Torque Sensor Data

Command: 0x4623

Request Example:

json
{}

Controller Replies Six-Axis Force/Torque Sensor Data to Host Computer

Command: 0x4624

Parameter NameTypeUnitDescription
fxDatadoubleNSensor X direction force raw data
fyDatadoubleNSensor Y direction force raw data
fzDatadoubleNSensor Z direction force raw data
mxDatadoubleNmSensor X direction torque raw data
myDatadoubleNmSensor Y direction torque raw data
mzDatadoubleNmSensor Z direction torque raw data
peelOffValueobject-Sensor peel-off data, this node exists after sensor zero calibration
fxDataSubBasedoubleNSensor X direction force peel-off data
fyDataSubBasedoubleNSensor Y direction force peel-off data
fzDataSubBasedoubleNSensor Z direction force peel-off data
mxDataSubBasedoubleNmSensor X direction torque peel-off data
myDataSubBasedoubleNmSensor Y direction torque peel-off data
mzDataSubBasedoubleNmSensor Z direction torque peel-off data
sensorConnectbool-Sensor connection status: true for connected, false for not connected
torqueConvertDataobject-Axis torque values caused by additional force on six-axis force/torque sensor, this node exists when robot enters torque dragging
axis1DatadoublepermilAxis 1 torque conversion data
axis2DatadoublepermilAxis 2 torque conversion data
axis3DatadoublepermilAxis 3 torque conversion data
axis4DatadoublepermilAxis 4 torque conversion data
axis5DatadoublepermilAxis 5 torque conversion data
axis6DatadoublepermilAxis 6 torque conversion data

Response Example:

json
{
  "fxData": -7.48328,
  "fyData": 4.0964,
  "fzData": 34.09224,
  "mxData": 0.4361,
  "myData": -0.01078,
  "mzData": 0.1176,
  "peelOffValue": {
    "fxDataSubBase": 0.324231194364,
    "fyDataSubBase": -0.550949927519,
    "fzDataSubBase": 5.315393681562,
    "mxDataSubBase": 0.254721004374,
    "myDataSubBase": -0.23501051027,
    "mzDataSubBase": 0.003892025499
  },
  "sensorConnect": true,
  "torqueConvertData": {
    "axis1Data": 4.350304342178,
    "axis2Data": -31.252106163066,
    "axis3Data": -67.928968119182,
    "axis4Data": 8.274872052417,
    "axis5Data": 15.919933464577,
    "axis6Data": 0.318515582768
  }
}

Host Computer Requests Six-Axis Force/Torque Sensor Zero Calibration

Command: 0x4625

Request Example:

json
{}

Controller Replies Six-Axis Force/Torque Sensor Zero Calibration Result to Host Computer

Command: 0x4626

Parameter NameTypeDescription
isFinishedboolWhether zero calibration trajectory has finished running
isSavedboolWhether zero calibration data is saved successfully

Response Example:

json
{
  "isFinished": true,
  "isSaved": true
}

Host Computer Requests Saving Six-Axis Force/Torque Sensor Payload Calculation Result to Tool Hand

Command: 0x4627

Parameter NameTypeRangeDescription
targetToolint[1,999]Tool hand number to save to

Request Example:

json
{
  "targetTool": 5
}

Controller Replies Six-Axis Force/Torque Sensor Payload Calculation Result Saved to Tool Hand

Command: 0x4628

Parameter NameTypeDescription
resultboolWhether data is saved successfully

Response Example:

json
{
  "result": true
}

Host Computer Sets Joint Friction Compensation Threshold

Command: 0x4629

Parameter NameTypeRangeDescription
sensorJointThreshold1int[1,999999]Axis 1 joint friction compensation threshold
sensorJointThreshold2int[1,999999]Axis 2 joint friction compensation threshold
sensorJointThreshold3int[1,999999]Axis 3 joint friction compensation threshold
sensorJointThreshold4int[1,999999]Axis 4 joint friction compensation threshold
sensorJointThreshold5int[1,999999]Axis 5 joint friction compensation threshold
sensorJointThreshold6int[1,999999]Axis 6 joint friction compensation threshold

Request Example:

json
{
  "sensorJointThreshold1": 50,
  "sensorJointThreshold2": 50,
  "sensorJointThreshold3": 50,
  "sensorJointThreshold4": 50,
  "sensorJointThreshold5": 50,
  "sensorJointThreshold6": 50
}

Host Computer Queries Joint Friction Compensation Coefficient

Command: 0x462A

Request Example:

json
{}

Controller Replies Joint Friction Compensation Coefficient to Host Computer

Command: 0x462B

Parameter NameTypeRangeDescription
sensorJointThreshold1int[1,999999]Axis 1 joint friction compensation threshold
sensorJointThreshold2int[1,999999]Axis 2 joint friction compensation threshold
sensorJointThreshold3int[1,999999]Axis 3 joint friction compensation threshold
sensorJointThreshold4int[1,999999]Axis 4 joint friction compensation threshold
sensorJointThreshold5int[1,999999]Axis 5 joint friction compensation threshold
sensorJointThreshold6int[1,999999]Axis 6 joint friction compensation threshold

Response Example:

json
{
  "sensorJointThreshold1": 50,
  "sensorJointThreshold2": 50,
  "sensorJointThreshold3": 50,
  "sensorJointThreshold4": 50,
  "sensorJointThreshold5": 50,
  "sensorJointThreshold6": 50
}

Host Computer Sets Sensor Basic Parameters

Command: 0x4630

Parameter NameTypeDescription
sensorMassdoubleSensor mass
sensorMassCenterXdoubleSensor center of mass X
sensorMassCenterYdoubleSensor center of mass Y
sensorMassCenterZdoubleSensor center of mass Z

Request Example:

json
{
  "sensorMass": 0,
  "sensorMassCenterX": 0,
  "sensorMassCenterY": 0,
  "sensorMassCenterZ": 0
}

Host Computer Gets Sensor Basic Parameters

Command: 0x4631

Request Example:

json
{}

Controller Replies Sensor Basic Parameters

Command: 0x4632

Parameter NameTypeDescription
sensorMassdoubleSensor mass
sensorMassCenterXdoubleSensor center of mass X
sensorMassCenterYdoubleSensor center of mass Y
sensorMassCenterZdoubleSensor center of mass Z

Response Example:

json
{
  "sensorMass": 0,
  "sensorMassCenterX": 0,
  "sensorMassCenterY": 0,
  "sensorMassCenterZ": 0
}

Sensor Peel-Off Data Clear

Command: 0x4633

Request Example:

json
{}

Sensor Data Calibration

Command: 0x4634

Request Example:

json
{}

Controller Replies Sensor Data Calibration Result

Command: 0x4635

Parameter NameTypeDescription
runSuccessboolTrajectory execution result
isFinishedboolCalibration finished

Response Example:

json
{
  "runSuccess": true,
  "isFinished": true
}

Host Computer Sets Six-Axis Force/Torque Sensor Communication Parameters

Command: 0x462C

Parameter NameTypeRange/ValueDescription
etherCat.mapNumint-Selected communication device number: 0 for not selected
modbus.RTU.endianint[0,3]FLOAT endian: 0 for AB CD, 1 for CD AB, 2 for BA DC, 3 for DC BA
modbus.RTU.checkBitstring'N','E','O'Check bit
modbus.RTU.dataBitint[5,8]Data bits
modbus.RTU.stopBitint[1,2]Stop bits
modbus.RTU.addressNumint[0,125]Number of slave addresses
modbus.RTU.addressTypeint[0,1]Address type: 0 for 3x, 1 for 4x
modbus.RTU.baudRateint-Baud rate
modbus.RTU.firstAddressint(0,65535]Register first address
modbus.RTU.portint(0,65535]Port number
modbus.RTU.slaveIDint(0,65535]Slave ID
modbus.TCP.IPstring-IP address
modbus.TCP.portint(0,65535]Port number
modbus.TCP.addressTypeint[0,1]Address type: 0 for 3x, 1 for 4x
modbus.TCP.firstAddressint[0,65535]Register first address
modbus.TCP.addressNumint[0,125]Number of slave addresses
modbus.TCP.endianint[0,3]FLOAT endian: 0 for AB CD, 1 for CD AB, 2 for BA DC, 3 for DC BA
YDirectionint1/-1Sensor Y direction: 1 for Y positive direction pointing left, -1 for Y positive direction pointing right
originDataInitialParaint[0,999]Raw data starting variable: 0 for none, other values indicate storage to global variable position, sequentially storing six sensor raw data values
sensorCommunicationTypeint[0,1]Sensor communication type: 0 for etherCat, 1 for Modbus RTU
sensorConnectStatusbool-Sensor communication enable (this node can be set independently)
sensorDragEnablebool-Sensor drag enable: false means sensor data does not participate in torque drag calculation
startupAutoConnectSensorbool-Auto-connect sensor on startup

Request Example:

json
{
  "etherCat": {
    "mapNum": 0
  },
  "modbus": {
    "RTU": {
      "endian": 1,
      "checkBit": "N",
      "dataBit": 5,
      "stopBit": 1,
      "addressNum": 1,
      "addressType": 0,
      "baudRate": 115200,
      "firstAddress": 1,
      "port": 1,
      "slaveID": 1
    },
    "TCP": {
      "IP": "192.168.1.14",
      "port": 503,
      "addressType": 0,
      "firstAddress": 1,
      "addressNum": 1,
      "endian": 1
    }
  },
  "YDirection": 1,
  "originDataInitialPara": 0,
  "sensorCommunicationType": 0,
  "sensorConnectStatus": false,
  "sensorDragEnable": true,
  "startupAutoConnectSensor": true
}

Host Computer Queries Six-Axis Force/Torque Sensor Communication Parameters

Command: 0x462D

Request Example:

json
{}

Controller Replies Six-Axis Force/Torque Sensor Communication Parameters to Host Computer

Command: 0x462E

Parameter NameTypeRange/ValueDescription
etherCat.mapNumint-Selected communication device number: 0 for not selected
modbus.RTU.endianint[0,3]FLOAT endian: 0 for AB CD, 1 for CD AB, 2 for BA DC, 3 for DC BA
modbus.RTU.checkBitstring'N','E','O'Check bit
modbus.RTU.dataBitint[5,8]Data bits
modbus.RTU.stopBitint[1,2]Stop bits
modbus.RTU.addressNumint[0,125]Number of slave addresses
modbus.RTU.addressTypeint[0,1]Address type: 0 for 3x, 1 for 4x
modbus.RTU.baudRateint-Baud rate
modbus.RTU.firstAddressint(0,65535]Register first address
modbus.RTU.portint(0,65535]Port number
modbus.RTU.slaveIDint(0,65535]Slave ID
modbus.TCP.IPstring-IP address
modbus.TCP.portint(0,65535]Port number
modbus.TCP.addressTypeint[0,1]Address type: 0 for 3x, 1 for 4x
modbus.TCP.firstAddressint[0,65535]Register first address
modbus.TCP.addressNumint[0,125]Number of slave addresses
modbus.TCP.endianint[0,3]FLOAT endian: 0 for AB CD, 1 for CD AB, 2 for BA DC, 3 for DC BA
YDirectionint1/-1Sensor Y direction: 1 for Y positive direction pointing left, -1 for Y positive direction pointing right
originDataInitialParaint[0,999]Raw data starting variable: 0 for none, other values indicate storage to global variable position, sequentially storing six sensor raw data values
sensorCommunicationTypeint[0,1]Sensor communication type: 0 for etherCat, 1 for Modbus RTU
sensorConnectStatusbool-Sensor communication enable (this node can be set independently)
sensorDragEnablebool-Sensor drag enable: false means sensor data does not participate in torque drag calculation
startupAutoConnectSensorbool-Auto-connect sensor on startup

Response Example:

json
{
  "etherCat": {
    "mapNum": 0
  },
  "modbus": {
    "RTU": {
      "endian": 1,
      "checkBit": "N",
      "dataBit": 5,
      "stopBit": 1,
      "addressNum": 1,
      "addressType": 0,
      "baudRate": 115200,
      "firstAddress": 1,
      "port": 1,
      "slaveID": 1
    },
    "TCP": {
      "IP": "192.168.1.14",
      "port": 503,
      "addressType": 0,
      "firstAddress": 1,
      "addressNum": 1,
      "endian": 1
    }
  },
  "YDirection": 1,
  "originDataInitialPara": 0,
  "sensorCommunicationType": 0,
  "sensorConnectStatus": false,
  "sensorDragEnable": true,
  "startupAutoConnectSensor": true
}

Host Computer Sets Six-Axis Force/Torque Sensor Admittance Drag Parameters

Command: 0x408E

Parameter NameTypeRangeDescription
dragDamperdouble[6]First 3 [0,100], last 3 [0,50]Damping coefficient list, under Cartesian coordinate system XYZABC
dragInPosMaxAngleVeldouble(0,90]Drag maximum angular velocity, unit: deg/s
dragInPosMaxVeldouble(0,2]Drag maximum linear velocity, unit: m/s
dragInPosModeint[0,2]Drag mode: 0 for free drag, 1 for position drag, 2 for pose drag
dragMassdouble[6]First 3 [5,100], last 3 [0.3,30]Mass coefficient list
dragChangeRatedouble[6]-Change rate threshold
dragTh.xyzdouble-Position start threshold
dragTh.abcdouble-Attitude start threshold

Request Example:

json
{
  "dragDamper": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "dragInPosMaxAngleVel": 5.0,
  "dragInPosMaxVel": 2.0,
  "dragInPosMode": 0,
  "dragMass": [5.0, 5.0, 5.0, 0.30, 0.30, 0.30],
  "dragChangeRate": [10, 10, 10, 5, 5, 5],
  "dragTh": {
    "xyz": 5,
    "abc": 1
  }
}

Host Computer Queries Six-Axis Force/Torque Sensor Admittance Drag Parameters

Command: 0x408F

Parameter NameTypeRangeDescription
dragInPosModeint[0,2]Drag mode: 0 for free drag, 1 for position drag, 2 for pose drag

Request Example:

json
{
  "dragInPosMode": 0
}

Controller Replies Six-Axis Force/Torque Sensor Admittance Drag Parameters to Host Computer

Command: 0x4090

Parameter NameTypeRangeDescription
dragDamperdouble[6]First 3 [0,100], last 3 [0,50]Damping coefficient list, under Cartesian coordinate system XYZABC
dragInPosMaxAngleVeldouble(0,90]Drag maximum angular velocity, unit: deg/s
dragInPosMaxVeldouble(0,2]Drag maximum linear velocity, unit: m/s
dragInPosModeint[0,2]Drag mode: 0 for free drag, 1 for position drag, 2 for pose drag
dragMassdouble[6]First 3 [5,100], last 3 [0.3,30]Mass coefficient list
dragChangeRatedouble[6]-Change rate threshold
dragTh.xyzdouble-Position start threshold
dragTh.abcdouble-Attitude start threshold

Response Example:

json
{
  "dragDamper": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "dragInPosMaxAngleVel": 5.0,
  "dragInPosMaxVel": 2.0,
  "dragInPosMode": 0,
  "dragMass": [5.0, 5.0, 5.0, 0.30, 0.30, 0.30],
  "dragChangeRate": [10, 10, 10, 5, 5, 5],
  "dragTh": {
    "xyz": 5,
    "abc": 1
  }
}

Joint Torque Sensor Drag

Set Joint Sensor Parameters

Command: 0x4636

Parameter NameTypeDescription
jointSensorSwitchboolEnable sensor

Request Example:

json
{
  "jointSensorSwitch": true
}

Get Sensor Parameters

Command: 0x4637

Request Example:

json
{}

Return Sensor Parameters

Command: 0x4638

Parameter NameTypeDescription
jointSensorSwitchboolSensor enabled: true for enabled, false for not enabled

Response Example:

json
{
  "jointSensorSwitch": true
}

Get Sensor Data

Command: 0x4639

Request Example:

json
{}

Return Sensor Data

Command: 0x463A

Parameter NameTypeDescription
jointSensorConnectboolSensor connection status: true for connected, false for not connected
axis1DatadoubleAxis 1 sensor data
axis2DatadoubleAxis 2 sensor data
axis3DatadoubleAxis 3 sensor data
axis4DatadoubleAxis 4 sensor data
axis5DatadoubleAxis 5 sensor data
axis6DatadoubleAxis 6 sensor data

Response Example:

json
{
  "jointSensorConnect": true,
  "axis1Data": 1,
  "axis2Data": 1,
  "axis3Data": 1,
  "axis4Data": 1,
  "axis5Data": 1,
  "axis6Data": 1
}