Mercury API
使用以下函数接口时,请先进入我们的 API 库,否则无法成功运行。有关库的下载和导入,请参见 Mercurycpp 编译和运行。
下面的 API 使用坐标、角度控制和速度参考范围如下:
坐标范围 (X, + - 466 - mm, Y: + - 466 - mm, Z: - 240 ~ 531 mm, RX/RY/RZ: + - 180 °)
X,Y,Z 速度: 1~200; RX,RY,RZ: 速度 1~40
角度范围 (J1: + - 178 °, J2: - 74 ° ~ 130 ° (机械臂放在工作台上,不超过 110°), J3: + - 178 °, J4: - 180 ° ~ 10 °, J5: + - 178 °, J6: - 20 ° ~ 273 °, J7: + - 180 °)
速度: 1~150
1 实例化 Mercury
1.1 Mercury(char* portid, int baud)
功能:实例化 Mercury
返回值:Mercury 类型,Mercury 对象的单例实例
参数说明:参数 1:串口名 参数 2:波特率
注意:在调用下面的 API 时,不需要在单独实例化,调用此 API 即可
2 机器人整体运行状态 Overall Status
2.1 PowerOn()
功能:机械臂上电
返回值:无
参数说明:无
注意:机械臂上电后,无法手动移动机械臂
2.2 PowerOff()
功能:机械臂掉电
返回值:无
参数说明:无
注意:机械臂上电后,如果想要手动移动机械臂,可以调用此 API
2.3 isPoweredOn()
功能:控制核心连接状态查询
返回值:int 类型,0--未上电,1--上电
参数说明:无
2.4 releaseAllServos()
功能:机器人关闭力矩输出
返回值:无
参数说明:无
2.5 FocusAllServos()
功能:机器人打开力矩输出
返回值:无
参数说明:无
3 输入程序控制模式 MDI Mode and Robot Control (Manual Data Input)
3.1 GetAngle()
功能:获取单关节角度
返回值:double 类型,对应关节的角度。
参数说明:参数 1:关节号(1-7)
3.2 GetAngles();
功能:读取所有角度
返回值:double*类型,指向一个存放 1-7 关节角度的 double 数组
参数说明:无
3.3 WriteAngle(int joint, double value, int speed)
功能:发送单独角度
返回值:无
参数说明:参数 1:关节号(1-7),参数 2:角度,参数 3:速度 (1-100)
3.4 WriteAngles(double* angles, int speed)
功能:发送全部关节角度
返回值:无
参数说明:参数 1:全部角度,参数 2:速度(0-100)
3.5 GetCoords()
功能:获取全部坐标
返回值:double*类型,指向一个 double 数组
参数说明:无
3.6 WriteCoord(int axis, double value, int speed)
功能:发送单参数坐标
返回值:无
参数说明:参数 1:坐标号(1-6(X-RZ)),参数 2:坐标(X:+-466mm,Y:+-466mm,Z:-290~641mm,RX/RY/RZ:+-180°),参数 3:速度(0-100)
3.7 WriteCoords(double* coords, int speed)
功能:发送全部坐标
返回值:无
参数说明:参数 1:坐标,参数 2:速度(0-100)
3.8 ProgramPause()
功能:控制核心暂停进行的指令,可以停止所有的移动指令
返回值:无
参数说明:无
3.9 isProgramPaused()
功能:检测程序是否暂停了移动的指令
返回值:int 类型,0-未停止/1-停止
参数说明:无
3.10 ProgramResume()
功能:程序恢复移动指令,继续完成上一个指令
返回值:无
参数说明:无
3.11 TaskStop()
功能:控制核心停止所有的移动指令,程序停止
返回值:无
参数说明:无
3.12 checkRunning()()
功能:检测机器人是否在运动
返回值:int 类型,1-正在运动/0-未运动
参数说明:无
3.13 IsInPosition(double* coords, bool value)
功能:检查机械臂是否到达指定点(角度或坐标)
返回值:bool 类型,返回 false——指定的点没有到达,返回 true——指定的点已经到达
参数说明:参数 1:指向包含所有角度或坐标的数组的指针参数 2:0 或 1 (坐标为 1,角度为 0)
4 JOG 运行与操作 JOG mode and operation
4.1 JogCoord(int axis, int direction, int speed)
功能:使机械臂朝坐标轴方向运动
返回值:无
参数说明:参数 1:坐标号(1-6,x y z rx ry rz),参数 2:方向(1--正方向,0--反方向),参数 3:速度(范围:0-100)
注意:此 API 会让机械臂一直朝坐标轴正反方向运动,到达限位后或者中途调用 TaskStop 才会停止运动
4.2 JogAngle(int joint, int direction, int speed)
功能:使某个关节运动直至 TaskStop 或是到达限位
返回值:无
参数说明:参数 1:关节号(1-7),参数 2:方向(1--正方向,0--反方向),参数 3:速度(范围:0-100)
注意:此 API 会让机械臂关节一直朝正反方向运动,到达限位后或者中途调用 TaskStop 才会停止运动
4.3 JogIncrement(int joint, double increment, int speed)
功能:使某个关节运动设定的角度增量
返回值:无
参数说明:参数 1:关节号(1-7),参数 2:关节增量值,速度(范围:0-100)
注意:机械臂进行步进运动:比如当前关节 1 坐标为-100,增量值为 50,运动完后,关节 1 将为 50
5 坐标控制姿态偏转角 Coordinate Control Attitude Deflection Angle
5.1 GetSolutionAngles()
功能:获取零空间偏转角数值
返回值:double 类型零空间偏转角数值
参数说明:无
5.2 SetSolutionAngles(double angle ,int speed)
功能:设置零空间偏转角数值
返回值:无
参数说明:参数 1:零空间偏转角数值(范围+-90°);参数 2:速度(范围 0-100)
6 底座 basicIO 控制 basic IO Control
6.1 setBasicIOutput(int pin_number, int pin_signal)
功能:设置底座 IO 输出
返回值:无
参数说明:参数 1:引脚号(basic 输出引脚号),参数 2:状态(0--低电平,1--高电平)
6.2 getBasicIInput(int pin_number)
功能:读取底座 IO 输出
返回值:引脚状态,0--低电平,1--高电平
参数说明:参数 1::basic 输入引脚号
7 设置软件关节限位 Software Joint Limit
7.1 getJointMin(int joint)
功能:读取关节最小角度
返回值:double 类型,关节最小能运行到的角度
参数说明:参数 1:关节号(1-6)
7.2 getJointMax(int joint)
功能:读取关节最大角度
返回值:double 类型,关节最大能运行到的角度
参数说明:参数 1:关节号(1-6)
7.3 setJointMin(int joint, double angle)
功能:设置关节最小角度
返回值:无
参数说明:参数 1:关节号(1-6),参数 2:最小角度(关节最小能运行到的角度)
7.4 setJointMax(int joint, double angle)
功能:设置关节最大角度
返回值:无
参数说明:参数 1:关节号(1-6),参数 2:最大角度(关节最大能运行到的角度)
8 拖动示教 Drag and play
8.1 DragTechSave()
功能:启动拖动示教录制点位
返回值:无
参数说明:无
8.2 DragTechExecute()
功能:执行示教点位
返回值:无
参数说明:无
8.3 DragTechPause()
功能:暂停点位录制
返回值:无
参数说明:无
注意:暂停之后机械臂处于放松状态
9 笛卡尔空间坐标参数设定 Cartesian space coordinate parameter setting
9.1 setToolReference(double x,double y, double z, double rx, double ry, double rz)
功能:设置工具坐标系
返回值:无
参数说明:参数 1:x ,参数 2: y ,参数 3: z ,参数 4: rx ,参数 5: ry ,参数 6: rz (参数范围:x(-2800~280.00) (10xmm),y (-2800~280.00)(10xmm),z(-2800~280.00)(10xmm),rx (-3140~3140) (1000xRd),ry(-3140~3140) (1000xRd),rz (--3140~3140)(1000xRd))
9.2 getToolReference()
功能:获取工具坐标系
返回值:double *类型,指向存放 6 个 double 类型数据(x,y,z,rx,ry,rz)的数组
参数说明:无
9.3 setWorldReference(double x, double y, double z, double rx, double ry, double rz)
功能:设置世界坐标系
返回值:无
参数说明:参数 1:x ,参数 2: y ,参数 3: z ,参数 4: rx ,参数 5: ry ,参数 6: rz (参数范围:x(-2800~280.00) (10xmm),y (-2800~280.00)(10xmm),z(-2800~280.00)(10xmm),rx (-3140~3140) (1000xRd),ry(-3140~3140) (1000xRd),rz (--3140~3140)(1000xRd))
9.4 getWorldReference()
功能:获取世界坐标系
返回值:double *类型,指向存放 6 个 double 类型数据(x,y,z,rx,ry,rz)的数组
参数说明:无
9.5 setMovementType(int movement)
功能:设置移动类型
返回值:无
参数说明:参数 1:1-movel, 0-moveJ
9.6 getMovementType()
功能:获取移动类型
返回值:int 类型,1-movel, 0-moveJ
参数说明:无
9.7 setEndType(int endtype)
功能:设置末端坐标系
返回值:无
参数说明:参数 1:0-法兰 1-工具
9.8 getEndType()
功能:获取末端坐标系
返回值:int 类型,0-法兰 1-工具
参数说明:无
10 圆弧运动
10.1 WriteMovC(float transpointx, float transpointy, float transpointz, float transpointrx, float transpointry, float transpointrz, float endpointx , float endpointy , float endpointz, float endpointrx, float endpointry, float endpointrz, int speed)
功能:圆弧轨迹运动
返回值:无
参数说明:transpoint 为圆弧途径点,endpoint 为圆弧结束点。参数 1: transpointx, 参数 2: transpointy, 参数 3: transpointz,参数 4: transpointrx, 参数 5: transpointry, 参数 6: transpointrz,参数 7: endpointx , 参数 8: endpointy , 参数 9: endpointz ,参数 10: endpointrx, 参数 11: endpointry, 参数 12: endpointrz, 参数 13: 速度(1-100)
11 关节电机状态 servo state value
11.1 GetServoSpeeds()
功能:获取关节运行速度,运行时才有速度,单位:步/s
返回值:int*类型的指针,指向一个存放 1-7 关节速度大小的 int[7]数组,范围:+-3000
参数说明:无
11.2 GetServoCurrents()
功能:获取关节电流
返回值:int*类型的指针,指向一个存放 1-7 关节电流大小的 int[7]数组,范围:0-5000
参数说明:无
11.3 GetServoStatus()
功能:获取关节状态,0-->各关节正常
返回值:int*类型的指针,指向一个存放 1-7 关节状态的 int[7]数组,状态:0--ok,1-欠压,2-过温,3-过流
参数说明:无