Skip to content

末端生态协议配置RmPlusConfig

设置末端生态协议模式rm_set_rm_plus_mode()

  • 方法原型:
python
rm_set_rm_plus_mode(self, mode: int) -> int:
  • 参数说明:
名称类型说明
modeint末端生态协议模式。0:禁用协议,9600:开启协议(波特率9600)115200:开启协议(波特率115200)256000:开启协议(波特率256000)460800:开启协议(波特率460800)
  • 返回值:

函数执行的状态码:0代表成功,其他错误码请参考API2错误代码

  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *
# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)
# 创建机械臂连接,打印连接id

# 实例化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)
# 设置末端生态协议模式
arm.rm_set_rm_plus_mode(9600)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

获取末端生态协议模式rm_get_rm_plus_mode()

  • 方法原型:
python
rm_get_rm_plus_mode(self) -> tuple[int, int]:
  • 返回值:

tuple[int, int]: 包含两个元素的元组。

  1. 函数执行的状态码:0代表成功,其他错误码请参考API2错误代码
  2. 末端生态协议模式:
    • 0:禁用协议
    • 9600:开启协议(波特率9600)
    • 115200:开启协议(波特率115200)
    • 256000:开启协议(波特率256000)
    • 460800:开启协议(波特率460800)
  • 使用示例
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)

# 获取末端生态协议模式
tag, mode = arm.rm_get_rm_plus_mode()
print(tag, mode)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

设置触觉传感器模式(末端生态协议支持)rm_set_rm_plus_touch()

  • 方法原型:
python
rm_set_rm_plus_touch(self,mode: int) -> int:
  • 参数说明:
名称类型说明
modeint触觉传感器开关状态 0:关闭触觉传感器 1:打开触觉传感器(返回处理后数据) 2:打开触觉传感器(返回原始数据)
  • 返回值:

函数执行的状态码:0成功,其他错误码请参考API2错误代码

  • 使用示例
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)
# 设置触觉传感器模式
arm.rm_set_rm_plus_touch(1)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

获取触觉传感器模式(末端生态协议支持)rm_get_rm_plus_touch()

  • 方法原型:
python
rm_get_rm_plus_touch(self) -> tuple[int,int]:
  • 返回值:

tuple[int,int]: 包含两个元素的元组。

  1. 函数执行的状态码:0成功,其他错误码请参考API2错误代码
  2. 触觉传感器开关状态:
    • 0:关闭触觉传感器
    • 1:打开触觉传感器(返回处理后数据)
    • 2:打开触觉传感器(返回原始数据)
  • 使用示例
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)
# 获取触觉传感器模式
tag, mode = arm.rm_get_rm_plus_touch()
print(tag, mode)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

读取末端设备基础信息(末端生态协议支持)rm_get_rm_plus_base_info()

  • 方法原型:
python
rm_get_rm_plus_base_info(self) -> tuple[int,dict[str, any]]:
  • 返回值:

tuple[int,dict[str, any]]: 包含两个元素的元组。

  1. 函数执行的状态码:0成功,其他错误码请参考API2错误代码
  2. 末端设备基础信息:
    • dict[str, any] 末端设备基础信息字典,键为rm_plus_base_info_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)  

# 读取末端设备基础信息
tag, base_info = arm.rm_get_rm_plus_base_info()
print(tag, base_info)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

读取末端设备实时信息(末端生态协议支持)rm_get_rm_plus_state_info()

  • 方法原型:
python
rm_get_rm_plus_state_info(self) -> tuple[int, dict[str, any]]:
  • 返回值:

tuple[int, dict[str, any]]: 包含两个元素的元组。

  1. 函数执行的状态码:0成功,其他错误码请参考API2错误代码
  2. 末端设备实时信息:
    • dict[str, any] 末端设备实时信息字典,键为rm_plus_state_info_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)

# 读取末端设备实时信息
tag, state_info = arm.rm_get_rm_plus_state_info()
print(tag, state_info)
# 断开所有连接,销毁线程
RoboticArm.rm_destroy()

读末端生态设备寄存器rm_get_rm_plus_reg

  • 方法原型:
python
rm_get_rm_plus_reg(self, addr: int, length: int) -> tuple[int, list[int]]:
  • 参数说明:
参数类型说明
addrint寄存器起始地址。注意:寄存器有效地址范围1000~1653。寄存器具体功能需参考末端生态协议定义
lengthint寄存器长度。
  • 返回值:

tuple[int, list[int]]: 包含两个元素的元组。

  1. 函数执行的状态码:0成功,其他错误码请参考API2错误代码
  2. list[int] 读取的寄存器数据列表。
  • 使用示例
python
ret = -1  # 初始化变量
mode = 0
addr = 1000
length = 11
# 调用读寄存器方法(返回状态码 ret 和数据列表 arr,列表长度为 11)
ret, arr = arm.rm_get_rm_plus_reg(addr, length)

写末端生态设备寄存器rm_set_rm_plus_reg

  • 方法原型:
python
rm_set_rm_plus_reg(self, addr: int, length: int, data: list[int]) -> int:
  • 参数说明:
参数类型说明
addrint寄存器起始地址。 注意:寄存器有效地址范围1000~1653。寄存器具体功能需参考末端生态协议定义
lengthint寄存器长度。
datalist[int]要写入的寄存器数据列表。
  • 返回值:

函数执行的状态码:0成功,其他错误码请参考API2错误代码

  • 使用示例
python
ret = -1  # 初始化变量
mode = 0
addr = 1025
length = 1
data = [1]  
ret = arm.rm_set_rm_plus_reg(addr, length, data)

设置末端工具角度跟随控制rm_set_hand_follow_angle()

设置跟随角度,最高50Hz的控制频率。

  • 灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。

  • 二指夹爪:1 个主动自由度。

注意

如果要使用此功能,需要联系技术支持发送定制的末端工具(灵巧手/夹爪)固件升级包。

  • 方法原型:
python
rm_set_hand_follow_angle(self, hand_angle: list[int], block: bool) -> int
  • 参数说明:
名称类型说明
hand_angleList[int]设置自由度角度。
设置末端灵巧手各手指动作时,hand_angle表示手指角度数组,按照灵巧手厂商定义的角度做控制。
例如,灵巧手角度的定义(单位:0.01 °):大拇指:0 ~ 7400;食指:0 ~ 8500;中指:0 ~ 8400;无名指:0 ~ 8500;小拇指:0 ~ 8400;大拇指偏摆:0 ~ 11000
blockbooltrue:表示非阻塞模式,发送成功后返回,false:表示阻塞模式,接收设置成功指令后返回。
  • 返回值:
    函数执行的状态码:

0代表成功,其他错误码请参考API2错误代码

  • 使用示例
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_hand_follow_angle([0,100,200,300,400,500], True))

arm.rm_delete_robot_arm()

设置末端工具位置跟随控制rm_set_hand_follow_pos()

设置末端工具跟随位置,最高50Hz的控制频率。

  • 灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。

  • 二指夹爪:1 个主动自由度。

注意

如果要使用此功能,需要联系技术支持发送定制的末端工具(灵巧手/夹爪)固件升级包。

  • 方法原型:
python
rm_set_hand_follow_pos(self, hand_pos: list[int], block: bool) -> int
  • 参数说明:
名称类型说明
hand_poslist[int]设置自由度位置。
设置末端二指夹爪自由度位置时,hand_pos 表示自由度位置数组,按照夹爪厂商定义的位置做控制。
例如,二指夹爪自由度的定义:运动范围:0-120mm; 驱动器行程:0-12000
blockbooltrue:表示非阻塞模式,发送成功后返回,false:表示阻塞模式,接收设置成功指令后返回。
  • 返回值:
    函数执行的状态码:

0代表成功,其他错误码请参考API2错误代码

  • 使用示例
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_hand_follow_pos([0,100,200,300,400,500], True))

arm.rm_delete_robot_arm()