Skip to content

末端生态协议配置RmPlusConfig

末端生态协议支持下的末端设备基础信息与实时信息的读取。

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

  • 方法原型:
C
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错误代码

  • 使用示例
C
int mode = 460800;
int ret = rm_set_rm_plus_mode(handle, mode);

查询末端生态协议模式rm_get_rm_plus_mode()

  • 方法原型:
C
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错误代码

  • 使用示例
C
int mode = 0;
int ret = rm_get_rm_plus_mode(handle, &mode);

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

  • 方法原型:
C
int rm_set_rm_plus_touch(rm_robot_handle *handle, int mode)

可以跳转rm_robot_handle查阅结构体详细描述。

  • 参数说明:
参数类型说明
handle输入参数机械臂句柄。
mode输入参数触觉传感器开关状态,0:关闭触觉传感器 ,1:打开触觉传感器(返回处理后数据) ,2:打开触觉传感器(返回原始数据)。
  • 返回值:

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

  • 使用示例
C
int mode = 1;
int ret = rm_set_rm_plus_touch(handle, mode);

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

  • 方法原型:
C
int rm_get_rm_plus_touch(rm_robot_handle *handle, int *mode)

可以跳转rm_robot_handle查阅结构体详细描述。

  • 参数说明:
参数类型说明
handle输入参数机械臂句柄。
mode输出参数触觉传感器开关状态,0:关闭触觉传感器,1:打开触觉传感器(返回处理后数据),2:打开触觉传感器(返回原始数据)。
  • 返回值:

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

  • 使用示例
C
int mode = 0;
int ret = rm_get_rm_plus_touch(handle, &mode);

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

  • 方法原型:
C
int rm_get_rm_plus_base_info(rm_robot_handle *handle, rm_plus_base_info_t *info)

可以跳转rm_robot_handlerm_plus_base_info_t查阅结构体详细描述。

  • 参数说明:
参数类型说明
handle输入参数机械臂句柄。
info输出参数末端设备基础信息。
  • 返回值:

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

  • 使用示例
C
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()

  • 方法原型:
C
int rm_get_rm_plus_state_info(rm_robot_handle *handle, rm_plus_state_info_t *info)

可以跳转rm_robot_handlerm_plus_state_info_t查阅结构体详细描述。

  • 参数说明:
参数类型说明
handle输入参数机械臂句柄。
info输出参数末端设备实时信息。
  • 返回值:

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

  • 使用示例
C
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 个主动自由度。

注意

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

  • 方法原型:
C
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错误代码

  • 使用示例
C
// 高速控制灵巧手,非阻塞模式
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 个主动自由度。

注意

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

  • 方法原型:
C
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错误代码

  • 使用示例
C
// 高速控制灵巧手,非阻塞模式
const int pos[6]= {0,100,200,300,400,500};
bool block = true;
ret = rm_set_hand_follow_pos(robot_handle,pos,block);