API 文档

Json 内容单位为 m 和 rad(弧度), 旋转表示方式为旋转向量

控制

Move

  • moveTo
    • url: /api/control/moveTo
    • 运动到关节空间或笛卡尔空间中指定的目标点。运动轨迹为对应空间中的直线。改为立刻返回。
    • example_1: joint 设置指定目标
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      {
          "space" : "joint",
          "speedPercent" : 50,
          "target" : [1,2,3,4,5,6]
      }
      ## space : joint/cartBase
      ## speedPercent : 速度百分比,50则为50%
      ## space为cart时  target 0-5 : x,y,z,Rx,Ry,Rz
      ## space为joint时 target 0-5 : J1 - J6
        
    
    • example_2: cartBase 设置指定目标
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
      {
          "space" : "cartBase",
          "cartVel" : 1.0,
          "rotVel" : 1.0,
          "target" : [1,2,3,4,5,6]
          "blend" : {
              "method" : ""
              "param" : {
                  "blendRadius" : 0.01
              }
          }
      }
        
      ## cartVel与rotVel : 当space为cartBase时,可以用cartVel(m/s)与rotVel(rad/s)控制运动速度。
          * 使用cartVel与/或rotVel时,不能使用speedPercent。
          * 单独设置cartVel时,rotVel会依据cartVel与用户设置的最大速度按比例进行换算,反之亦然。
          * 若不确定运动的主分量是平移还是旋转,可同时设置cartVel和rotVel,以确保这两个速度限制均不被超过。
      ## blend
          * method 选择 blend 方式, 暂仅支持一种
          * param blend参数
              * blendRadius 交融半径 double(m)
        
    
    • example_3: 设置指定示教点
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      {
          "space" : "cartBase", 
          "pointIndex" : 1,
          "cartVel" : 1.0,
          "rotVel" : 1.0,
      }
        
      ## 设置示教点为目标无需指定space
        
    

  • moveRel
    • url: /api/control/moveRel
    • 在指定空间(关节/笛卡尔基座/笛卡尔工具中心点)中做指定的相对运动。运动轨迹为对应空间中的直线。
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      {
          "space" : "cartTcp",
          "speedPercent" : 50,
          "target" : [0.1,0,0,0,0,0]
      }
      ## space : joint/cartBase/cartTcp
      ## speedPercent : 速度百分比,50则为50%
      ## target : 目标偏移量,例如,上面的例子表示以50%的速度向工具中心点的x方向移动0.1m
      ## space为cart时  target 0-5 : x,y,z,Rx,Ry,Rz
      ## space为joint时 target 0-5 : J1 - J6
        
    
  • stopAllTasks
    • url: /api/control/stop
    • 停止当前任务并清空任务队列。请求会立刻返回,请求返回后,需要调用getIsTaskRunning接口以检查队列是否已清空。
  • pause
    • url: /api/control/pause
    • 暂停执行任务队列中的任务。
  • continue
    • url: /api/control/continue
    • 继续执行任务队列中的任务。
  • setSpeedPercent
    • url: /api/control/speedPercent
    • 设置当前运动速度百分比。
    • example:
    1
    2
    3
    4
    5
    
      {
          "speedPercent" : 50
      }
      ## speedPercent : 速度百分比,50则为50%,范围0.1 ~ 100
        
    

Jog

  • jog(不建议API编程用户使用,建议使用moveRel)
    • url: /api/control/jog
    • 点动。
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
      {
          "jog": {
                  "space": "joint",
                  "index": 0,
                  "step": 0.1,
                  "direction": -1,
                  "speedPercent": 50
          }
      }
      ## space : joint/cartBase/cartTcp
      ## space为cartBase或cartTcp时  index可选 0-5 : x,y,z,Rx,Ry,Rz
      ## space为joint时 index可选 0-5 : J1 - J6
      ## step  : 步进值, m 或 rad
      ## direction    : 方向 1/-1
      ## speedPercent : 速度百分比,50则为50%
        
    

Drag

  • drag
    • url: /api/control/drag
    • 进入/退出拖动模式。
    • example:
    1
    2
    3
    4
    5
    
      {
          "drag" : true
      }
      ## drag : true则开启拖动  false 则关闭拖动
        
    

写入

安全

  • setTool
    • url: /api/safety/setTool
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
      {
          "index": 1,
          "name": "T1",
          "position": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
          "mass": 100.0,
          "centerOfMass": [1.0, 2.0, 3.0],
          "inertia": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
      }
      ## index    : 正整数,区分不同tool的唯一标识
      ## name     : 名字
      ## position : 0-5 x, y, z, Rx, Ry, Rz
      ## mass     : 质量
      ## centerOfMass : 0-2 质心
      ## inertia  : 0-8 转动惯量 Ixx Ixy Ixz Iyx Iyy Iyz Izx Izy Izz
        
    

  • deleteTool
    • url: /api/safety/deleteTool
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      {
          "index" : 1
      }
      ## index : 为正整数,则删除对应编号tool
        
      {
          "index": [1, 2, 3]
      }
      ## index : 为数组,则删除数组内所有编号对应的tool
        
    

  • setDefaultTool
    • url: /api/safety/setDefaultTool
    • example:
    1
    2
    3
    4
    5
    
      {
          "index" : 1
      }
      ## index : 正整数,设置对应编号的tool为默认tool,之后每次启动都会进行加载
        
    

  • setMaxCartVel
    • url: /api/safety/setMaxCartVel
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      {
          "transVel": 1.0,
          "transAcc": 1.0,
          "transJerk": 1.0,
          "rotVel": 1.0,
          "rotAcc": 1.0,
          "rotJerk": 1.0
      }
      ## transVel : 平移速度 m/s
      ## rotVel   : 转动速度 rad/s
        
    

  • setMaxJointVel
    • url: /api/safety/setMaxJointVel
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      {
          "jointVel": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
          "jointAcc": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
          "jointJerk": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
      }
      ## jointVel : 0-5  分别为 J1 - J6 的 joint_max_vel
      ## jointAcc : 0-5  分别为 J1 - J6 的 joint_max_acc
      ## jointJerk: 0-5  分别为 J1 - J6 的 joint_max_jerk
        
    

  • resetMaxCartVel
    • url: /api/safety/resetMaxCartVel
    • 将笛卡尔速度限制重置到系统限制的50%
    • example: GET接口,无参数

  • resetMaxJointVel
    • url: /api/safety/setMaxJointVel
    • 将关节速度限制重置到系统限制的50%
    • example: GET接口,无参数

示教点

  • savePoint
    • url: /api/teach/savePoint
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      {
          "index": 1,
          "pointName": "P1",
          "joint": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
          "cart": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
      }
      ## index     : 正整数,示教点的唯一标识
      ## pointName : 示教点名字
      ## joint     : 0-5 表示 J1 - J6弧度
      ## cart      : 0-5 表示 x, y, z, Rx, Ry, Rz
        
    

  • deletePoint
    • url: /api/teach/deletePoint
    • example:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      {
          "index" : 1
      }
      ## index : 为正整数,则删除对应编号point
        
      {
          "index": [1, 2, 3]
      }
      ## index : 为数组,则删除数组内所有编号对应的point
        
    

正逆解

  • JntToCart
    • url: /api/common/JntToCart
    • 返回输入的关节角对应的笛卡尔工具中心点位置。需要注意,此结果是与当前工具设置相关的。
    • example:
    1
    2
    3
    4
    5
    
      {
              "joint": [1,2,3,4,5,6]
      }
      ## joint: 输入的关节角
        
    
    • Result:
    1
    2
    3
    4
    5
    
      {
              "cart": [1,2,3,4,5,6]
      }
      ## cart: 与输入对应的笛卡尔工具中心点位置
        
    
  • CartToJnt
    • url: /api/common/CartToJnt
    • 返回输入的笛卡尔工具中心点位置对应的关节角,需要注意,目前使用的是迭代逆解,因此建议设置一个已示教的目标点附近的关节角作为参考关节角。
    • example:
    1
    2
    3
    4
    5
    6
    7
    
      {
              "cart": [1,2,3,4,5,6]
              "jointRef": [0,0,1.5708,0,1.5708,0]
      }
      ## cart: 笛卡尔工具中心点位置
      ## jointRef: 参考关节角,将作为迭代的起点。若不设置,将使用机器人当前关节角。
        
    
    • Result:
    1
    2
    3
    4
    5
    
      {
              "joint": [1,2,3,4,5,6]
      }
      ## joint: 与输入对应的关节角
        
    

工具校准

  • 设置校准点
    • url: /api/safety/tool/calibrate/addPoint
    • 设置校准点,需要将点作为参数发送给服务,每次仅设置一个,最多设置10个,超出后需要调用clear接口清空再设置
    • example:
    1
    2
    3
    4
    5
    6
    7
    
      {
              "point" : [
                  [J1, J2, J3, J4, J5, J6]
              ]
      }
      ## point: 以Array形式输入点的关节角
        
    
    • Result:
    1
    2
    3
    4
    5
    
      {
          "count" : 4
      }
      ## 返回当前已设置点数
        
    
  • 获取之前设置的校准点
    • url: /api/safety/tool/calibrate/getPoints
    • 获取设置的校准点,如果未设置则返回null
    • GET方法无需参数
    • Result:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      {
              "points" : [
                  [J1, J2, J3, J4, J5, J6],
                  [J1, J2, J3, J4, J5, J6],
                  [J1, J2, J3, J4, J5, J6],
                  [J1, J2, J3, J4, J5, J6]
              ]
      }
      ## points: 以Array形式返回已设置点,若为空则返回null
        
    
  • 清空校准点
    • url: /api/safety/tool/calibrate/clearPoints
    • 清空所有已保存校准点,注:清空后无缓存,请将需要的点自行保存后再清空
    • GET方法无需参数
  • 开始校验
    • url: /api/safety/tool/calibrate
    • 根据已有校验点开始校验并获得结果,如果设置的点不足四个则失败
    • GET方法无需参数
    • Result:
    1
    2
    3
    4
    5
    6
    7
    
      {
              "toolCenterPoint": [x, y, z],
              "err": e
      }
      ## toolCenterPoint: 返回校准的x, y ,z
      ## err: 返回误差值(参考价值较低)
        
    

读取

此下均为get方法

通用

  • getCurStatus
    • url: /api/common/getCurStatus
    • result:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      {
              "Info": {
                      "JointInfo": [0, 1, 2, 3, 4, 5],
                      "CartInfo": [0, 1, 2, 3, 4, 5]
              }
      }
      ## jointInfo : 0-5 表示J1 - J6位置
      ## cartInfo  : 0-5 表示当前工具设置下的 x, y, z, Rx, Ry, Rz
        
    

  • getIsTaskRunning
    • url: /api/common/getIsTaskRunning
    • 检查机器人任务队列中是否有任务正在执行。注意,若当前队列中有任务且任务被暂停,此接口会返回True。
    • result:
    1
    2
    3
    4
    
      {
              "isTaskRunning" : "True"
      }
        
    

安全

  • getTool
    • url: /api/safety/getTool
    • result:暂不显示

  • getMaxCartVel
    • url: /api/safety/getMaxCartVel
    • result:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      {
          "transVel": 1.0,
          "transAcc": 1.0,
          "transJerk": 1.0,
          "rotVel": 1.0,
          "rotAcc": 1.0,
          "rotJerk": 1.0
      }
      ## transVel : 平移速度 m/s
      ## rotVel   : 转动速度 rad/s
        
    

  • getMaxJointVel
    • url: /api/safety/getMaxJointVel
    • result:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      {
              "jointVel" : [1,2,3,4,5,6],
              "jointAcc" : [1,2,3,4,5,6],
              "jointJerk": [1,2,3,4,5,6],
              "jointName": ["关节一", "关节二", "关节三", "关节四", "关节五", "关节六"]
      }
      ## jointVel : 0-5 表示J1 - J6的关节速度
      ## jointAcc : 0-5 表示J1 - J6的关节加速度
      ## jointJerk: 0-5 表示J1 - J6的关节加加速度
      ## jointName: 关节名
        
    

示教点

  • getPoints
    • url: /api/teach/getPoints
    • result:暂不显示

规划但未完成

  • getCurrentTaskId
    • url:
    • 返回机器人任务队列中当前执行任务的编号。后续实现。

  • getPointByName/getPointById
    • url:
    • 按名称或按序号获取示教点。现在不做,后续无锡或客户有需求时,确定具体实现。