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
{
"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
{}Command: 0x4001
- Controller Replies Payload Enable Parameters to Host Computer
Query Payload Enable Parameters (Actual Torque Conversion Ratio)
Command: 0x4002
Controller Reply
| Field | Type | Description |
|---|---|---|
| axis1_actual_torq_conversion_ratio | double | Axis 1 actual torque conversion ratio |
| axis2_actual_torq_conversion_ratio | double | Axis 2 actual torque conversion ratio |
| axis3_actual_torq_conversion_ratio | double | Axis 3 actual torque conversion ratio |
| axis4_actual_torq_conversion_ratio | double | Axis 4 actual torque conversion ratio |
| axis5_actual_torq_conversion_ratio | double | Axis 5 actual torque conversion ratio |
| axis6_actual_torq_conversion_ratio | double | Axis 6 actual torque conversion ratio |
| payload_enable | bool | Payload enable |
{
"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
{
"payload_num":1
}- Payload enable process number; int type
- Controller Replies Payload Enable Process Number to Host Computer
Command: 0x4004
- "payload_num":1
{
"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
{}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
{
"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
{}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]
{
"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
{
"_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
{
"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
{
"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
{}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
{
"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
{}Command: 0x4033
- Controller Replies Parameter Identification Result to Host Computer
Command: 0x4034
- "finish":false
{
"finish":false
}- Identification finished; bool type
- Host Computer Requests Start Identification
{}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]
{
"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
{
"finish":1
}- Identification result; int type
- Controller Sends Error Stop During Identification to Host Computer
Command: 0x4038
- "ErrorStop":1
{
"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
{
"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
{
"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
"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
{
"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"
{
"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
{
"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"
{
"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"
{
"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)
{}Command: 0x407A
- Controller Replies Safety Status to Host Computer
Command: 0x407B
{
"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
{
"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
{}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
{
"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
{
"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]]
{
"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
{}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]]
{
"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
{
"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
{}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
{
"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
{
"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
{}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
{
"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
{
"mode":2,
"port":0,
"value":0
}- External trigger signal parameter; int type, range [0,1]
- Host Computer Queries Drag Mode Parameters
{}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
{
"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
{
"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
{}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
{
"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
{
"switch":true
}- Collision detection switch; bool type
- Host Computer Queries Collision Detection Switch
{}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
{
"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
{
"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
{}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
{
"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
{
"torqFeedback":false
}- Torque feedforward switch; bool type
- Host Computer Queries Robot Torque Feedforward
{}Command: 0x4011
- Controller Replies Robot Torque Feedforward to Host Computer
Command: 0x4012
{
"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
{}Command: 0x408B
- Controller Replies Drag Trajectory Recording Result to Host Computer
Command: 0x4070
- "record":false
{
"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
{
"trajName":"AAA",
"vel":100
}- Trajectory playback running speed; int type, range [1,100]
- Host Computer Requests Saving Drag Trajectory
Command: 0x4072
- "TrajName":"AAA"
{
"TrajName":"AAA"
}- Trajectory name to save; string type
- If empty, save will fail
- Host Computer Requests Deleting Drag Trajectory
Command: 0x4073
- "TrajName":"AAA"
{
"TrajName":"AAA"
}- Trajectory name to delete; string type
- Host Computer Queries Drag Trajectory List
{}Command: 0x4083
- Controller Replies Drag Trajectory List to Host Computer
Command: 0x4084
- "TrajName":["AAA"]
{
"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
{
"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
{}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
{
"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
{}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"]
{
"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