Skip to content

End-Effector Ecosystem Command Set

Setting End-Effector Ecosystem Protocol Mode set_rm_plus_mode

To set the end-effector ecosystem protocol mode, the protocol must be enabled based on the interface's baud rate.

  • Input Parameters
DescriptionTypeNotes
set_rm_plus_modestringSets the end-effector ecosystem protocol.
modeint0 - Disable protocol;
9600 - Enable protocol (baud rate 9600);
115200 - Enable protocol (baud rate 115200);
256000 - Enable protocol (baud rate 256000);
460800 - Enable protocol (baud rate 460800).
  • Code Example

Input Set the end-effector ecosystem protocol mode.

json
{"command":"set_rm_plus_mode","mode":9600}

Output Configuration successful:

json
{
    "command":"set_rm_plus_mode",
    "set_state":true
}

Configuration failed:

json
{
    "command": "set_rm_plus_mode",
    "set_state":false
}

Querying End-Effector Ecosystem Protocol Mode get_rm_plus_mode

  • Input Parameters
DescriptionTypeNotes
get_rm_plus_modestringRetrieves the end-effector ecosystem protocol mode.
  • Output Parameters
DescriptionTypeNotes
get_rm_plus_modestringRetrieves the end-effector ecosystem protocol mode.
modeint0 - Disable protocol;
9600 - Enable protocol (baud rate 9600);
115200 - Enable protocol (baud rate 115200);
256000 - Enable protocol (baud rate 256000);
460800 - Enable protocol (baud rate 460800).
  • Code Example

Input Retrieve the end-effector ecosystem protocol mode.

json
{"command":"get_rm_plus_mode"}

Output

json
{
    "command":"get_rm_plus_mode",
    "mode":9600
}

Setting Tactile Sensor Mode set_rm_plus_touch

  • Input Parameters
DescriptionTypeNotes
set_rm_plus_touchstringSets the tactile sensor switch.
modeint0 - Disable tactile sensor;
1 - Enable tactile sensor (returns processed data);
2 - Enable tactile sensor (returns raw data).
  • Code Example

Input Set the tactile sensor switch.

json
{"command":"set_rm_plus_touch","mode":0}

Output Configuration successful:

json
{
    "command":"set_rm_plus_touch",
    "set_state":true
}

Configuration failed:

json
{
    "command":"set_rm_plus_touch",
    "set_state":false
}

Querying Tactile Sensor Mode get_rm_plus_touch

  • Input Parameters
DescriptionTypeNotes
get_rm_plus_touchstringRetrieves the tactile sensor mode.
  • Output Parameters
DescriptionTypeNotes
get_rm_plus_touchstringRetrieves the tactile sensor mode.
modeint0 - Disable tactile sensor;
1 - Enable tactile sensor (returns processed data);
2 - Enable tactile sensor (returns raw data).
  • Code Example

Input Retrieve the tactile sensor mode.

json
{"command":"get_rm_plus_touch"}

Output

json
{
    "command":"get_rm_plus_touch",
    "mode":0
}

Reading Basic Information of End-Effector Device get_rm_plus_base_info

  • Input Parameters
DescriptionTypeNotes
get_rm_plus_base_infostringReads the basic information of the end-effector device.
  • Output Parameters
DescriptionTypeNotes
get_rm_plus_base_infostringReads the basic information of the end-effector device.
base_infoobjectOutput parameter descriptions:
"manu": Device manufacturer;
"type": Device type, including 1 - Two-finger gripper, 2 - Five-finger dexterous hand, 3 - Three-finger gripper;
"hv": Hardware version;
"sv": Software version;
"bv": Bootloader version;
"id": Device ID;
"dof": Degrees of freedom;
"check": Self-check switch;
"bee": Beeper switch;
"force": Force control support;
"touch": Tactile support;
"touch_num": Number of tactile sensors;
"touch_sw": Tactile switch;
"hand": Hand orientation, including 1 - Left hand, 2 - Right hand;
"pos_up": Position upper limit;
"pos_low": Position lower limit;
"angle_up": Angle upper limit;
"angle_low": Angle lower limit;
"speed_up": Speed upper limit;
"speed_low": Speed lower limit;
"force_up": Force upper limit;
"force_low": Force lower limit.
  • Code ExampleInput Retrieve the tactile sensor mode.
json
{"command":"get_rm_plus_base_info"}

Output Query successful:

json
{
    "command":"get_rm_plus_base_info",
    "base_info":{
        "angle_low":[0,0,0,0,0,0],
        "angle_up":[5500,7000,7000,7000,7000,9000],
        "bee":0,
        "bv":1286,
        "check":0,
        "dof":6,
        "force":false,
        "force_low":[0,0,0,0,0,0],
        "force_up":[0,0,0,0,0,0],
        "hand":1,
        "hv":256,
        "id":1,
        "manu":"QN",
        "pos_low":[0,0,0,0,0,0],
        "pos_up":[100,100,100,100,100,100],
        "speed_low":[0,0,0,0,0,0],
        "speed_up":[100,100,100,100,100,100],
        "sv":772,
        "touch":true,
        "touch_num":0,
        "touch_sw":0,
        "type":2
    }
}

Query failed:

json
{
    "command":"get_rm_plus_base_info",
    "get_state":false
}

Reading Real-Time Information of End-Effector Device get_rm_plus_state_info

  • Input Parameters
DescriptionTypeNotes
get_rm_plus_state_infostringReads the real-time information of the end-effector device.
  • Output Parameters
DescriptionTypeNotes
get_rm_plus_state_infostringReads the real-time information of the end-effector device.
state_infoobjectOutput parameter descriptions:
"sys_state": System status;
"sys_error": System error;
"dof_state": Current status of each degree of freedom (DoF);
"dof_err": Error information of each DoF;
"pos": Current position of each DoF;
"speed": Current speed of each DoF;
"angle": Current angle of each DoF;
"current": Current of each DoF;
"force": Torque of each DoF (not returned if force control is not supported);
"normal_force": Normal force of the tactile three-dimensional force of each DoF;
"tangential_force": Tangential force of the tactile three-dimensional force of each DoF;
"tangential_force_dir": Direction of the tangential force of the tactile three-dimensional force of each DoF;
"tsa": Tactile self-approach of each DoF;
"tma": Tactile mutual approach of each DoF;
"touch_data": Raw data from the tactile sensor.
  • Code ExampleInput Retrieve the tactile sensor mode.
json
{"command":"get_rm_plus_state_info"}

Output Query successful:

json
{
    "command":"get_rm_plus_state_info",
    "state_info":{
        "angle":[0,0,0,0,0,0],
        "current":[0,0,0,0,0,0],
        "dof_err":[0,0,0,0,0,0],
        "dof_state":[0,0,0,0,0,0],
        "normal_force":[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],
        "pos":[0,0,0,0,0,0],
        "speed":[0,0,0,0,0,0],
        "sys_state":0,
        "sys_err":0,
        "tangential_force":[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],
        "tangential_force_dir":[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],
        "tma":[4294967295,4294967295,4294967295],
        "tsa":[4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295]
    }
}

Query failed:

json
{
    "command":"get_rm_plus_state_info",
    "get_state":false
}

Reading End-Effector Ecosystem Device Registers get_rm_plus_reg

  • Input Parameters
DescriptionTypeNotes
addrintStarting address of the register. For specific functions of the register, please refer to End-Effector Ecosystem Protocol Definition.
lengthintLength of the register to read. Note: The valid address range of registers is 1000~1653. Only when all registers to be read are within the valid range can they be read normally.
  • Code ExampleInput
json
{"command":"get_rm_plus_reg","addr":1000,"length":11}

Output

Configuration successful:

json
{"command":"get_rm_plus_reg","plus_reg_data":[20814,2,256,2079,256,1,6,0,0,32768,1]}

Configuration failed:

json
{"command":"get_rm_plus_reg","get_state":false}

Writing to End-Effector Ecosystem Device Registers set_rm_plus_reg

Follow the end-effector ecosystem protocol to implement specific functions by writing to specific registers.

  • Input Parameters
DescriptionTypeNotes
addrintStarting address of the register. For specific functions of the register, please refer to End-Effector Ecosystem Protocol Definition.
lengthintLength of the register. Note: The valid address range of registers is 1000~1653.
dataintarrayData to be written.
  • Code Example

Input

Set fingertip sensor to zero:

json
{"command":"set_rm_plus_reg","addr":1025,"length":1,"data":[1]}

Output

Configuration successful:

json
{"command":"set_rm_plus_reg","set_state":true}

Configuration failed:

json
{"command":"set_rm_plus_reg","set_state":false}

End-Effector Angle Following Control hand_follow_angle

Sets the follow angle with a maximum control frequency of 50Hz.

  • Dexterous Hand: 6 active degrees of freedom (DoF) — DoF 1 (Thumb flexion), DoF 2 (Index finger), DoF 3 (Middle finger), DoF 4 (Ring finger), DoF 5 (Little finger), DoF 6 (Thumb rotation/opponency).

  • 2-Finger Gripper: 1 active degree of freedom (DoF).

WARNING

To use this feature, please contact technical support to obtain and flash the customized firmware upgrade package for the end-effector tool (dexterous hand/gripper).

  • Input parameter
ParameterTypeDescription
hand_follow_anglestringSets the angles for the degrees of freedom.
  • Code demo

Input

json
{"command":"hand_follow_angle","hand_angle":[1000,1000,2000,3000,4000,5000]}

INFO

When configuring individual finger movements for the dexterous hand, hand_angle represents an array of finger angles controlled according to the definitions specified by the hand manufacturer.

For example, dexterous hand angle definitions (Unit: 0.01°):

  • Thumb: 0 ~ 7400

  • Index Finger: 0 ~ 8500

  • Middle Finger: 0 ~ 8400

  • Ring Finger: 0 ~ 8500

  • Little Finger: 0 ~ 8400

  • Thumb Yaw/Rotation: 0 ~ 11000

Output

Setting succeeded

json
{
    "command": "hand_follow_angle",
    "set_state": true
}

Setting failed

json
{
    "command": "hand_follow_angle",
    "set_state": false
}

End-Effector Position Following Control hand_follow_pos

Sets the follow position for the end-effector tool with a maximum control frequency of 50Hz.

  • Dexterous Hand: 6 active degrees of freedom (DoF) — DoF 1 (Thumb flexion), DoF 2 (Index finger), DoF 3 (Middle finger), DoF 4 (Ring finger), DoF 5 (Little finger), DoF 6 (Thumb rotation/opponency).

  • 2-Finger Gripper: 1 active degree of freedom (DoF).

WARNING

To use this feature, please contact technical support to obtain and flash the customized firmware upgrade package for the end-effector tool (dexterous hand/gripper).

  • Input parameter
ParameterTypeDescription
hand_follow_posstringSets the positions for the degrees of freedom.
  • Code demo

Input

json
{"command":"hand_follow_pos","hand_pos":[10000]}

INFO

When configuring the position for the 2-finger gripper, hand_pos represents an array of DoF positions controlled according to the definitions specified by the gripper manufacturer.

For example, 2-finger gripper DoF definitions:

  • Travel Range: 0 ~ 120mm

  • Actuator Stroke: 0 ~ 12000

Output Setting succeeded

json
{
    "command": "hand_follow_pos",
    "set_state": true
}

Setting failed

json
{
    "command": "hand_follow_pos",
    "set_state": false
}