Skip to content

工作坐标系配置WorkCoordinateConfig

可用于自动/手动设置、删除、切换工作坐标系等。下面是工作坐标系WorkCoordinateConfig的详细成员函数说明,包含了方法原型、参数说明、返回值说明和使用示例。

三点法自动设置工作坐标系rm_set_auto_work_frame()

  • 方法原型:
python
rm_set_auto_work_frame(self, name: str, point_num: int) -> int:
  • 参数说明:
名称类型说明
namestr工作坐标系名称,不能超过十个字节。
point_numint1~3代表3个标定点,依次为原点、X轴一点、Y轴一点,4代表生成坐标系。
  • 返回值: 函数执行的状态码:
参数类型说明
0int成功。
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 设置关节角度[0, 20, 70, 0, 90, 0]的位置为工作坐标系原点
print(arm.rm_movej([0, 20, 70, 0, 90, 0], 20, 0, 0, 1))
print(arm.rm_set_auto_work_frame("test_work", 1))
# 设置工作坐标系X轴一点
time.sleep(1)
result = arm.rm_get_current_arm_state()
result[1]["pose"][0] += 0.1    # X轴0.1m
result = arm.rm_movel(result[1]["pose"], 20, 0, 0, 1)
print(arm.rm_set_auto_work_frame("test_work", 2))
# 设置工作坐标系Y轴一点
time.sleep(1)
print(arm.rm_movej([0, 20, 70, 0, 90, 0], 20, 0, 0, 1))
result = arm.rm_get_current_arm_state()
result[1]["pose"][1] += 0.1    # Y轴0.1m
result = arm.rm_movel(result[1]["pose"], 20, 0, 0, 1)
print(arm.rm_set_auto_work_frame("test_work", 3))
# 生成“test_work”坐标系
print(arm.rm_set_auto_work_frame("test_work", 4))

arm.rm_delete_robot_arm()

手动设置工作坐标系rm_set_manual_work_frame()

  • 方法原型:
python
rm_set_manual_work_frame(self, name: str, pose: list) -> int:
  • 参数说明:
名称类型说明
namestr工作坐标系名称,不能超过十个字节。
poselist新工作坐标系相对于基坐标系的位姿。
  • 返回值: 函数执行的状态码:
参数类型说明
0int成功
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_set_manual_work_frame("test", [-0.259256, -0.170727, 0.35621, 0, -0.447394, -1.81038]))

arm.rm_delete_robot_arm()

切换当前工作坐标系rm_change_work_frame()

  • 方法原型:
python
rm_change_work_frame(self, tool_name: str) -> int:
  • 参数说明:
名称类型说明
tool_namestr目标工作坐标系名称
  • 返回值: 函数执行的状态码:
参数类型说明
0int成功
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_change_work_frame("test"))

arm.rm_delete_robot_arm()

删除指定工作坐标系rm_delete_work_frame()

  • 方法原型:
python
rm_delete_work_frame(self, tool_name: str) -> int:
  • 参数说明:
名称类型说明
tool_namestr要删除的工作坐标系名称
  • 返回值: 函数执行的状态码:
参数类型说明
0int成功。
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_delete_work_frame("test"))

arm.rm_delete_robot_arm()

修改指定工作坐标系rm_update_work_frame()

  • 方法原型:
python
rm_update_work_frame(self, name: str, pose: list) -> int:
  • 参数说明:
名称类型说明
namestr指定工具坐标系名称。
poselist更新工作坐标系相对于基坐标系的位姿。
  • 返回值: 函数执行的状态码:
参数类型说明
0int成功。
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_update_work_frame("test", [0,0,0,0,0,0]))

arm.rm_delete_robot_arm()

获取所有工作坐标系名称rm_get_total_work_frame()

  • 方法原型:
python
rm_get_total_work_frame(self) -> dict[str, any]:
  • 返回值:dict[str, any]: 包含以下键值的字典:
  1. return_code(int): 函数执行的状态码
参数类型说明
0int成功。
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  1. 所有工作坐标系名称
参数类型说明
tool_nameslist[str]字符串列表,表示所有工作坐标系名称。
  1. 工作坐标系名称数量
参数类型说明
lenint工作坐标系名称数量。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_get_total_work_frame())

获取指定工作坐标系rm_get_given_work_frame()

  • 方法原型:
python
rm_get_given_work_frame(self, name: str) -> tuple[int, list[float]]:
  • 参数说明:
名称类型说明
namestr指定的工作坐标系名称。
  • 返回值: tuple[int, list[float]]: 包含两个元素的元组。
  1. return_code(int): 函数执行的状态码。
参数类型说明
0int成功
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  1. 工作坐标系位姿
参数类型说明
poselist[float]工作坐标系位姿列表。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_get_given_work_frame("test"))

arm.rm_delete_robot_arm()

获取当前工作坐标系rm_get_current_work_frame()

  • 方法原型:
python
rm_get_current_work_frame(self) -> tuple[int, dict[str, any]]:
  • 返回值:tuple[int, dict[str, any]]: 包含两个元素的元组。
  1. return_code(int): 函数执行的状态码。
参数类型说明
0int成功。
1int控制器返回false,参数错误或机械臂状态发生错误。
-1int数据发送失败,通信过程中出现问题。
-2int数据接收失败,通信过程中出现问题或者控制器长久没有返回。
-3int返回值解析失败,接收到的数据格式不正确或不完整。
  1. 工作坐标系位姿
参数类型说明
rm_frame_tdict[str, any]工作坐标系字典,键为rm_frame_t的参数名。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

print(arm.rm_get_current_work_frame())

arm.rm_delete_robot_arm()