API 说明

Elite CS 工控机主控支持的 API

暂不支持工控机主控

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信息