程序包 com.rokae.sdk.engine.imps

# 接口 RobotImp

所有已知实现类:
  `BaseRobot`, `CooperateRobot`, `IndustrialRobot`, `PCB3Robot`, `PCB4Robot`, `StandardRobot`, `XMateProRobot`, `XMateRobot`

public interface RobotImp
机器人基础实现类，定义机器人的公共函数；

- ## 方法概要

  修饰符和类型
  方法
  说明
  `RobotResult`
  `adjustSpeedOnline(double scale)`
  描述： 动态调整机器人运动速率； 动态调整机器人运动速率，非实时模式时生效。
  `RobotResult`
  `baseFrame()`
  描述： 读取基坐标系, 相对于世界坐标系；
  `RobotResult`
  `calcFk(double[] joints)`
  描述： 根据轴角度计算正解，轴角度转笛卡尔
  `RobotResult`
  `calcIk(CartesianPosition posture)`
  描述： 根据位姿计算逆解，笛卡尔转轴角度
  `RobotResult`
  `calibrateForceSensor(boolean all_axes, int axis_index)`
  描述： 力传感器标定。
  `RobotResult`
  `calibrateFrame(FrameType type, List<List<Double>> points, boolean is_held, double[] base_aux)`
  描述： 坐标系标定 (N点标定)
  `RobotResult`
  `carPosture(RobotT.CoordinateType ct)`
  描述： 获取机器人法兰或末端的当前位姿 ；
  `RobotResult`
  `clearServoAlarm()`
  描述： 清除伺服报警，当有伺服报警且清除失败的情况下错误码置为-1；
  `RobotResult`
  `connect()`
  描述： 连接机器人
  `RobotResult`
  `disconnect()`
  描述： 断开机器人连接
  `RobotResult`
  `getFlangePos()`
  描述： 获取法兰相对基坐标系的位置信息；
  `RobotResult`
  `getJointPos()`
  描述： 机器人当前轴角度, 单位: [rad]；
  `RobotResult`
  `getJointTorque()`
  描述： 机器人当前关节速度, 单位: [rad/8]
  `RobotResult`
  `getJointVel()`
  描述： 关节力传感器数值, 单位: [Nm]；
  `RobotResult`
  `getOperateMode()`
  描述： 获取运动模式，参考枚举RobotMode类
  `RobotResult`
  `getOperateState()`
  描述： 获取机器人运动状态，状态参考枚举RobotOperateState类
  `RobotResult`
  `getPowerState()`
  描述： 获取机器人上电状态；
  `RobotResult`
  `getRobotInfo()`
  描述： 获取机器人信息；
  `RobotResult`
  `getStateData(String fieldName)`
  描述：读取机器人状态数据
  `RobotStateList`
  `getStateList()`
  描述： 查询当前位置, IO信号, 操作模式, 速度覆盖值
  `RobotResult`
  `getToolsInfo()`
  描述： 查询当前加载工程的工具信息；
  `RobotResult`
  `getWobjsInfo()`
  描述： 查询当前加载工程的工件信息；
  `RobotResult`
  `lastErrorCode()`
  描述：获取最新的错误码;
  `RobotResult`
  `model()`
  描述：获取模型类
  `RobotResult`
  `moveReset()`
  描述： 重置运动缓存； 注意： 清空已发送的运动指令, 默认速度重置为100(v100), 默认转弯区重置为0(fine).
  `RobotResult`
  `moveStart()`
  描述： 开启机器人运动；
  `RobotResult`
  `moveStop()`
  描述： 停止机器人运动； 注意：目前支持stop2停止类型, 规划停止不断电, 参见StopLevel。
  `RobotResult`
  `posture(RobotT.CoordinateType ct)`
  描述： 获取机器人法兰或末端的当前位姿 ；
  `RobotResult`
  `queryControllerLog(int count, List<Integer> levels)`
  查询控制器最新的日志
  `List<Integer>`
  `queryControllerLogId(int count, List<Integer> levels)`
  查询控制器最新的日志ID
  `RobotResult`
  `queryEventInfo(RobotT.Event event)`
  描述：查询事件信息。
  `RobotResult`
  `recoverState(int item)`
  描述： 根据选项恢复机器人状态
  `RobotResult`
  `sdkVersion()`
  获取SDK版本号
  `RobotResult`
  `setDefaultSpeed(int speed)`
  描述： 设定默认运动速度；
  `RobotResult`
  `setDefaultZone(int zone)`
  描述： 设定默认转弯区；
  `RobotResult`
  `setEventWatcher(RobotT.Event event)`
  描述：设置接收事件的回调函数
  `RobotResult`
  `setEventWatcher(RobotT.Event event, JNICallback callback)`
  `RobotResult`
  `setMaxCacheSize(int maxNumber)`
  描述： 设置最大缓存指令个数； 指发送到控制器待规划的路径点个数，允许的范围[1,20]，初始值为10。
  `RobotResult`
  `setMotionControlMode(RobotT.MotionControlMode mode)`
  描述： 设置运动模式；
  `RobotResult`
  `setOperateMode(RobotT.RobotMode mode)`
  描述： 设置机器人运动模式；
  `RobotResult`
  `setPowerState(boolean isON)`
  描述： 设置机器人上电
  `RobotResult`
  `setToolSet(ToolSet toolSet)`
  描述： 使用已创建的工具和工件，设置工具工件组信息
  `RobotResult`
  `setToolSet(String toolName, String wobjName)`
  描述： 使用已创建的工具和工件，设置工具工件组信息
  `RobotResult`
  `startJog(RobotT.JogMotionSpace space, double rate, double step, int jogIndex, boolean direction)`
  `RobotResult`
  `startReceiveRobotState(long interval, List<String> fields)`
  描述：让机器人控制器开始发送实时状态数据。
  `RobotResult`
  `stopReceiveRobotState()`
  描述：停止接收实时状态数据，同时控制器停止发送。
  `RobotResult`
  `updateRobotState(long timeOut)`
  描述： 通过setControlLoop()设置的回调在每次执行时会更新一次状态数据，因此不需要在回调函数中调用此接口

- ## 方法详细资料

  - ### connect

    RobotResult connect()
    描述： 连接机器人
    返回:
      RobotResult类，里面包含json数据;

  - ### disconnect

    RobotResult disconnect()
    描述： 断开机器人连接
    返回:
      RobotResult类，里面包含json数据;

  - ### getRobotInfo

    RobotResult getRobotInfo()
    描述： 获取机器人信息；
    返回:
      RobotResult类，里面包含json数据;

  - ### setPowerState

    RobotResult setPowerState(boolean isON)
    描述： 设置机器人上电
    参数:
      `isON` - 是否上电，true：上电，false：下电；
    返回:
      RobotResult类，里面包含json数据;

  - ### getPowerState

    RobotResult getPowerState()
    描述： 获取机器人上电状态；
    返回:
      RobotResult类，里面包含json数据; on = 0, ///< 上电 off = 1, ///< 下电 estop = 2, ///< 急停被按下 gstop = 3, ///< 安全门打开 unknown = Unknown ///< 未知(发生异常)

  - ### setOperateMode

    RobotResult setOperateMode(RobotT.RobotMode mode)
    描述： 设置机器人运动模式；
    参数:
      `mode` - RobotMode 运动模式
    返回:
      RobotResult类，里面包含json数据;

  - ### getOperateMode

    RobotResult getOperateMode()
    描述： 获取运动模式，参考枚举RobotMode类
    返回:
      RobotResult类，里面包含json数据; 0 ： 手动 1 ： 自动 -1 ： 未知

  - ### getOperateState

    RobotResult getOperateState()
    描述： 获取机器人运动状态，状态参考枚举RobotOperateState类
    返回:
      RobotResult类，里面包含json数据; 0 : 机器人静止 1 : jog 2 : RCI控制中 3 : 拖动已开启 4 : RL工程运行中 5 : Demo演示中 6 : 动力学辨识中 7 : 摩擦力辨识中 8 : 负载辨识中 9 : 机器人运动中

  - ### getFlangePos

    RobotResult getFlangePos()
    描述： 获取法兰相对基坐标系的位置信息；
    返回:
      RobotResult类，里面包含json数据;

  - ### posture

    RobotResult posture(RobotT.CoordinateType ct)
    描述： 获取机器人法兰或末端的当前位姿 ；
    参数:
      `ct` - 坐标系类型
    返回:
      RobotResult类，里面包含json数据;

  - ### baseFrame

    RobotResult baseFrame()
    描述： 读取基坐标系, 相对于世界坐标系；
    返回:
      返回结果

  - ### setToolSet

    RobotResult setToolSet(ToolSet toolSet)
    描述： 使用已创建的工具和工件，设置工具工件组信息
    参数:
      `toolSet` - 定义的工具名称
    返回:
      返回结果

  - ### setToolSet

    RobotResult setToolSet(String toolName, String wobjName)
    描述： 使用已创建的工具和工件，设置工具工件组信息
    参数:
      `toolName` - 已定义的工具名称
      `wobjName` - 已定义的工件名称
    返回:
      设置结果；

  - ### sdkVersion

    RobotResult sdkVersion()
    获取SDK版本号
    返回:
      RobotResult；

  - ### carPosture

    RobotResult carPosture(RobotT.CoordinateType ct)
    描述： 获取机器人法兰或末端的当前位姿 ；
    参数:
      `ct` - 坐标系类型
    返回:
      RobotResult类，里面包含json数据;

  - ### setDefaultSpeed

    RobotResult setDefaultSpeed(int speed)
    描述： 设定默认运动速度；
    参数:
      `speed` - 该接口不对参数进行范围限制。末端线速度的实际有效范围分别是5-4000(协作), 5-7000(工业)。 关节速度百分比划分为5个的范围: 0 ~100 : 10% 100~200 : 30% 200~500 : 50% 500~800 : 80% ∞ ~800 : 100%
    返回:
      RobotResult类，里面包含json数据;

  - ### setDefaultZone

    RobotResult setDefaultZone(int zone)
    描述： 设定默认转弯区；
    参数:
      `zone` - 该接口不对参数进行范围限制。转弯区半径大小实际有效范围是0-200。 转弯百分比划分4个范围: 0 ~ 1 : 0 (fine) 1 ~ 20 : 10% 20 ~ 60 : 30% ∞ ~ 60 : 100%
    返回:
      RobotResult类，里面包含json数据;

  - ### setMaxCacheSize

    RobotResult setMaxCacheSize(int maxNumber)
    描述： 设置最大缓存指令个数； 指发送到控制器待规划的路径点个数，允许的范围[1,20]，初始值为10。
    参数:
      `maxNumber` - 最大个数
    返回:
      RobotResult类，里面包含json数据;

  - ### adjustSpeedOnline

    RobotResult adjustSpeedOnline(double scale)
    描述： 动态调整机器人运动速率； 动态调整机器人运动速率，非实时模式时生效。
    参数:
      `scale` - 数量百分比
    返回:
      RobotResult类，里面包含json数据;

  - ### setMotionControlMode

    RobotResult setMotionControlMode(RobotT.MotionControlMode mode)
    描述： 设置运动模式；
    参数:
      `mode` - 机器人运动控制模式
    返回:
      RobotResult类，里面包含json数据;

  - ### getToolsInfo

    RobotResult getToolsInfo()
    描述： 查询当前加载工程的工具信息；
    返回:
      RobotResult类，里面包含json数据;返回工具信息列表, 若未加载任何工程或没有创建工具, 则返回默认工具tool0的信息

  - ### getWobjsInfo

    RobotResult getWobjsInfo()
    描述： 查询当前加载工程的工件信息；
    返回:
      RobotResult类，里面包含json数据;返回工件信息列表, 若未加载任何工程或没有创建工件, 则返回空vector；

  - ### getJointPos

    RobotResult getJointPos()
    描述： 机器人当前轴角度, 单位: [rad]；
    返回:
      RobotResult类，里面包含json数据;

  - ### getJointVel

    RobotResult getJointVel()
    描述： 关节力传感器数值, 单位: [Nm]；
    返回:
      RobotResult类，里面包含json数据;

  - ### getJointTorque

    RobotResult getJointTorque()
    描述： 机器人当前关节速度, 单位: [rad/8]
    返回:
      RobotResult类，里面包含json数据;

  - ### clearServoAlarm

    RobotResult clearServoAlarm()
    描述： 清除伺服报警，当有伺服报警且清除失败的情况下错误码置为-1；
    返回:
      RobotResult类，里面包含json数据;

  - ### queryControllerLog

    RobotResult queryControllerLog(int count, List<Integer> levels)
    查询控制器最新的日志
    参数:
      `count` - 查询个数，上限是10条
      `levels` - 指定日志等级，空集合代表不指定 . info:0, warning:1, error:2
    返回:
      RobotResult类，里面包含json数据;

  - ### queryControllerLogId

    List<Integer> queryControllerLogId(int count, List<Integer> levels)
    查询控制器最新的日志ID
    参数:
      `count` - 查询个数，上限是10条
      `levels` - 指定日志等级，空集合代表不指定 . info:0, warning:1, error:2
    返回:
      List类，包含日志的ID;

  - ### moveReset

    RobotResult moveReset()
    描述： 重置运动缓存； 注意： 清空已发送的运动指令, 默认速度重置为100(v100), 默认转弯区重置为0(fine). 每次程序开始运行并第一次执行运动指令之前, 必须调用该函数来重置运动缓存, 否则控制器可能会报错
    返回:
      RobotResult类，里面包含json数据;

  - ### moveStart

    RobotResult moveStart()
    描述： 开启机器人运动；
    返回:
      RobotResult类，里面包含json数据;

  - ### moveStop

    RobotResult moveStop()
    描述： 停止机器人运动； 注意：目前支持stop2停止类型, 规划停止不断电, 参见StopLevel。 调用此接口后, 已经下发的运动指令会被清除, 不再执行。
    返回:
      RobotResult类，里面包含json数据;

  - ### startJog

    RobotResult startJog(RobotT.JogMotionSpace space, double rate, double step, int jogIndex, boolean direction)
    参数:
      `space` - jog参考坐标系。工具/工件坐标系使用的是RobotAssist右上角设定的工具/工件。
      `rate` - 速率, 范围 0.01 - 1
      `step` - 步长。单位: 笛卡尔空间-毫米 | 轴空间-度。步长大于0即可，不设置上限， 如果机器人机器人无法继续jog会自行停止运动。
      `jogIndex` - 笛卡尔空间 - 0~5分别对应XYZABC | 轴空间 - 关节序号，从0开始计数
      `direction` - 方向，true - 正向 | false - 负向
    返回:
      RobotResult类，里面包含json数据;

  - ### lastErrorCode

    RobotResult lastErrorCode()
    描述：获取最新的错误码;
    返回:
      RobotResult类，里面包含json数据;

  - ### setEventWatcher

    RobotResult setEventWatcher(RobotT.Event event)
    描述：设置接收事件的回调函数
    返回:
      RobotResult类，里面包含json数据;

  - ### setEventWatcher

    RobotResult setEventWatcher(RobotT.Event event, JNICallback callback)

  - ### queryEventInfo

    RobotResult queryEventInfo(RobotT.Event event)
    描述：查询事件信息。 与setEventWatcher()回调时的提供的信息相同，区别是这个接口是主动查询的方式
    返回:
      RobotResult类，里面包含json数据;

  - ### stopReceiveRobotState

    RobotResult stopReceiveRobotState()
    描述：停止接收实时状态数据，同时控制器停止发送。 可用于重新设置要接收的状态数据。 调用此函数后，实时运动的错误信息也会停止接收，建议在运动停止时调用。
    返回:
      RobotResult类，里面包含json数据;

  - ### updateRobotState

    RobotResult updateRobotState(long timeOut)
    描述： 通过setControlLoop()设置的回调在每次执行时会更新一次状态数据，因此不需要在回调函数中调用此接口
    参数:
      `timeOut` - 超时时间
    返回:
      接收到的数据长度。如果超时前没有收到数据，那么返回0。

  - ### getStateData

    RobotResult getStateData(String fieldName)
    描述：读取机器人状态数据
    参数:
      `fieldName` - 数据名
    返回:
      若无该数据名；或未通过startReceiveRobotState()设置为要接收的数据；或该数据类型和R不符，返回-1。 成功读取返回0。

  - ### startReceiveRobotState

    RobotResult startReceiveRobotState(long interval, List<String> fields)
    描述：让机器人控制器开始发送实时状态数据。阻塞等待收到第一帧消息，超时时间为3秒
    参数:
      `interval` - 控制器发送状态数据的间隔，允许的时长：1ms/2ms/4ms/8ms/1s
      `fields` - 接收的机器人状态数据, 最大总长度为1024个字节
    返回:
      RobotResult类，

  - ### model

    RobotResult model()
    描述：获取模型类
    返回:
      返回结果

  - ### calibrateFrame

    RobotResult calibrateFrame(FrameType type, List<List<Double>> points, boolean is_held, double[] base_aux)
    描述： 坐标系标定 (N点标定)
    参数:
      `type` - 坐标系类型，支持工具(FrameType::tool), 工件(FrameType::wobj), 基坐标系(FrameType::base)
      `points` - 轴角度列表，列表长度为N。例如，使用三点法标定工具坐标系，应传入3组轴角度。轴角度的单位是弧度。
      `is_held` - true - 机器人手持 | false - 外部。仅影响工具/工件的标定
      `base_aux` - 基坐标系标定时用到的辅助点, 单位[米]
    返回:
      标定结果，当错误码没有被置位时，标定结果有效。

  - ### calibrateForceSensor

    RobotResult calibrateForceSensor(boolean all_axes, int axis_index)
    描述： 力传感器标定。标定过程需要约100ms, 该函数不会阻塞等待标定完成。
    参数:
      `all_axes` - true - 标定所有轴 | false - 单轴标定
      `axis_index` - 轴下标, 范围[0, DoF), 仅当单轴标定时生效
    返回:
      返回结果

  - ### getStateList

    RobotStateList getStateList()
    描述： 查询当前位置, IO信号, 操作模式, 速度覆盖值
    返回:
      查询结果

  - ### recoverState

    RobotResult recoverState(int item)
    描述： 根据选项恢复机器人状态
    参数:
      `item` - 恢复选项，1：急停恢复

  - ### calcFk

    RobotResult calcFk(double[] joints)
    描述： 根据轴角度计算正解，轴角度转笛卡尔
    参数:
      `joints` - 轴角度, 单位: 弧度
    返回:
      机器人末端位姿，相对于外部参考坐标系,笛卡尔数据；

  - ### calcIk

    RobotResult calcIk(CartesianPosition posture)
    描述： 根据位姿计算逆解，笛卡尔转轴角度
    参数:
      `posture` - 机器人末端位姿，相对于外部参考坐标系
    返回:
      轴角度, 单位:弧度