C、C++:
末端生态协议配置RmPlusConfig 末端生态协议支持下的末端设备基础信息与实时信息的读取。
设置末端生态协议模式rm_set_rm_plus_mode()
- 方法原型:
int rm_set_rm_plus_mode(rm_robot_handle *handle, int mode)可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
mode | 输入参数 | 末端生态协议模式。0:禁用协议 ,9600:开启协议(波特率9600),115200:开启协议(波特率115200),256000:开启协议(波特率256000),460800:开启协议(波特率460800) |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
int mode = 460800;
int ret = rm_set_rm_plus_mode(handle, mode);查询末端生态协议模式rm_get_rm_plus_mode()
- 方法原型:
int rm_get_rm_plus_mode(rm_robot_handle *handle, int *mode)可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
mode | 输出参数 | 末端生态协议模式。0:禁用协议 ,9600:开启协议(波特率9600),115200:开启协议(波特率115200),256000:开启协议(波特率256000),460800:开启协议(波特率460800)。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
int mode = 0;
int ret = rm_get_rm_plus_mode(handle, &mode);设置触觉传感器模式(末端生态协议支持)rm_set_rm_plus_touch()
- 方法原型:
int rm_set_rm_plus_touch(rm_robot_handle *handle, int mode)可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
mode | 输入参数 | 触觉传感器开关状态,0:关闭触觉传感器 ,1:打开触觉传感器(返回处理后数据) ,2:打开触觉传感器(返回原始数据)。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
int mode = 1;
int ret = rm_set_rm_plus_touch(handle, mode);获取触觉传感器模式(末端生态协议支持)rm_get_rm_plus_touch()
- 方法原型:
int rm_get_rm_plus_touch(rm_robot_handle *handle, int *mode)可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
mode | 输出参数 | 触觉传感器开关状态,0:关闭触觉传感器,1:打开触觉传感器(返回处理后数据),2:打开触觉传感器(返回原始数据)。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
int mode = 0;
int ret = rm_get_rm_plus_touch(handle, &mode);读取末端设备基础信息(末端生态协议支持)rm_get_rm_plus_base_info()
- 方法原型:
int rm_get_rm_plus_base_info(rm_robot_handle *handle, rm_plus_base_info_t *info)可以跳转rm_robot_handle和rm_plus_base_info_t查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
info | 输出参数 | 末端设备基础信息。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
rm_robot_handle *handle = NULL;
handle = rm_create_robot_arm("192.168.1.18",8080);
rm_plus_base_info_t baseinfo;
int ret = rm_get_rm_plus_base_info(handle, &baseinfo);读取末端设备实时信息(末端生态协议支持)rm_get_rm_plus_state_info()
- 方法原型:
int rm_get_rm_plus_state_info(rm_robot_handle *handle, rm_plus_state_info_t *info)可以跳转rm_robot_handle和rm_plus_state_info_t查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
info | 输出参数 | 末端设备实时信息。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
rm_robot_handle *handle = NULL;
handle = rm_create_robot_arm("192.168.1.18",8080);
rm_plus_state_info_t stateinfo;
int ret = rm_get_rm_plus_state_info(handle, &stateinfo);设置末端工具角度跟随控制 rm_set_hand_follow_angle()
设置跟随角度,最高50Hz的控制频率。
灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。
二指夹爪:1 个主动自由度。
注意
如果要使用此功能,需要联系技术支持发送定制的末端工具(灵巧手/夹爪)固件升级包。
- 方法原型:
int rm_set_hand_follow_angle(rm_robot_handle *handle, const int *hand_angle, bool block);可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
hand_angle | 输入参数 | 设置自由度角度。 设置末端灵巧手各手指动作时, hand_angle表示手指角度数组,按照灵巧手厂商定义的角度做控制。例如,灵巧手角度的定义(单位:0.01 °):大拇指:0 ~ 7400;食指:0 ~ 8500;中指:0 ~ 8400;无名指:0 ~ 8500;小拇指:0 ~ 8400;大拇指偏摆:0 ~ 11000 |
block | 输入参数 | true:表示非阻塞模式,发送成功后返回,false:表示阻塞模式,接收设置成功指令后返回。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
// 高速控制灵巧手,非阻塞模式
const int angle[6]= {0,100,200,300,400,500};
bool block = true;
ret = rm_set_hand_follow_angle(robot_handle,angle,block);设置末端工具位置跟随控制rm_set_hand_follow_pos()
设置末端工具跟随位置,最高50Hz的控制频率。
灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。
二指夹爪:1 个主动自由度。
注意
如果要使用此功能,需要联系技术支持发送定制的末端工具(灵巧手/夹爪)固件升级包。
- 方法原型:
int rm_set_hand_follow_pos(rm_robot_handle *handle, const int *hand_pos, bool block);可以跳转rm_robot_handle查阅结构体详细描述。
- 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
handle | 输入参数 | 机械臂句柄。 |
hand_pos | 输入参数 | 设置自由度位置。 设置末端二指夹爪自由度位置时, hand_pos 表示自由度位置数组,按照夹爪厂商定义的位置做控制。例如,二指夹爪自由度的定义:运动范围:0-120mm; 驱动器行程:0-12000 |
block | 输入参数 | true:表示非阻塞模式,发送成功后返回,false:表示阻塞模式,接收设置成功指令后返回。 |
- 返回值:
0代表成功,其他错误码请参考API2错误代码。
- 使用示例
// 高速控制灵巧手,非阻塞模式
const int pos[6]= {0,100,200,300,400,500};
bool block = true;
ret = rm_set_hand_follow_pos(robot_handle,pos,block);
