Skip to content

Dynamics

Payload Enable

  • Description
  • When using torque dragging, payload enable must be turned on and the actual torque conversion ratio must be modified
  • The actual torque conversion ratio is the ratio for converting values in Nm units to servo 0x6077 values. This ratio is usually provided by the servo manufacturer.
  • Sensor parameters are provided by the sensor manufacturer. Center of mass X and center of mass Y are usually 0, and center of mass Z is half the sensor height.
  • Host Computer Sets Payload Enable Parameters

Command: 0x4000

  • "axis1_actual_torq_conversion_ratio":8.5470
  • Axis 1 actual torque conversion ratio; double type
  • "axis2_actual_torq_conversion_ratio":8.6960
  • Axis 2 actual torque conversion ratio; double type
  • "axis3_actual_torq_conversion_ratio":10.0
  • Axis 3 actual torque conversion ratio; double type
  • "axis4_actual_torq_conversion_ratio":10.0
  • Axis 4 actual torque conversion ratio; double type
  • "axis5_actual_torq_conversion_ratio":10.0
  • Axis 5 actual torque conversion ratio; double type
  • "axis6_actual_torq_conversion_ratio":10.0
  • Axis 6 actual torque conversion ratio; double type
  • "payload_enable":false
json
{
  "axis1_actual_torq_conversion_ratio":8.5470,
  "axis2_actual_torq_conversion_ratio":8.6960,
  "axis3_actual_torq_conversion_ratio":10.0,
  "axis4_actual_torq_conversion_ratio":10.0,
  "axis5_actual_torq_conversion_ratio":10.0,
  "axis6_actual_torq_conversion_ratio":10.0,
  "payload_enable":false
}
  • Payload enable; bool type
  • Host Computer Queries Payload Enable Parameters
json
{}

Command: 0x4001

  • Controller Replies Payload Enable Parameters to Host Computer

Query Payload Enable Parameters (Actual Torque Conversion Ratio)

Command: 0x4002

Controller Reply

FieldTypeDescription
axis1_actual_torq_conversion_ratiodoubleAxis 1 actual torque conversion ratio
axis2_actual_torq_conversion_ratiodoubleAxis 2 actual torque conversion ratio
axis3_actual_torq_conversion_ratiodoubleAxis 3 actual torque conversion ratio
axis4_actual_torq_conversion_ratiodoubleAxis 4 actual torque conversion ratio
axis5_actual_torq_conversion_ratiodoubleAxis 5 actual torque conversion ratio
axis6_actual_torq_conversion_ratiodoubleAxis 6 actual torque conversion ratio
payload_enableboolPayload enable
json
{
  "axis1_actual_torq_conversion_ratio": 8.5470,
  "axis2_actual_torq_conversion_ratio": 8.6960,
  "axis3_actual_torq_conversion_ratio": 10.0,
  "axis4_actual_torq_conversion_ratio": 10.0,
  "axis5_actual_torq_conversion_ratio": 10.0,
  "axis6_actual_torq_conversion_ratio": 10.0,
  "payload_enable": false
}
  • Payload enable; bool type
  • Host Computer Sets Payload Enable Process Number

Command: 0x4003

  • "payload_num":1
json
{
  "payload_num":1
}
  • Payload enable process number; int type
  • Controller Replies Payload Enable Process Number to Host Computer

Command: 0x4004

  • "payload_num":1
json
{
  "payload_num":1
}

External Buttons

  • Payload enable process number; int type
  • Description
  • Corresponding functions can be triggered via IO, in queue order: drag mode, jog mode, start trajectory collection, end trajectory collection, start trajectory playback, stop trajectory playback, enable, disable, gripper open, gripper close, save trajectory, quick command 1, quick command 2, quick command 3, quick command 4, quick command 5
  • Quick command range [0,9], 0 means unselected, 1 means point-to-point command, 2 means linear command, 3 means arc command, 4 means full circle command, 5 means curve command, 6 means welding start command, 7 means welding end command, 8 means weave welding start command, 9 means weave welding end command
  • Host Computer Queries Function Control Parameters
json
{}

Command: 0x4020

  • Controller Replies Function Control Parameters to Host Computer

Command: 0x4021

  • "IoInPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Function trigger port list; int type
  • Range equals current IO port count, 0 when no IO
  • "fastCommand":[0,0,0,0,0]
  • Quick command function selection list; int type, range [0,9]
  • "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Trigger hardware type list; int type
  • Default is IO trigger
  • "isClearTrack":0
  • Clear trajectory after saving; int type, range [0,1]
  • 0 means clear, 1 means not clear
  • "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
  • Port trigger parameter list; int type, range [0,1]
  • "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
  • Port trigger mode list; int type, range [0,2]
  • 0 means long press, 1 means short press, 2 means latch
  • "craft":{
  • "weldBeadSize":2
  • Multi-layer multi-pass weld current pass number; int type; value range: 1-99
  • "dragTeachSelectCraft":0
json
{
  "IoInPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "fastCommand":[0,0,0,0,0],
  "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "isClearTrack":0,
  "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
  "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
  "craft":
  {
    "weldBeadSize":2
  },
  "dragTeachSelectCraft":0
}
  • Drag teaching process selection; int type; value range [0,1]
  • Host Computer Queries Status Prompt Parameters
json
{}

Command: 0x4022

  • Controller Replies Status Prompt Parameters to Host Computer

Command: 0x4023

  • "IoDoutPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Function trigger port list; int type
  • Range equals current IO port count, 0 when no IO
  • "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Trigger hardware type list; int type
  • Default is IO trigger
  • "parameterArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
json
{
  "IoDoutPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "parameterArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}
  • Port trigger parameter list; int type, range [0,2]
  • 0 means 0, 1 means 1, 2 means blinking
  • Host Computer Sets Function Control or Status Prompt Parameters

Command: 0x4024

  • "_isFunctionalControl":true
  • Whether it is function control parameters; bool type
  • true for function control parameter setting, false for status prompt parameter setting
  • "fastCommand":[0,0,0,0,0]
  • Quick command function selection list; int type, range [0,9]
  • "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Trigger hardware type list; int type
  • Default is IO trigger
  • "isClearTrack":0
  • Clear trajectory after saving; int type, range [0,1]
  • 0 means clear, 1 means not clear
  • "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
  • Port trigger mode list; int type, range [0,2]
  • Representing "long press", "short press", and "latch" respectively
  • "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
  • Port trigger parameter list; int type
  • Range [0,1] for function control
  • Range [0,2] for status prompt parameters, 2 means "blinking"
  • "portArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Function trigger port list; int type
  • Range equals current IO port count, 0 when no IO
  • "dragTeachSelectCraft":0
json
{
  "_isFunctionalControl":true,
  "fastCommand":[0,0,0,0,0],
  "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "isClearTrack":0,
  "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
  "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
  "portArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
  "dragTeachSelectCraft":0
}
  • Drag teaching process selection; int type; value range [0,1]
  • Controller Sends Quick Insert Command

Command: 0x4025

  • "fastCommandSelectd":1
  • Selected quick function; int type, range [0,9]
  • When value is in [1,5], the "pos" and "posture" nodes exist
  • "name":11
  • Quick function number; int type, range [11,15]
  • Representing quick functions 1~5 respectively
  • "pos":[0.0,0.0,0.0,0.0,0.0,0.0,0.0]
  • Insert command position information list; double type
  • Length 7
  • "posture":8
json
{
  "fastCommandSelectd":1,
  "name":11,
  "pos":[0.0,0.0,0.0,0.0,0.0,0.0,0.0],
  "posture":8
}

Dynamics Parameters

  • Insert command position posture; int type, range [0,9]
  • Description
  • Before performing torque dragging, a dynamics identification must be performed first
  • Host Computer Sets Dynamics Parameters

Command: 0x4030

  • "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0]
  • Dynamics parameter list; double type
  • The 1st value represents mass, 2nd represents center of mass X, 3rd represents center of mass Y, 4th represents center of mass Z, 5th represents inertia tensor XX, 6th represents inertia tensor XY, 7th represents inertia tensor XZ, 8th represents inertia tensor YY, 9th represents inertia tensor YZ, 10th represents inertia tensor ZZ, 11th represents dynamic friction coefficient, 12th represents static friction coefficient
  • "joint_num":6
json
{
  "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0],
  "joint_num":6
}
  • Robot axis count; int type
  • Host Computer Queries Dynamics Parameters
json
{}

Command: 0x4031

  • Controller Replies Dynamics Parameters to Host Computer

Command: 0x4032

  • "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0]
  • Dynamics parameter list; double type
  • The 1st value represents mass, 2nd represents center of mass X, 3rd represents center of mass Y, 4th represents center of mass Z, 5th represents inertia tensor XX, 6th represents inertia tensor XY, 7th represents inertia tensor XZ, 8th represents inertia tensor YY, 9th represents inertia tensor YZ, 10th represents inertia tensor ZZ, 11th represents dynamic friction coefficient, 12th represents static friction coefficient
  • "joint_num":6
json
{
  "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0],
  "joint_num":6
}
  • Robot axis count; int type
  • Host Computer Requests Parameter Identification
json
{}

Command: 0x4033

  • Controller Replies Parameter Identification Result to Host Computer

Command: 0x4034

  • "finish":false
json
{
  "finish":false
}
  • Identification finished; bool type
  • Host Computer Requests Start Identification
json
{}

Command: 0x4035

  • Controller Replies Identification Error Values to Host Computer

Command: 0x4036

  • "error":[0.0,0.0,0.0,0.0,0.0,0.0]
json
{
  "error":[0.0,0.0,0.0,0.0,0.0,0.0]
}
  • Torque error list; double type
  • Controller Replies Identification Result to Host Computer

Command: 0x4037

  • "finish":1
json
{
  "finish":1
}
  • Identification result; int type
  • Controller Sends Error Stop During Identification to Host Computer

Command: 0x4038

  • "ErrorStop":1
json
{
  "ErrorStop":1
}

Payload Identification

  • Error stop; int type
  • Host Computer Requests Payload Identification Data

Command: 0x4040

  • data: none
  • Host Computer Requests Identification Calculation of Payload Mass and Center of Mass

Command: 0x4041

  • data: none
  • Host Computer Requests Identification Calculation of Inertia

Command: 0x4042

  • data: none
  • Controller Replies Payload Identification Result (payload mass and center of mass / inertia) or payload data

Command: 0x4043

  • "result":true
  • Payload identification result; bool type;
  • true: payload identification successful (display data); false: payload identification failed
  • "mass":3.6
  • Mass; double type; kg
  • "massCenterX":0.53
  • Center of mass X; double type; m
  • "massCenterY":2.3
  • Center of mass Y; double type; m
  • "massCenterZ":1.3
  • Center of mass Z; double type; m
  • "Ixx":0.0
  • Inertia X; double type; kg*m^2
  • "Iyy":0.0
  • Inertia Y; double type; kg*m^2
  • "Izz":0.0
json
{
"result":true,
"mass":3.6,
"massCenterX":0.53,
"massCenterY":2.3,
"massCenterZ":1.3,
"Ixx":0.0,
"Iyy":0.0,
"Izz":0.0
}
  • Inertia Z; double type; kg*m^2
  • Host Computer Requests Saving Payload Data to Corresponding Tool Hand

Command: 0x4044

  • "targetTool":1
json
{
"targetTool":1
}
  • Tool hand number to save to; int type; value range [1,999]
  • Controller Replies Saving Payload Data to Corresponding Tool Hand

Command: 0x4045

  • "result":true
json
"result":true
  • Whether save is successful; bool type
  • true: save successful; false: save failed
  • Host Computer Requests No-Load Identification

Command: 0x4046

  • data: none
  • Controller Replies No-Load Identification Result

Command: 0x4047

  • "result":true
json
{
"result":true
}
  • No-load identification result; bool type;
  • true: no-load identification successful; false: no-load identification failed
  • Host Computer Requests Download No-Load Configuration File Data

Command: 0x4048

  • data: none
  • Controller Replies Download No-Load Configuration File Data

Command: 0x4049

  • "name":"config/identification_xxxxx.json"
json
{
"name":"config/identification_xxxxx.json"
}

Soft Float Parameters

  • Configuration file path on controller; string type
  • xxxx is the time obtained from BIOS
  • Host Computer Gets Soft Float Parameters

Command: 0x404A

  • "softfloat":{}
  • "num":0
json
{
  "softfloat":
  {
    "num":0
  }
}
  • Corresponds to the process number of parameters 1-9; type int; value range [0-8]
  • Controller Replies Soft Float Parameters

Command: 0x404B

  • "softfloat":{}
  • "num":0
  • Corresponds to the process number of parameters 1-9; type int; value range [0-8]
  • "percentage"[j][k]:[]
  • Corresponds to joint, Cartesian, tool, user; type int; range j(0-3) k(0-6)
  • Softness percentage in each coordinate system (e.g.: joint j1 j2 j3 ...; Cartesian X Y Z A..)
  • "coord":0
  • Corresponds to the coordinate system type selected by process number (joint, Cartesian, tool, user); type int; range 0-3
  • "note":"xxxx"
json
{
  "softfloat":
  {
    "num":0,
    "percentage":
    [
      [],[]......
    ]
    "coord":0,
    "note":"xxxx"
  }
}
  • Meaning note; type string
  • Host Computer Sends Soft Float Parameter Settings

Command: 0x404C

  • "softfloat":{}
  • "num":0
  • Corresponds to the process number of parameters 1-9; type int; value range [0-8]
  • "percentage"[j]:[]
  • Corresponds to joint, Cartesian, tool, user; type int; range j(0-3)
  • Softness percentage in each coordinate system
  • "coord":0
  • Corresponds to the coordinate system type selected by process number (joint, Cartesian, tool, user); type int; range 0-3
  • "note":"xxxx"
json
{
  "softfloat":
  {
    "num":0,
    "percentage":
    [
      ......
    ]
    "coord":0,
    "note":"xxxx"
  }
}

Safety Status

  • Meaning note; type string
  • Host Computer Queries Safety Status (test whether identification trajectory is safe)
json
{}

Command: 0x407A

  • Controller Replies Safety Status to Host Computer

Command: 0x407B

json
{
  "finish":1
}
  • "finish":1
  • Identification result; int type
  • Host Computer Requests Setting Identification Trajectory Parameters

Command: 0x4077

  • "traSize":10.0
  • Identification trajectory range; int type, range [1,100]
  • Please enter a smaller value for the first time
  • "traVel":100.0
json
{
  "traSize":10.0,
  "traVel":100.0
}
  • Identification trajectory speed; int type, range [1,100]
  • Please first test safety at low speed, use 100 for identification
  • Host Computer Queries Identification Trajectory Parameters
json
{}

Command: 0x4078

  • Controller Replies Identification Trajectory Parameters to Host Computer

Command: 0x4079

  • "alreadyIden":false
  • Whether identification has been completed; bool type
  • "traSize":10.0
  • Identification trajectory range; int type, range [1,100]
  • "traVel":10.0
json
{
  "alreadyIden":false,
  "traSize":10.0,
  "traVel":10.0
}
  • Identification trajectory speed; int type, range [1,100]
  • Controller Replies Current Trajectory Z Extrema to Host Computer

Command: 0x407C

  • "zMax":636.712935786949
  • Current trajectory Z maximum value; double type
  • "zMin":505.396403159378
json
{
  "zMax":636.712935786949,
  "zMin":505.396403159378
}

Adaptive Acceleration/Deceleration

  • Current trajectory Z minimum value; double type
  • Description
  • Host Computer Sets Adaptive Acceleration/Deceleration Threshold Parameters

Command: 0x4050

  • "Inertia_or_mass_or_both":[0,0,0,0,0,0]
  • Per-axis limit condition list; int type, range [0,2]
  • 0 for "inertia", 1 for "mass", 2 for "parallel"
  • "Load_or_center":[0,0,0,0,0,0]
  • Per-axis reference point list; int type, range [0,1]
  • 0 for "load", 1 for "center of rotation"
  • "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]]
  • Per-axis inertia acceleration 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the acceleration values in the speed-inertia-acceleration-inertia list
  • "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
  • Per-axis inertia speed 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the speed values in the speed-inertia-acceleration-inertia list
  • "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  • Per-axis mass acceleration 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the acceleration values in the speed-mass-acceleration-mass list
  • "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
  • Per-axis mass speed 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the speed values in the speed-mass-acceleration-mass list
  • "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis inertia-speed corresponding inertia 2D array; double type, range [0,100000] 0.001 kg*m^2
  • First dimension represents each axis, second dimension represents the inertia values corresponding to speed in the speed-inertia-acceleration-inertia list
  • "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis inertia-acceleration corresponding inertia 2D array; double type, range [0,100000] 0.001 kg*m^2
  • First dimension represents each axis, second dimension represents the inertia values corresponding to acceleration in the speed-inertia-acceleration-inertia list
  • "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis mass-speed corresponding mass 2D array; double type, range [0,100000] kg
  • First dimension represents each axis, second dimension represents the mass values corresponding to speed in the speed-mass-acceleration-mass list
  • "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
json
{
  "Inertia_or_mass_or_both":[0,0,0,0,0,0],
  "Load_or_center":[0,0,0,0,0,0],
  "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
  "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
  "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
}
  • Per-axis mass-acceleration corresponding mass 2D array; double type, range [0,100000] kg
  • First dimension represents each axis, second dimension represents the mass values corresponding to acceleration in the speed-mass-acceleration-mass list
  • Host Computer Queries Adaptive Acceleration/Deceleration Threshold Parameters
json
{}

Command: 0x4051

  • Controller Replies Adaptive Acceleration/Deceleration Threshold Parameters to Host Computer

Command: 0x4052

  • "Inertia_or_mass_or_both":[0,0,0,0,0,0]
  • Per-axis limit condition list; int type, range [0,2]
  • 0 for "inertia", 1 for "mass", 2 for "parallel"
  • "Load_or_center":[0,0,0,0,0,0]
  • Per-axis reference point list; int type, range [0,1]
  • 0 for "load", 1 for "center of rotation"
  • "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]]
  • Per-axis inertia acceleration 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the acceleration values in the speed-inertia-acceleration-inertia list
  • "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
  • Per-axis inertia speed 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the speed values in the speed-inertia-acceleration-inertia list
  • "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  • Per-axis mass acceleration 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the acceleration values in the speed-mass-acceleration-mass list
  • "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
  • Per-axis mass speed 2D array; double type, range (0,100]%
  • First dimension represents each axis, second dimension represents the speed values in the speed-mass-acceleration-mass list
  • "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis inertia-speed corresponding inertia 2D array; double type, range [0,100000] 0.001 kg*m^2
  • First dimension represents each axis, second dimension represents the inertia values corresponding to speed in the speed-inertia-acceleration-inertia list
  • "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis inertia-acceleration corresponding inertia 2D array; double type, range [0,100000] 0.001 kg*m^2
  • First dimension represents each axis, second dimension represents the inertia values corresponding to acceleration in the speed-inertia-acceleration-inertia list
  • "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
  • Per-axis mass-speed corresponding mass 2D array; double type, range [0,100000] kg
  • First dimension represents each axis, second dimension represents the mass values corresponding to speed in the speed-mass-acceleration-mass list
  • "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
json
{
  "Inertia_or_mass_or_both":[0,0,0,0,0,0],
  "Load_or_center":[0,0,0,0,0,0],
  "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
  "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
  "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
  "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
  "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
}
  • Per-axis mass-acceleration corresponding mass 2D array; double type, range [0,100000] kg
  • First dimension represents each axis, second dimension represents the mass values corresponding to acceleration in the speed-mass-acceleration-mass list
  • Host Computer Sets Adaptive Acceleration/Deceleration Parameters

Command: 0x4053

  • "arm_inertia":[0.0,0.0,0.0]
  • Joint arm inertia list; double type, range [0,99999.9] 0.001 kg*m^2
  • Representing "Joint 1 arm inertia", "Joint 2 arm inertia", "Joint 3 arm inertia" respectively
  • "auto_modify_acc_enable":false
  • Adaptive acceleration/deceleration enable; bool type
  • "joint1_mass":0.0
  • Joint 1 mass; double type, range [0,99999.9] kg
  • "joint1_mass_center_to_motor_distance":0.0
  • Joint 1 center of mass to motor distance; double type, range [0,99999.9] m
  • "joint2_mass":0.0
  • Joint 2 mass; double type, range [0,99999.9] kg
  • "joint2_mass_center_to_motor_distance":0.0
  • Joint 2 center of mass to motor distance; double type, range [0,99999.9] m
  • "joint4_mass":0.0
json
{
  "arm_inertia":[0.0,0.0,0.0],
  "auto_modify_acc_enable":false,
  "joint1_mass":0.0,
  "joint1_mass_center_to_motor_distance":0.0,
  "joint2_mass":0.0,
  "joint2_mass_center_to_motor_distance":0.0,
  "joint4_mass":0.0
}
  • Joint 4 mass; double type, range [0,99999.9] kg
  • Host Computer Queries Adaptive Acceleration/Deceleration Parameters
json
{}

Command: 0x4054

  • Controller Replies Adaptive Acceleration/Deceleration Parameters to Host Computer

Command: 0x4055

  • "arm_inertia":[0.0,0.0,0.0]
  • Joint arm inertia list; double type, range [0,99999.9] 0.001 kg*m^2
  • Representing "Joint 1 arm inertia", "Joint 2 arm inertia", "Joint 3 arm inertia" respectively
  • "auto_modify_acc_enable":false
  • Adaptive acceleration/deceleration enable; bool type
  • "joint1_mass":0.0
  • Joint 1 mass; double type, range [0,99999.9] kg
  • "joint1_mass_center_to_motor_distance":0.0
  • Joint 1 center of mass to motor distance; double type, range [0,99999.9] m
  • "joint2_mass":0.0
  • Joint 2 mass; double type, range [0,99999.9] kg
  • "joint2_mass_center_to_motor_distance":0.0
  • Joint 2 center of mass to motor distance; double type, range [0,99999.9] m
  • "joint4_mass":0.0
json
{
  "arm_inertia":[0.0,0.0,0.0],
  "auto_modify_acc_enable":false,
  "joint1_mass":0.0,
  "joint1_mass_center_to_motor_distance":0.0,
  "joint2_mass":0.0,
  "joint2_mass_center_to_motor_distance":0.0,
  "joint4_mass":0.0
}
  • Joint 4 mass; double type, range [0,99999.9] kg
  • Host Computer Sets Position Loop Proportional Parameters

Command: 0x4056

  • "Dynamic_sendServoParam":false
  • Position loop proportional send enable; bool type
  • "PositionalComparison":
  • Position loop proportional parameter list
  • "inertiaMax":9999.0
  • Inertia maximum value; double type, range (0,100000] 0.001 kg*m^2
  • "inertiaMin":8.0
  • Inertia minimum value; double type, range [0,100000) 0.001 kg*m^2
  • Inertia minimum value must be less than inertia maximum value
  • "max":8.0
  • Position loop proportional gain 1 minimum value; double type, range [0,100000)
  • Position loop proportional gain 1 minimum value must be less than position loop proportional gain 1 maximum value
  • "min":9999.0
json
{
  "Dynamic_sendServoParam":false,
  "PositionalComparison":
  {
    "inertiaMax":9999.0,
    "inertiaMin":8.0,
    "max":8.0,
    "min":9999.0
  }
}
  • Position loop proportional gain 1 maximum value; double type, range (0,100000]
  • The "max" and "min" parameters are reversed in implementation; this will be corrected later
  • Host Computer Queries Position Loop Proportional Parameters
json
{}

Command: 0x4057

  • Controller Replies Position Loop Proportional Parameters to Host Computer

Command: 0x4058

  • "Dynamic_sendServoParam":false
  • Position loop proportional send enable; bool type
  • "PositionalComparison":
  • Position loop proportional parameter list
  • "inertiaMax":9999.0
  • Inertia maximum value; double type, range (0,100000] 0.001 kg*m^2
  • "inertiaMin":8.0
  • Inertia minimum value; double type, range [0,100000) 0.001 kg*m^2
  • Inertia minimum value must be less than inertia maximum value
  • "max":8.0
  • Position loop proportional gain 1 minimum value; double type, range [0,100000)
  • Position loop proportional gain 1 minimum value must be less than position loop proportional gain 1 maximum value
  • "min":9999.0
json
{
  "Dynamic_sendServoParam":false,
  "PositionalComparison":
  {
    "inertiaMax":9999.0,
    "inertiaMin":8.0,
    "max":8.0,
    "min":9999.0
  }
}

Drag Mode

  • Position loop proportional gain 1 maximum value; double type, range (0,100000]
  • The "max" and "min" parameters are reversed in implementation; this will be corrected later
  • Description
  • Host Computer Sets Drag Mode Parameters

Command: 0x4074

  • "mode":2
  • Drag method; int type, range [0,3]
  • 0 for none, 1 for 3D mouse, 2 for torque, 3 for position
  • "port":0
  • External trigger signal port; int type
  • Range equals currently bound IO port count
  • "value":0
json
{
  "mode":2,
  "port":0,
  "value":0
}
  • External trigger signal parameter; int type, range [0,1]
  • Host Computer Queries Drag Mode Parameters
json
{}

Command: 0x4075

  • Controller Replies Drag Mode Parameters to Host Computer

Command: 0x4076

  • "mode":2
  • Drag method; int type, range [0,3]
  • 0 for none, 1 for 3D mouse, 2 for torque, 3 for position
  • "port":0
  • External trigger signal port; int type
  • Range equals currently bound IO port count
  • "value":0
json
{
  "mode":2,
  "port":0,
  "value":0
}
  • External trigger signal parameter; int type, range [0,1]
  • Host Computer Sets Torque Parameters

Command: 0x4085

  • "DecareLimit":2.50
  • Cartesian space linear velocity limit; double type, range [0,infinity) m/s
  • "JointVelLimit":1.0
  • Joint space velocity limit; double type, range [0,infinity) deg/s
  • "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0]
  • Over-limit resistance coefficient; double type, range [1,100]
  • "drag_mode":0
  • Drag mode; int type, range [0,2]
  • 0 for free drag, 1 for position drag, 2 for attitude drag
  • "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0]
  • Joint friction compensation correction coefficient; double type, range [0,0.99]
  • "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0]
  • Joint target torque correction coefficient; double type, range [0,1]
  • "waitCycle":5.0
json
{
  "DecareLimit":2.50,
  "JointVelLimit":1.0,
  "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0],
  "drag_mode":0,
  "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0],
  "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0],
  "waitCycle":5.0
}
  • Wait period for sending torque parameters to servo; double type, range [1,10]
  • Host Computer Queries Torque Parameters
json
{}

Command: 0x4086

  • Controller Replies Torque Parameters to Host Computer

Command: 0x4087

  • "DecareLimit":2.50
  • Cartesian space linear velocity limit; double type, range [0,infinity) m/s
  • "JointVelLimit":1.0
  • Joint space velocity limit; double type, range [0,infinity) deg/s
  • "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0]
  • Over-limit resistance coefficient; double type, range [1,100]
  • "drag_mode":0
  • Drag mode; int type, range [0,2]
  • 0 for free drag, 1 for position drag, 2 for attitude drag
  • "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0]
  • Joint friction compensation correction coefficient; double type, range [0,0.99]
  • "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0]
  • Joint target torque correction coefficient; double type, range [0,1]
  • "waitCycle":5.0
json
{
  "DecareLimit":2.50,
  "JointVelLimit":1.0,
  "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0],
  "drag_mode":0,
  "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0],
  "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0],
  "waitCycle":5.0
}

Force Functions

  • Wait period for sending torque parameters to servo; double type, range [1,10]
  • Description
  • Setting collision detection switch requires performing dynamics identification first
  • Host Computer Sets Collision Detection Switch

Command: 0x407D

  • "switch":true
json
{
  "switch":true
}
  • Collision detection switch; bool type
  • Host Computer Queries Collision Detection Switch
json
{}

Command: 0x407E

  • Controller Replies Collision Detection Switch to Host Computer

Command: 0x407F

  • "is_identification":false
  • Whether robot has completed dynamics identification; bool type
  • true indicates dynamics identification completed, false indicates dynamics identification not completed
  • "restrart_switch":false
  • Robot collision restart switch; bool type
  • "switch":true
json
{
  "is_identification":false,
  "restrart_switch":false,
  "switch":false
}
  • Collision detection switch; bool type
  • Host Computer Sets Collision Detection Parameters

Command: 0x4080

  • "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0]
  • Collision detection threshold (jog); double type, range [1,10000] permil
  • "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0]
  • Collision detection threshold (jog); double type, range [1,10000] permil
  • "error_enable_time":1.0
  • Error allowable time; double type, range [0,99] ms
  • "pos_delay_time":1.0
json
{
  "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0],
  "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0],
  "error_enable_time":1.0,
  "pos_delay_time":1.0
}
  • Command position response time; double type, range (0,99] ms
  • Host Computer Queries Collision Detection Parameters
json
{}

Command: 0x4081

  • Controller Replies Collision Detection Parameters to Host Computer

Command: 0x4082

  • "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0]
  • Collision detection threshold list (jog); double type, range [1,10000] permil
  • "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0]
  • Collision detection threshold list (jog); double type, range [1,10000] permil
  • "error_enable_time":1.0
  • Error allowable time; double type, range [0,99] ms
  • "pos_delay_time":1.0
json
{
  "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0],
  "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0],
  "error_enable_time":1.0,
  "pos_delay_time":1.0
}
  • Command position response time; double type, range (0,99] ms
  • Host Computer Sets Robot Torque Feedforward

Command: 0x4010

  • "torqFeedback":false
json
{
  "torqFeedback":false
}
  • Torque feedforward switch; bool type
  • Host Computer Queries Robot Torque Feedforward
json
{}

Command: 0x4011

  • Controller Replies Robot Torque Feedforward to Host Computer

Command: 0x4012

json
{
  "torqFeedback":false
}

Trajectory Management

  • "torqFeedback":false
  • Torque feedforward switch; bool type
  • Description
  • Trajectory save result is returned via 0x4070
  • Host Computer Queries Whether Drag Trajectory Has Been Recorded
json
{}

Command: 0x408B

  • Controller Replies Drag Trajectory Recording Result to Host Computer

Command: 0x4070

  • "record":false
json
{
  "record":false
}
  • Whether trajectory has been recorded; bool type
  • Host Computer Requests Trajectory Playback

Command: 0x4071

  • "trajName":"AAA"
  • Trajectory name to playback; string type
  • "vel":100
json
{
  "trajName":"AAA",
  "vel":100
}
  • Trajectory playback running speed; int type, range [1,100]
  • Host Computer Requests Saving Drag Trajectory

Command: 0x4072

  • "TrajName":"AAA"
json
{
  "TrajName":"AAA"
}
  • Trajectory name to save; string type
  • If empty, save will fail
  • Host Computer Requests Deleting Drag Trajectory

Command: 0x4073

  • "TrajName":"AAA"
json
{
  "TrajName":"AAA"
}
  • Trajectory name to delete; string type
  • Host Computer Queries Drag Trajectory List
json
{}

Command: 0x4083

  • Controller Replies Drag Trajectory List to Host Computer

Command: 0x4084

  • "TrajName":["AAA"]
json
{
  "TrajName":["AAA"]
}
  • Saved trajectory list; string type
  • Length equals current number of saved trajectories. If no trajectory exists, this node does not exist
  • Host Computer Sets Trajectory Recording Parameters

Command: 0x4088

  • "MaxSamplingNum":300.0
  • Maximum sampling points; double type, range (200,1200)
  • "SamplingInterval":0.030
  • Sampling interval; double type, range [0.03,1]
  • "Start":true
json
{
  "MaxSamplingNum":300.0,
  "SamplingInterval":0.030,
  "Start":true
}
  • Start/stop recording; bool type
  • true for start recording, false for stop recording
  • When false, "MaxSamplingNum" and "SamplingInterval" may not exist
  • Host Computer Queries Trajectory Recording Parameters
json
{}

Command: 0x4089

  • Controller Replies Trajectory Recording Parameters to Host Computer

Command: 0x408A

  • "MaxSamplingNum":300.0
  • Maximum sampling points; double type, range (200,1200)
  • "SamplingInterval":0.030
  • Sampling interval; double type, range [0.03,1]
  • "Start":false
json
{
  "MaxSamplingNum":300.0,
  "SamplingInterval":0.030,
  "Start":false
}
  • Start/stop recording; bool type
  • true for start recording, false for stop recording
  • Host Computer Queries Drag Trajectory File List
json
{}

Command: 0x408C

  • Controller Replies Drag Trajectory File List to Host Computer

Command: 0x408D

  • "absolutepath":"dragPos/"
  • Drag trajectory file storage path on controller; string type
  • "trajectory_filelist":["AAA","JJ","drag_traj_details.json"]
json
{
  "absolutepath":"dragPos/",
  "trajectory_filelist":["AAA","JJ","drag_traj_details.json"]
}
  • Drag trajectory file list; string type
  • "drag_traj_details.json" is the trajectory recording information file