Python:
Action Configuration Supports configuration of related actions, including operations such as querying, running, deleting, saving, and updating.
Query Action List rm_get_tool_action_list
- Method prototype:
python
rm_get_tool_action_list(self, page_num: int, page_size: int, vague_search: str) -> tuple[int, dict[str, any]]:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
page_num | int | Page number. |
page_size | int | Number of items per page. |
vague_search | str | Vague search. |
- Return value:
tuple[int, dict[str,any]]: A tuple containing two elements.
int: Status code of function execution:
Parameter Description 0 Success. 1 The controller returns false, indicating incorrect parameter transmission or an error in the robotic arm state. -1 Data transmission failed due to issues during communication. -2 Data reception failed due to issues during communication or timeout of the controller (no response received). -3 Return value parsing failed, as the received data format is incorrect or incomplete. -4 This interface is not supported by the Gen 3 Controller. dict[str,any]: The retrieved action list dictionary, where keys are the field names of the
rm_tool_action_list_tstructure.
- Usage demo
python
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)
ret, list = arm.rm_get_tool_action_list(1, 20, None)
print("tool action list")
print("total_size:", list['total_size'])
THRESHOLD = 1000000
for i, action in enumerate(list['act_list']):
print(f"action {i + 1}:")
print(f"name: {action['name'].decode('utf-8')}" if isinstance(action['name'], bytes) else f"name: {action['name']}")
has_valid_pos = any(pos != THRESHOLD for pos in action['hand_pos'][:100])
has_valid_angle = any(angle != THRESHOLD for angle in action['hand_angle'][:100])
if has_valid_pos:
print("handpos: [", ", ".join(str(pos) for pos in action['hand_pos'][:100] if pos != THRESHOLD), "]")
if has_valid_angle:
print("handangle: [", ", ".join(str(angle) for angle in action['hand_angle'][:100] if angle != THRESHOLD), "]")
print("--------------------")
arm.rm_delete_robot_arm()Run Specified End Effector Action rm_run_tool_action
- Method prototype:
python
rm_run_tool_action(self, action_name: str) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
action_name | str | Name of the end effector action. |
- Return value:
| Parameter | Description |
|---|---|
| 0 | Success. |
| 1 | The controller returns false, indicating incorrect parameter transmission or an error in the robotic arm state. |
| -1 | Data transmission failed due to issues during communication. |
| -2 | Data reception failed due to issues during communication or timeout of the controller (no response received). |
| -3 | Return value parsing failed, as the received data format is incorrect or incomplete. |
| -4 | This interface is not supported by the Gen 3 Controller. |
| -5 | The current in-position device verification failed, meaning the current in-position device is not an end effector action. |
- Usage demo
python
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)
print(arm.rm_run_tool_action("1"))
arm.rm_delete_robot_arm()Delete Specified End Effector Action rm_delete_tool_action
- Method prototype:
python
rm_delete_tool_action(self, action_name: str) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
action_name | str | Name of the end effector action. |
- Return value:
| Parameter | Description |
|---|---|
| 0 | Success. |
| 1 | The controller returns false, indicating incorrect parameter transmission or an error in the robotic arm state. |
| -1 | Data transmission failed due to issues during communication. |
| -2 | Data reception failed due to issues during communication or timeout of the controller (no response received). |
| -3 | Return value parsing failed, as the received data format is incorrect or incomplete. |
| -4 | This interface is not supported by the Gen 3 Controller. |
- Usage demo
python
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)
print(arm.rm_delete_tool_action("p"))
arm.rm_delete_robot_arm()Save Action to Controller rm_save_tool_action
- Method prototype:
python
rm_save_tool_action(self, action_name: str, selected_array: list, array_size: int, array_type: int) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
action_name | str | Name of the end effector action. |
selected_array | list | Values of the array to be saved. |
array_size | int | Size of the array to be saved. |
array_type | int | Type of the array to be saved (0 = save type is hand_pos; 1 = save type is hand_angle). |
- Return value:
| Parameter | Description |
|---|---|
| 0 | Success. |
| 1 | The controller returns false, indicating incorrect parameter transmission or an error in the robotic arm state. |
| -1 | Data transmission failed due to issues during communication. |
| -2 | Data reception failed due to issues during communication or timeout of the controller (no response received). |
| -3 | Return value parsing failed, as the received data format is incorrect or incomplete. |
| -4 | This interface is not supported by the Gen 3 Controller. |
- Usage demo
python
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)
print(arm.rm_save_tool_action("12", [1, 1, 1, 1, 1, 1] , 6 , 0))
arm.rm_delete_robot_arm()Update Action to Controller rm_update_tool_action
- Method prototype:
python
rm_update_tool_action(self, action_name: str, new_name: str, selected_array: list[int], array_size: int, array_type: int) -> int:- Parameter description:
| Parameter | Type | Description |
|---|---|---|
action_name | str | Name of the end effector action. |
new_name | str | Updated name of the end effector action. |
selected_array | list[int] | Values of the array to be saved. |
array_size | int | Size of the array to be saved. |
array_type | int | Type of the array to be saved (0 = save type is hand_pos; 1 = save type is hand_angle). |
- Return value:
| Parameter | Description |
|---|---|
| 0 | Success. |
| 1 | The controller returns false, indicating incorrect parameter transmission or an error in the robotic arm state. |
| -1 | Data transmission failed due to issues during communication. |
| -2 | Data reception failed due to issues during communication or timeout of the controller (no response received). |
| -3 | Return value parsing failed, as the received data format is incorrect or incomplete. |
| -4 | This interface is not supported by the Gen 3 Controller. |
- Usage demo
python
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)
print(arm.rm_update_tool_action("121", "12", [2, 1, 1, 1, 1, 1 ] , 6 , 1))
arm.rm_delete_robot_arm()
