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