Python:
末端生态协议配置RmPlusConfig 设置末端生态协议模式rm_set_rm_plus_mode()
- 方法原型:
python
rm_set_rm_plus_mode(self, mode: int) -> int:- 参数说明:
| 名称 | 类型 | 说明 |
|---|---|---|
mode | int | 末端生态协议模式。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]: 包含两个元素的元组。
- 函数执行的状态码:0代表成功,其他错误码请参考API2错误代码。
- 末端生态协议模式:
- 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:- 参数说明:
| 名称 | 类型 | 说明 |
|---|---|---|
mode | int | 触觉传感器开关状态 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]: 包含两个元素的元组。
- 函数执行的状态码:0成功,其他错误码请参考API2错误代码。
- 触觉传感器开关状态:
- 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]]: 包含两个元素的元组。
- 函数执行的状态码:0成功,其他错误码请参考API2错误代码。
- 末端设备基础信息:
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]]: 包含两个元素的元组。
- 函数执行的状态码:0成功,其他错误码请参考API2错误代码。
- 末端设备实时信息:
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]]:- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
addr | int | 寄存器起始地址。注意:寄存器有效地址范围1000~1653。寄存器具体功能需参考末端生态协议定义。 |
length | int | 寄存器长度。 |
- 返回值:
tuple[int, list[int]]: 包含两个元素的元组。
- 函数执行的状态码:0成功,其他错误码请参考API2错误代码。
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:- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
addr | int | 寄存器起始地址。 注意:寄存器有效地址范围1000~1653。寄存器具体功能需参考末端生态协议定义。 |
length | int | 寄存器长度。 |
data | list[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_angle | List[int] | 设置自由度角度。 设置末端灵巧手各手指动作时, hand_angle表示手指角度数组,按照灵巧手厂商定义的角度做控制。例如,灵巧手角度的定义(单位:0.01 °):大拇指:0 ~ 7400;食指:0 ~ 8500;中指:0 ~ 8400;无名指:0 ~ 8500;小拇指:0 ~ 8400;大拇指偏摆:0 ~ 11000 |
block | bool | true:表示非阻塞模式,发送成功后返回,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_pos | list[int] | 设置自由度位置。 设置末端二指夹爪自由度位置时, hand_pos 表示自由度位置数组,按照夹爪厂商定义的位置做控制。例如,二指夹爪自由度的定义:运动范围:0-120mm; 驱动器行程:0-12000 |
block | bool | true:表示非阻塞模式,发送成功后返回,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()
