API 说明

Elite CS 工控机主控支持的 API

目前只支持自动标定功能

100

获取机械臂程序版本号

支持

101

发送速度数据

不支持

102

发送加速度数据

不支持

103

发送圆滑过渡参数

不支持

104

发送工具坐标系(TCP)参数

不支持

105

设置数字量输出

不支持

106

SetJointsMovej

支持

107

SetCartMovel

支持

108

SetJoinsMovel

支持

109

SetCartMovej

支持

110

MovejSequence

不支持

111

MovelSequence

不支持

112

SetJointsMovejDo

不支持

113

SetCartMovelDo

不支持

114

SetJointsMovelDo

不支持

115

SetJointsMovejGroupDo

不支持

116

SetCartMovelGroupDo

不支持

117

SetJointsMovelGroupDo

不支持

118

MovelUntil

不支持

119

获取数字量输入状态

不支持

120

获取数字量输出状态

不支持

121

获取模拟量输入口数值

不支持

122

获取机械臂当前角度

支持

123

获取机械臂当前位姿

支持

200

机械臂后台发送状态

支持

Elite CS 机械臂主控支持的 API

Elite CS协作臂支持的和xyz相关的api放在 xyz_master_api.script 中,以下选取重要api进行介绍,其他api可以参考脚本文件或者模板程序。

注1:脚本语法同python

注2:Elite也提供了官方脚本api,如运动指令、io控制、数学指令等,请参考官方脚本文档

xyz_client_disconnect() None

关闭socket连接

xyz_client_connect(server_ip='192.168.41.1', port=11111) None

连接到Max

参数
  • server_ip – 服务端(max)的ip地址

  • port (int) – 端口号

xyz_heart_beat() int

发送心跳信号

返回

error_code

返回类型

int

xyz_switch_task(task_codename: str) int

切换任务

参数

task_codename (string) – 任务代号

返回

error_code

返回类型

int

xyz_switch_tool(tool_id: int) int

切换工具

参数

tool_id (int) – 工具id

返回

error_code

返回类型

int

xyz_call_vision_cmd(vs_id: int, vision_codename: str) int

呼叫视觉命令

参数
  • vs_id (int) – 视觉服务id

  • vision_codename (string) – 视觉命令代号

返回

error_code

返回类型

int

xyz_request_grasp_pose(vs_id: int) Tuple[int, int]

请求抓取目标点位

参数

vs_id (int) – 视觉服务id

返回

error_code, token

返回类型

Tuple[int, int]

xyz_get_grasp_pose(token: int) Tuple

获取抓取目标点位

参数

token (int) – xyz_request_grasp_pose()返回的token值

返回

(error_code, grasp_pose, grasp_pose_num, pipeline_num, register_num, int1, int2, int3, int4, int5, int6)

返回类型

Tuple[int, int]

xyz_request_object_pose(vs_id: int) Tuple[int, int]

请求物体位姿

参数

vs_id (int) – 视觉服务id

返回

error_code, token

返回类型

Tuple[int, int]

xyz_get_object_pose(token: int) Tuple

获取物体位姿

参数

token (int) – xyz_request_object_pose()返回的token值

返回

(error_code, object_pose, object_pose_num, object_name, int1, int2, int3, int4, int5, int6)

返回类型

Tuple[int, int]

xyz_reset_task() int

重置任务,下位机在初始化时需要调用该指令

返回

error_code

返回类型

int

xyz_send_current_joints() int

发送机器人当前角度

返回

error_code

返回类型

int

xyz_send_current_cart_pose() int

发送机器人当前Cartesian坐标

返回

error_code

返回类型

int

xyz_send_current_ext_joints() int

暂不支持

返回

error_code

返回类型

int

xyz_request_pick_place(vs_id: int) int

请求抓放规划

参数

vs_id (int) – 视觉服务id

返回

error_code

返回类型

int

xyz_get_pick_in(vs_id: int) Tuple

获取取料入框轨迹,轨迹执行可以参考后面的轨迹执行函数

参数

vs_id (int) – 视觉服务id

返回

error_code, pipeline_num, register_num, traj_pose_num, traj

返回类型

Tuple

xyz_get_pick_out(vs_id: int) Tuple

获取取料出框轨迹,轨迹执行可以参考后面的轨迹执行函数

参数

vs_id (int) – 视觉服务id

返回

error_code, pipeline_num, register_num, traj_pose_num, traj

返回类型

Tuple

xyz_get_place_in(vs_id: int) Tuple

获取放料入框轨迹,轨迹执行可以参考后面的轨迹执行函数

参数

vs_id (int) – 视觉服务id

返回

error_code, pipeline_num, register_num, traj_pose_num, traj

返回类型

Tuple

xyz_get_place_out(vs_id: int) Tuple

获取放料出框轨迹,轨迹执行可以参考后面的轨迹执行函数

参数

vs_id (int) – 视觉服务id

返回

error_code, pipeline_num, register_num, traj_pose_num, traj

返回类型

Tuple

xyz_update_tote_pose(vs_id: int) int

料箱重定位

参数

vs_id (int) – 视觉服务id

返回

error_code

返回类型

int

xyz_update_object_pose_in_hand() Tuple

工件在手上的二次定位

返回

error_code, place_pose

返回类型

Tuple

xyz_switch_item(vs_id: int, item_codename: str) int

切换工件

参数
  • vs_id (int) – 视觉服务id

  • item_codename (string) – 工件代号

返回

error_code

返回类型

int

xyz_calculate_grasp_pose(vs_id: int) Tuple

计算抓取目标点位

等价于执行 xyz_request_grasp_pose() + xyz_get_grasp_pose()

参数

vs_id (int) – 视觉服务id

返回

(error_code, grasp_pose, grasp_pose_num, pipeline_num, register_num, int1, int2, int3, int4, int5, int6)

返回类型

Tuple[int, int]

xyz_calculate_object_pose(vs_id: int) Tuple

计算物体位姿

等价于执行 xyz_request_object_pose() + xyz_get_object_pose()

参数

vs_id (int) – 视觉服务id

返回

(error_code, object_pose, object_pose_num, object_name, int1, int2, int3, int4, int5, int6)

返回类型

Tuple[int, int]

xyz_usr_cmd(str_5=None, int_10=None, float_10=None, cart_pose=None, joints=None) Tuple

用户指令

用于基础指令不支持的情况下,配合任务流图完成用户特定功能

各个参数的含义取决于任务流图中设定的输入输出

参数
  • str_5 (list[str]) – 5个字符串输入

  • int_10 (list[int]) – 10个int输入

  • float_10 (list[float]) – 10个float输入

  • cart_pose – [x,y,z,rx,ry,rz] in XYZ unit (mm/deg)

  • cart_pose – list[float]

  • joints – [j1,j2,j3,j4,j5,j6] in XYZ unit (deg)

  • joints – list[float]

返回

Tuple contains:

  • error_code:

  • out_str_5: list[str]

  • out_int_10: list[int]

  • out_float_10: list[float]

  • out_cart_pose: [x,y,z,rx,ry,rz] in Elite unit (m/rad)

  • out_joints: [j1,j2,j3,j4,j5,j6] in Elite unit (rad)

xyz_exec_pick_in_traj(traj: list) None

执行pick-in轨迹,特点是执行最后一个点的时候速度比较慢

要求轨迹中至少有2个点

可以调整轨迹执行的速度、圆滑等参数,具体详见api中的函数代码

参数

traj (list) – 轨迹点,来源于xyz_get_pick_in()/xyz_get_pick_out()/xyz_get_place_in()/xyz_get_place_out()中返回的轨迹

返回

error_code

返回类型

int

xyz_exec_pick_out_traj(traj: list) None

执行pick-out轨迹,特点是执行第一个点时速度较慢

要求轨迹中至少有2个点

可以调整轨迹执行的速度、圆滑等参数,具体详见api中的函数代码

参数

traj (list) – 轨迹点,来源于xyz_get_pick_in()/xyz_get_pick_out()/xyz_get_place_in()/xyz_get_place_out()中返回的轨迹

返回

error_code

返回类型

int

xyz_exec_general_traj(traj: list) None

执行轨迹,全程用同一套速度、圆滑等参数

要求轨迹中至少有1个点

可以调整轨迹执行的速度、圆滑等参数,具体详见api中的函数代码

参数

traj (list) – 轨迹点,来源于xyz_get_pick_in()/xyz_get_pick_out()/xyz_get_place_in()/xyz_get_place_out()中返回的轨迹

返回

error_code

返回类型

int

xyz_joints_movej(ap: [], vel_angular: float = 60.0, acc_angular: float = 80.0, r_angular: float = 0.0, is_elite_unit: bool = True)

执行MoveJ(joints)

参数
  • ap – axis_pose, [j1,..,j6], unit rad or degree, depends on is_elite_unit

  • vel_angular – °/s

  • acc_angular – °/s^2

  • r_angular – mm

  • is_elite_unit – set to True if unit rad in ap, False if unit degree in ap

xyz_cart_movel(cp: [], vel_linear: float = 250.0, acc_linear: float = 1200.0, r_linear: float = 0, is_elite_unit: bool = True)

执行MoveL(cart)

参数
  • cp – cart_pose, [x,y,z,rx,ry,rz], unit mm/deg or m/rad, depends on is_elite_unit

  • vel_linear – mm/s

  • acc_linear – mm/s^2

  • r_linear – mm

  • is_elite_unit – set to True if unit m/rad in cp, False if unit mm/deg in cp

xyz_joints_movel(ap: [], vel_linear: float = 250.0, acc_linear: float = 1200.0, r_linear: float = 0, is_elite_unit: bool = True)

执行MoveL(joints)

参数
  • ap – axis_pose, [j1,..,j6], unit rad or degree, depends on is_elite_unit

  • vel_linear – mm/s

  • acc_linear – mm/s^2

  • r_linear – mm

  • is_elite_unit – set to True if unit rad in ap, False if unit degree in ap

xyz_cart_movej(cp: [], vel_angular: float = 60.0, acc_angular: float = 80.0, r_angular: float = 0.0, is_elite_unit: bool = True)

执行MoveJ(cp)

涉及到逆解,有可能报错,慎重使用

参数
  • cp – cart_pose, [x,y,z,rx,ry,rz], unit mm/deg or m/rad, depends on is_elite_unit

  • vel_angular – °/s

  • acc_angular – °/s^2

  • r_angular – mm

  • is_elite_unit – set to True if unit m/rad in cp, False if unit mm/deg in cp

xyz_check_error_code(error_code: int)

判断error_code是否正确,如果有错误就弹窗报警

参数

err_code (int) –

xyz_print_info(msg: str)

弹窗打印info信息

参数

msg – info信息

xyz_print_error(msg: str)

弹窗打印报错信息

参数

msg – info信息