Python:
End-Effector Ecosystem Protocol ConfigurationRmPlusConfig Set End-Effector Ecosystem Protocol Mode rm_set_rm_plus_mode()
- Method prototype:
rm_set_rm_plus_mode(self, mode: int) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
mode | int | End-effector ecosystem protocol mode. 0: 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). |
- Return value:
State codes executed by functions:
0 represents success. For other error codes, please refer to the API2 Error Codes.
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Set the end-effector ecosystem protocol mode
arm.rm_set_rm_plus_mode(9600)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Get End-Effector Ecosystem Protocol Mode rm_get_rm_plus_mode()
- Method prototype:
rm_get_rm_plus_mode(self) -> tuple[int, int]:- Return value:
tuple[int, int]: A tuple containing two elements.
- State codes executed by functions: 0 represents success. For other error codes, please refer to the API2 Error Codes.
- End-effector ecosystem protocol mode:
- 0: 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)
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Get the end-effector ecosystem protocol mode
tag, mode = arm.rm_get_rm_plus_mode()
print(tag, mode)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Set Tactile Sensor Mode (Supported by End-Effector Ecosystem Protocol) rm_set_rm_plus_touch()
- Method prototype:
rm_set_rm_plus_touch(self,mode: int) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
mode | int | Tactile sensor switch status. 0: Disable tactile sensor, 1: Enable tactile sensor (return processed data), 2: Enable tactile sensor (return raw data) |
- Return value:
State codes executed by functions:
0 represents success. For other error codes, please refer to the API2 Error Codes.
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Set the tactile sensor mode
arm.rm_set_rm_plus_touch(1)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Get Tactile Sensor Mode (Supported by End-Effector Ecosystem Protocol) rm_get_rm_plus_touch()
- Method prototype:
rm_get_rm_plus_touch(self) -> tuple[int,int]:- Return value:
tuple[int,int]: A tuple containing two elements.
- State codes executed by functions: 0 represents success. For other error codes, please refer to the API2 Error Codes.
- Tactile sensor switch status:
- 0: Disable tactile sensor
- 1: Enable tactile sensor (return processed data)
- 2: Enable tactile sensor (return raw data)
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Get the tactile sensor mode
tag, mode = arm.rm_get_rm_plus_touch()
print(tag, mode)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Read End-Effector Basic Information (Supported by End-Effector Ecosystem Protocol) rm_get_rm_plus_base_info()
- Method prototype:
rm_get_rm_plus_base_info(self) -> tuple[int,dict[str, any]]:- Return value:
tuple[int,dict[str, any]]: A tuple containing two elements.
- State codes executed by functions: 0 represents success. For other error codes, please refer to the API2 Error Codes.
- End-effector basic information:
dict[str, any]A dictionary of end-effector basic information, with keys being the field names of therm_plus_base_info_tstructure.
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Read the end-effector basic information
tag, base_info = arm.rm_get_rm_plus_base_info()
print(tag, base_info)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Read End-Effector Real-Time Information (Supported by End-Effector Ecosystem Protocol) rm_get_rm_plus_state_info()
- Method prototype:
rm_get_rm_plus_state_info(self) -> tuple[int, dict[str, any]]:- Return value:
tuple[int, dict[str, any]]: A tuple containing two elements.
- State codes executed by functions: 0 represents success. For other error codes, please refer to the API2 Error Codes.
- End-effector real-time information:
dict[str, any]A dictionary of end-effector real-time information, with keys being the field names of therm_plus_state_info_tstructure.
- Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create a robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Read the end-effector real-time information
tag, state_info = arm.rm_get_rm_plus_state_info()
print(tag, state_info)
# Disconnect all connections and destroy the thread
RoboticArm.rm_destroy()Set end-effector angle-following control rm_set_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).
- Method prototype:
rm_set_hand_follow_angle(self, hand_angle: list[int], block: bool) -> int- Parameter description:
| Parameter | Type | Description |
|---|---|---|
hand_angle | List[int] | Sets the angles for the degrees of freedom. 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 |
block | bool | true: Indicates non-blocking mode, returns after sending successfully. false: Indicates blocking mode, returns after receiving the successful setting command. |
Return value:
State codes executed by functions:
0 represents success. For other error codes, please refer to the API2 Error Codes.
Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create the robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Set the angle follow control of the dexterous hand
print(arm.rm_set_hand_follow_angle([0,100,200,300,400,500], True))
arm.rm_delete_robot_arm()Set end-effector position-following control rm_set_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).
- Method prototype:
rm_set_hand_follow_pos(self, hand_pos: list[int], block: bool) -> int- Parameter description:
| Parameter | Type | Description |
|---|---|---|
hand_pos | list[int] | Sets the positions for the degrees of freedom. 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 |
block | bool | true: Indicates non-blocking mode, returns after sending successfully. false: Indicates blocking mode, returns after receiving the successful setting command. |
Return value:
State codes executed by functions:
0 represents success. For other error codes, please refer to the API2 Error Codes.
Usage demo
from Robotic_Arm.rm_robot_interface import *
# Instantiate the RoboticArm class
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# Create the robotic arm connection and print the connection ID
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)
# Set the position follow control of the dexterous hand
print(arm.rm_set_hand_follow_pos([0,100,200,300,400,500], True))
arm.rm_delete_robot_arm()
