跳到主要内容

接口说明

本章列出各版本 xCore SDK 所支持的接口和功能简述。不同开发语言的版本对接口的功能定义基本一致,但是参数、返回值和调用方法会有区别。

C++:实例化 rokae::Robot 类

根据机器人构型和轴数不同,C++ 版本的 SDK 提供了下列几个可供实例化的 Robot 类,初始化时会检查所选构型和轴数是否和连接的机器人匹配:

类名适用机型
xMateRobot协作6 轴
xMateErProRobot协作7 轴
StandardRobot工业6 轴
xMateCr5Robot协作CR5 轴
PCB4Robot工业4 轴
PCB3Robot工业3 轴

机器人基本操作及信息查询

简述接口参数返回
连接机器人connectToRobot()
连接机器人connectToRobot(remoteIP,localIP)remoteIP - 机器人IP 地址
localIP - 本机地址。实时模式下收发交互数据用
断开连接disconnectFromRobot()
设置连接断开回调函数setConnectionHandler(handler)handler- 回调函数, 参数为bool, true-连接 false-断开
查询机器人基本信息robotInfo()控制器版本,机型,轴数
机器人上下电急停状态powerState()on/off/Estop/Gstop
机器人上下电setPowerState(state)state - on/off
查询当前操作模式operateMode ()auto/manual
切换手自动模式setOperateMode(mode)mode - auto/manual
查询机器人运行状态operationState()idle/jog/RLprogram/moving等状态
重启工控机rebootSystem()
关闭工控机shutdownSystem()
获取当前末端/法兰位姿posture(ct)ct - 坐标系类型[X,Y,Z,Rx,Ry,Rz]
获取当前末端/法兰位姿cartPosture(ct)ct - 坐标系类型[X,Y,Z,Rx,Ry,Rz]及轴配
置参数
获取当前关节角度jointPos()各轴角度 rad
获取当前关节速度jointVel()各轴速率 rad/s
获取关节力矩jointTorque()各轴力矩 Nm
查询多个状态getStateList()当前位置,IO 信号,操作模式,速度覆盖值
查询基坐标系baseFrame()[X,Y,Z,Rx,Ry,Rz]
设置基坐标系setBaseFrame(frame)frame - 坐标系
查询当前工具工件组toolset()末端坐标系,参考坐标系,负载信息
设置工具工件组setToolset(toolset)
setToolset(toolName,wobjName)
toolset- 工具工件组信息
toolName- 工具名字
wobjName- 工件名字
计算逆解calcIk(posture)
calcIk(posture,toolset)
posture - 末端相对于外部参考坐标系位姿
toolset- 工具工件组信息
关节角度
计算正解calcFk(joints)
calcFk(joints,toolset)
joints- 关节角度
toolset - 工具工件组信息
末端相对于外部参考坐标系位姿
计算笛卡尔位姿所有逆解calcAllIkSolutions(posture, confs)posture- 笛卡尔位姿,法兰相对与基座标系。其它坐标系需自行转换
confs -对应的confdata,错误码为0时有效
逆解结果,单位弧度
清除伺服报警clearServoAlarm()
查询控制器日志queryControllerLog(count,level)count - 查询个数
level -日志等级
offset- 偏移数, 比如0代表从最新的日志开始查询, 10代表从第11条开始查询
控制器日志列表
设置碰撞检测相关参数,打开碰撞检测功能enableCollisionDetection(sensitivity,behaviour,fallback)sensitivity - 灵敏度
behaviour- 碰撞后行为
fallback- 回退距离/柔顺
关闭碰撞检测功能disableCollisionDetection()
坐标系标定calibrateFrame(type,points, is_held,base_aux)type - 坐标系类型
points - 标定轴角度列表
is_held - 手持/外部工具工件
base_aux - 基坐标系标定辅助点
标定结果:坐标系和偏差
获取当前软限位数值getSoftLimit(limits)limits - 各轴软限位已打开/已关闭
设置软限位setSoftLimit(enable,limits)enable - 打开/关闭
limits - 各轴软限位
恢复状态recoverState(item)item - 恢复选项 :急停恢复
设置导轨参数setRailParameter(name, value)name - 参数名
value - 参数值
读取导轨参数getRailParameter(name,value)name - 参数名
value - 参数值
读取机械单元参数getMechUnit(name,info,value)R -参数类型
name 参数名,u1~u6
info 参数名,见value说明
读取轴单元参数getExtAxisInfo(name,info,value)R -参数类型
name 参数名,axis1~axis6
info 参数名,见value说明
配置NTPconfigNtp(server_ip)server_ip - NTP 服务端 IP
手动同步一次 NTP 时间syncTimeWithServer0
查询 SDK 版本号sdkVersion()版本号

运动控制

非实时模式运动控制相关接口。

简述接口参数返回
设置运动控制模式setMotionControlMode(mmode)mode - NRT/RT/RL 工程
开始/继续运动moveStart()
运动重置moveReset()
暂停机器人运动stop()
添加运动指令moveAppend(command,id)command - 一条或多条 MoveL/MoveJ/MoveAbsJ/MoveC/MoveCF/MoveSP 指令
id -指令 ID ,用于执行信息反馈
设置默认运动速度setDefaultSpeed(speed)speed - 末端最大线速度
设置默认转弯区setDefaultZone(zone)zone - 转弯区半径
设置是否使用 confsetDefaultConfOpt(forced) forced - 是/否使用
设置运动指令是否使自动取消转弯区setAutoIgnoreZone(enable) enable-是否自动取消
设置最大缓存指令个数setMaxCacheSize(number)number - 个数
开始 Jog 机器人startJog(space,rate,step,index, direction)space - 参考坐标系
rate - 速率
step - 步长
index - XYZABC/J1-7
direction - 方向
开始 Jog 机器人+外部轴startJogWithExt(space, step,index, direction, fixed_name, is_ext = true) space - 参考坐标系
rate - 速率
step - 步长
index - XYZABC/J1-7
direction - 方向
fixed_name-与index配合使用
动态调整机器人运动速率adjustSpeedOnline(scale)scale - 速率
设置接收事件的回调函数setEventWatcher(eventType, callback)eventType - 事件类型
callback - 处理事件的回调函数
查询事件信息queryEventInfo(eventType) eventType - 事件类型事件信息
执行运动指令executeCommand(command)command - 一条或多条 MoveL/MoveJ/MoveAbsJ/MoveC/MoveCF/MoveSP 指令
读取当前加速度getAcceleration(acc,jerk)acc - 加速度
jerk - 加加速度
设置运动加速度adjustAcceleration(acc,jerk)acc - 加速度
jerk - 加加速度
打开奇异规避功能setAvoidSingularity(method, enable,threshold)method - 奇异规避方式
enable - 打开/关闭
threshold - 阈值参数
查询是否打开规避奇异功能getAvoidSingularity(method)method - 奇异规避方式已打开/已关闭
检验笛卡尔轨迹是否可达checkPath(start,start_joint, target)start - 起始点
start_joint - 起始关节角度
target - 目标点
计算出的目标轴角
示教器热插拔setTeachPendantMode(enable)enable true - 使用示教器 false - 不使用示教器

实时运动控制

简述接口参数返回
重新连接实时控制服务器reconnectNetwork()
断开连接disconnectNetwork()
设置周期调度setControlLoop(callback, priority,useStateDataInLoop)callback - 回调函数
priority - 线程优先级 useStateDataInLoop - 是否在回调中读取实时状态数据
开始执行调度任务startLoop(blocking) blocking - 是否阻塞
停止调度任务stopLoop ()
开始运动startMove(mode)mode - 控制模式
停止运动stopMove()
发送JointPosition/CartesianPosition/Torque命令sendCommand(cmd)cmd- 根据控制模式(RtControllerMode)不同,有3种运动命令: 关节角度/笛卡尔位姿/力矩
开始接收实时状态数据startReceiveRobotState(timeout ,fields) timeout - 超时等待时间
fields - 接收的数据列表
停止接收实时状态数据stopReceiveRobotState ()
更新机器人状态数据到当前最新updateRobotState(timeout)timeout - 超时等待时间
获取机器人状态数据getStateData(name,data)name - 数据名
data - 数据值
开启servoJ功能setServoJoint(ServoJ_T, ServoJ_Lookahead, ServoJ_Kp, )
停止servoJ功能stopServoJoint()
实时模式运动是否发生了运动错误hasMotionError()
PTP 轴空间规划运动MoveJ(speed,start,target)speed - 速度系数
start - 起始关节角度
target - 目标关节角度
PTP 笛卡尔空间直线规划运动MoveL(speed,start,target)speed - 速度系数
start - 起始位姿
target - 目标位姿
3 点圆弧规划运动MoveC(speed, start,aux,target)speed - 速度系数
start - 起始位姿
aux - 辅助点位姿
target - 目标位姿
读取DH参数getRobotCfg_DHparam(get_nominal)get_nominal false - 优化后或设置后的参数 true - 读取标称参数DH参数
设置限幅滤波参数setFilterLimit(limit,frequency)limit - 是否开启限幅
frequency - 截止频率
设置笛卡尔空间运动区域setCartesianLimit(length, frame)length - 区域长宽高
frame - 区域中心坐标系
设置关节阻抗系数setJointImpedance(factor)factor - 各关节阻抗系数
设置笛卡尔空间阻抗控制系数setCartesianImpedance(factor)factor - 系数
设置碰撞检测阈值setCollisionBehaviour(threshol d)threshold - 各关节阈值
设置末端执行器位姿setEndEffectorFrame(frame)frame - 末端相对于法兰的位 姿
设置负载setLoad(load)load - 负载信息
设置滤波截止频率setFilterFrequency(joint,cart, torque)joint - 关节位置截止频率
cart - 笛卡尔空间位置截止频率
torque - 关节力矩截止频率
设置笛卡尔空间阻抗控制末端期望力setCartesianImpedanceDesiredTorque(torque)torque - 末端期望力
设置滤波参数setTorqueFilterCutoffFrequenc y(frequency)frequency - 频率
设置力控坐标系setFcCoor(frame,type)frame - 坐标系
type - 力控任务坐标系类别
发生错误后自动恢复机器人automaticErrorRecovery()
设置网络延迟阈值setNetworkTolerance(percent)percent - 阈值半分比
切换使用 RCI 客户端useGen1RciClient(use)use -是否切换

路径规划相关

简述
S 速度规划的笛卡尔空间运动CartMotionGenerator
S 速度规划的轴空间运动JointMotionGenerator
点位跟随,点位可以是笛卡尔位姿或轴角度FollowPosition

通信相关

简述接口参数返回值
查询 DI 信号值getDI(board,port)board - IO 板序号
port - 信号端口号
on
设置 DI 信号值setDI(board,port,state)board - IO 板序号
port -信号端口号
state - 信号值
查询 DO 信号值getDO(board,port)board - IO 板序号
port - 信号端口号
on
设置 DO 信号值setDO(board,port,state)board - IO 板序号
port - 信号端口号
state - 信号值
查询 AI 信号值getAI(board,port)board - IO 板序号
port - 信号端口号
信号值
设置 AO 信号setAO(board,port,value)board - IO 板序号
port - 信号端口号
value - 信号值
设置输入仿真模式setSimulationMode(state)state - 打开/关闭
读取寄存器值readRegister(name,index,value)name - 寄存器名称
index - 寄存器数组索引value-读取的数值
写入寄存器值writeRegister(name,index,value)name - 寄存器名称
index - 寄存器数组索引
value - 写入的数值
设置 xPanel 对外供电模式setxPanelVout(opt)opt - 模式
获取末端按键状态getKeypadState()末端按键的状态
末端工具485 通信开关setxPanelRS485(Vopt,if_rs485)Vopt - 输出电压
if_rs485 - 是否打开 485 通信
485 通信读写寄存器XPRWModbusRTUReg(slave_addr,fun_cmd, reg_addr data_type,num,data_array,if_crc_reverse)slave_addr - 从站地址
fun_cmd - 功能码
reg_addr - 寄存器地址
data_type - 数据类型
num - 数据长度
data_array - 数据数组
if_crc_reverse - 是否需要 CRC 反转
485 通信读写线圈或离散输入XPRWModbusRTUCoil(slave_addr,fun_cmd, coil_addr,int num,data_array,if_crc_reverse)slave_addr - 从站地址
fun_cmd - 功能码
coil_addr - 线圈地址
num - 数据长度
data_array - 数据数组
if_crc_reverse - 是否需要 CRC 反转
485 通信裸传数据XPRS485SendData(send_byte,rev_byte,send_data,rev_data,)send_byte - 发送数据长度
rev_byte - 接收数据长度send_data - 发送数据
rev_data - 接收数据

RL工程

控制器中需要有已创建好的RL工程,支持查询工程信息和运行。

简述接口参数返回值
查询RL 工程列表projectInfo()工程名称和任务名
加载工程loadProject(name,tasks)name-工程名称
tasks-任务列表
pp-to-mainppToMain()
开始运行工程runProject()
暂停运行工程pauseProject()
设置运行速率和循环模式setProjectRunningOpt(rate,loop)rate-运行速率
loop-循环/单次
查询工具信息toolsInfo()工具名称,位姿,负载等信息
查询工件信息wobjsInfo()工件名称,位姿,负载等信息
将本地的RL工程压缩包导入控制器importProject(file_path,overwrite)file_path -本地 .zip压缩包路径, 文件大小在10M以内
overwrite- 是否覆盖同名文件,是:覆盖;否:自动重命名
工程名
删除控制器里的RL工程removeProject(project_name,remove_all)project_name- 工程名
remove_all- 是否删除所有工程,缺省值是false
导入本地文件到控制器importFile( src_file_path, dest, overwrite)src_file_path 本地文件路径。文件大小在10M以内
dest 目标路径
overwrite 覆盖同名文件
导入成功后文件名
删除控制器中文件removeFiles(file_path_list)file_path_list 文件路径的列表
设置全局工具信息setToolInfo(tool_info)tool_info 工具信息
设置全局工件信息setWobjInfo(wobj_info)wobj_info 工件信息

协作相关

包括拖动示教和路径录制相关功能。

简述接口参数返回值
打开拖动enableDrag(space,type,
enable_drag_button)
space-拖动空间
type-拖动类型
enable_drag_button-无需按键拖动
关闭拖动disableDrag()
开始录制路径startRecordPath(duration)duration-录制时长
停止录制路径stopRecordPath ()
取消录制cancelRecordPathO
保存路径saveRecordPath(name,saveAs)name-路径名称
saveAs-重命名为
路径回放replayPath(name,rate)name-路径名称
rate-回放速率
删除保存的路径removePath(name,all)name-路径名称
all -是否删除所有路径
查询路径列表queryPathLists()路径名称列表
力传感器标定calibrateForceSensor(all_axes,
axis_index)
all_axes-标定所有轴
axis_index-单轴标定下标

力控指令

简述接口参数返回值
获取当前力矩信息getEndTorque(ref_type,joint,
external,cart_torque,
cart_force)
ref _type -力矩相对的参考系
joint-各轴测量
external-各轴外部力
cart_torque-笛卡尔空间力矩
cart_force-笛卡尔空间力
力控初始化fcInit(frame_type)frame_type-力控坐标系
开始力控fcStart()
停止力控fcStop0
设置阻抗控制类型setControlType(type)type-阻抗类型
设置力控模块使用的负载setLoad(load)load-负载
设置关节阻抗刚度setJointStiffness(stiffness)stiffness-刚度
设置笛卡尔阻抗刚度setCartesianStiffness(stiffness)stiffness-刚度
设置笛卡尔零空间阻抗刚度setCartesianNullspaceStiffness(s tiffness)stiffness-刚度
设置关节期望力矩setJointDesiredTorque(torque)torque-力矩值
设置笛卡尔期望力/力矩setCartesianDesiredForce
(value)
value-期望力/力矩
设置绕单轴旋转的正弦搜索运动setSineOverlay(line_dir,
amplify,frequency,phase,bias)
line_dir-参考轴
amplify-幅值
frequency-频率
phase-相位
bias-偏置
设置平面内的莉萨如搜索运动setLissajousOverlay (int plane,
double amplify_one,double
frequency_one,double
amplify_two,
double
frequency_two,double
phase_diff,error_code &ec)
plane-参考平面
amplify_one-一方向幅值
frequency_one-一方向频率
amplify_two-二方向幅值
frequency_two-二方向频率
phase_diff相位偏差
开启搜索运动startOverlay()
停止搜索运动stopOverlayO
暂停搜索运动pauseOverlay()
重新开启暂停的搜索运动restartOverlay()
设置与接触力有关的终止条件setForceCondition(range,
isInside,timeout)
range-力限制
isInside-超出/符合限制条件
时停止等待
timeout-超时时间
设置与接触力矩有关的终止条件setTorqueCondition (range,
isInside,timeout)
range-力矩限制
isInside-超出/符合限制条件
时停止等待
timeout-超时时间
设置与接触位置有关的终止条件setPoseBoxCondition(supervisin g_frame,box,isInside,timeout)supervising_frame-长方体所
在的参考坐标系
box-长方体
isInside-超出/符合限制条件
时停止等待
timeout-超时时间
激活设置的终止条件并等待waitCondition ()
启动/关闭力控模块保护监控fcMonitor(enable)enable-打开|关闭
设置力控模式下的轴最大速度setJointMax Vel(velocity)velocity-轴速度
设置机械臂末端相对基坐标系的最大速度setCartesianMax Vel(velocity)velocity-末端速度
设置力控模式下轴最大动量setJointMaxMomentum(momen tum)momentum-动量
设置力控模式下轴最大动能setJointMaxEnergy(energy)energy-动能