Skip to content

DH 参数

机器人基础参数

说明: 包含有 DH 参数、关节参数、笛卡尔参数等机器人基础参数的设置与查询


1. 上位机设置当前机器人 DH 参数

命令字: 0x20C0

参数名类型说明
DHobjectDH 参数对象
DH.aarray连杆长度 a 列表,长度为当前机器人轴数
DH.alphaarray连杆扭角 alpha 列表,长度为当前机器人轴数
DH.darray连杆偏距 d 列表,长度为当前机器人轴数
DH.thetaarray关节角 theta 列表,长度为当前机器人轴数
eulerAngleint欧拉角
robotNumint当前机器人号,范围[1,4]

示例 JSON:

json
{
  "DH": {
    "a": [9999.0, 9999.0, 9999.0, 0.0, 0.0],
    "alpha": [90.0, 0.0, 90.0, 90.0, -90.0],
    "d": [9999.0, 0.0, 0.0, 9999.0, 0.0],
    "theta": [0.0, 90.0, 0.0, 0.0, 90.0]
  },
  "eulerAngle": 0,
  "robotNum": 2
}

2. 上位机查询当前机器人 DH 参数

命令字: 0x20C1

请求参数

参数名类型说明
robotNumint当前机器人号,范围[1,4]

请求示例 JSON:

json
{
  "robotNum": 2
}

3. 控制器回复上位机当前机器人 DH 参数

命令字: 0x20C2

说明: 回复内容与设置内容一致。

回复示例 JSON:

json
{
  "DH": {
    "a": [9999.0, 9999.0, 9999.0, 0.0, 0.0],
    "alpha": [90.0, 0.0, 90.0, 90.0, -90.0],
    "d": [9999.0, 0.0, 0.0, 9999.0, 0.0],
    "theta": [0.0, 90.0, 0.0, 0.0, 90.0]
  },
  "eulerAngle": 0,
  "robotNum": 2
}

5. 上位机发送设置机器人关节参数

命令字: 0x20C5

参数名类型说明
robotNumint当前机器人号,范围[1,4]
jointNumint机器人轴编号,范围[1,7]
jointParamobject关节参数对象
jointParam.maxPosdouble正限位,单位:度或毫米
jointParam.minPosdouble反限位,单位:度或毫米
jointParam.reduceRatiodouble硬件减速比,范围(0,1000](开关关闭时按 1 计算)
jointParam.reduceRatioEnablebool硬件减速比开关
jointParam.encoderResolutionstring编码器位数(可切换为编码器单圈值 * inc)
jointParam.encodeResolutionUnitint编码器单位,范围[0,1]
jointParam.ratedRotSpeeddouble额定正转速,单位:转/分(可切换为度或毫米/秒)
jointParam.maxRotSpeeddouble最大正转速
jointParam.maxAccdouble最大加速度
jointParam.maxDecdouble最大减速度
jointParam.maxAccJerkdouble最大加加速度
jointParam.maxDecJerkdouble最大减减速度
jointParam.angleToDistancedouble角度距离转换比(可切换为距离角度转换比,两者乘积为 1)
jointParam.angleToDistanceUnitint距离转换比 0:角度距离转换比 1:整圈距离转换比
jointParam.reverseClearancedouble机械间隙,单位:度或毫米
jointParam.motorDirectionint电机方向(原模型方向),范围[-1,1]
jointParam.axisDirectionint关节方向(原关节实际方向),范围[-1,1]

示例 JSON:

json
{
  "robotNum": 1,
  "jointNum": 2,
  "jointParam": {
    "maxPos": 120.0,
    "minPos": -120.0,
    "reduceRatio": 57.0,
    "reduceRatioEnable": true,
    "encoderResolution": 18,
    "encodeResolutionUnit": "",
    "ratedRotSpeed": 1500.0,
    "maxRotSpeed": 1.0,
    "maxAcc": 8.0,
    "maxDec": -8.0,
    "maxAccJerk": 1.0,
    "maxDecJerk": -1.0,
    "angleToDistance": 1.0,
    "angleToDistanceUnit": 0,
    "reverseClearance": 0.0,
    "motorDirection": -1,
    "axisDirection": 1.0
  }
}

6. 上位机查询机器人关节参数

命令字: 0x20C6

请求参数

参数名类型说明
robotNumint当前机器人号,范围[1,4]
jointNumint机器人轴编号,范围[1,7]

请求示例 JSON:

json
{
  "robotNum": 1,
  "jointNum": 2
}

命令字: 0x20C7(控制器回复)

回复参数同设置参数一致,其中 robotNum 为实际读取的机器人号,范围[1,4]。

回复示例 JSON:

json
{
  "jointNum": 1,
  "jointParam": {
    "angleToDistance": 1.0,
    "angleToDistanceUnit": 0,
    "axisDirection": 1.0,
    "encodeResolutionUnit": "位",
    "encoderResolution": 0,
    "maxAcc": 0.0,
    "maxAccJerk": 0.0,
    "maxDec": 0.0,
    "maxDecJerk": 0.0,
    "maxPos": 0.0,
    "maxRotSpeed": 0.0,
    "minPos": 0.0,
    "motorDirection": 1,
    "ratedRotSpeed": 0.0,
    "reduceRatio": 0.0,
    "reduceRatioEnable": true,
    "reverseClearance": 0.0
  },
  "robotNum": 2
}

7. 上位机发送设置机器人笛卡尔参数

命令字: 0x20C8

参数名类型说明
robotNumint机器人编号,范围[1,4]
moveParamobject笛卡尔运动参数对象
moveParam.interpTypeint插补方式
moveParam.posResolutiondouble绝对位置分辨率(度)
moveParam.maxLineVeldouble最大线速度(毫米/秒)
moveParam.maxLineAccdouble最大线加速度(相对最大线速度)
moveParam.maxLineDecdouble最大线减速度(相对最大线速度)
moveParam.maxAttitudeVeldouble最大姿态速度(度/秒)
moveParam.decareVelLimitTypeint速度限制方式,范围[0,1]
moveParam.minAccTimeint最小加速时间(毫秒)
moveParam.minDecTimeint最小减速时间(毫秒)

示例 JSON:

json
{
  "robotNum": 1,
  "moveParam": {
    "interpType": 0,
    "posResolution": 0.001,
    "maxLineVel": 1000.0,
    "maxLineAcc": 1.0,
    "maxLineDec": -1.0,
    "maxAttitudeVel": 100.0,
    "decareVelLimitType": 0,
    "minAccTime": 100,
    "minDecTime": 100
  }
}

8. 上位机查询机器人笛卡尔参数

命令字: 0x20C9

请求参数

参数名类型说明
robotNumint机器人编号,范围[1,4]

请求示例 JSON:

json
{
  "robotNum": 1
}

命令字: 0x20CA(控制器回复)

回复参数同设置参数一致。


9. 上位机设置机器人关节多圈值参数

命令字: 0x20CB

参数名类型说明
robotint当前机器人号,范围[1,4]
robotAxisarray关节多圈值参数列表,长度为当前机器人轴数

robotAxis 数组元素

参数名类型说明
axisSlaveSumint从动轴数量,范围[0,3]
enableint编码器多圈值溢出计数功能,范围[0,1](0关闭,1开启)
encodearray编码器最大值最小值列表,长度为关节从动轴数量+1

encode 数组元素

参数名类型说明
maxstring编码器最大值,范围[-2^32,2^32]
minstring编码器最小值,范围[-2^32,2^32](不得大于编码器最大值)

示例 JSON:

json
{
  "robot": 1,
  "robotAxis": [
    {
      "axisSlaveSum": 0,
      "enable": 1,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "max": "32768",
          "min": "-32768"
        }
      ]
    }
  ]
}

10. 上位机查询机器人编码器多圈值参数

命令字: 0x20CC

请求参数

参数名类型说明
robotint当前机器人号,范围[1,4]

请求示例 JSON:

json
{
  "robot": 1
}

命令字: 0x20CD(控制器回复)

回复参数

参数名类型说明
robotint当前机器人号,范围[1,4]
robotAxisarray关节多圈值参数列表,长度为当前机器人轴数

robotAxis 数组元素

参数名类型说明
axisSlaveSumint从动轴数量,范围[0,3]
enableint编码器多圈值溢出计数功能,范围[0,1](0关闭,1开启)
encodearray编码器信息列表,长度为关节从动轴数量+1

encode 数组元素

参数名类型说明
encoderRangeint编码器范围(未设置时为 null)
encoderResolutionint编码器分辨率(未设置时为 0)
encoderTypeint多圈值类型(未设置时为 null)
maxstring编码器最大值,范围[-2^32,2^32]
minstring编码器最小值,范围[-2^32,2^32](不得大于编码器最大值)

说明: 回复内容在设置参数(0x20CB)基础上,额外返回 encoderRangeencoderResolutionencoderType 字段。

回复示例 JSON:

json
{
  "robot": 2,
  "robotAxis": [
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "encoderRange": null,
          "encoderResolution": 0,
          "encoderType": null,
          "max": "0",
          "min": "0"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "encoderRange": null,
          "encoderResolution": 0,
          "encoderType": null,
          "max": "0",
          "min": "0"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "encoderRange": null,
          "encoderResolution": 0,
          "encoderType": null,
          "max": "0",
          "min": "0"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "encoderRange": null,
          "encoderResolution": 0,
          "encoderType": null,
          "max": "0",
          "min": "0"
        }
      ]
    },
    {
      "axisSlaveSum": 0,
      "enable": 0,
      "encode": [
        {
          "encoderRange": null,
          "encoderResolution": 0,
          "encoderType": null,
          "max": "0",
          "min": "0"
        }
      ]
    }
  ]
}

11. 上位机申请另存为预置机器人参数文件

命令字: 0x20CE

参数名类型说明
namestring机器人类型名称
presetRobotNamestring预置机器人参数自定义名称

示例 JSON:

json
{
  "name": "R_GENERAL_6S",
  "presetRobotName": "AAA"
}

12. 上位机查询可选预置参数文件

命令字: 0x20D0

无请求参数

请求示例 JSON:

json
{}

命令字: 0x20D1(控制器回复)

参数名类型说明
presetRobotParamFilearray可选预置参数文件名列表

回复示例 JSON:

json
{
  "presetRobotParamFile": ["pre_robot_1", "pre_robot_2"]
}

13. 上位机设置预置机器人参数

命令字: 0x20D2(PRESET_ROBOT_SET)

参数名类型说明
presetRobotParamFilestring选预置参数文件
jointNumint机器人轴编号,范围[1,7]
jointParamobject关节参数对象
jointParam.maxPosdouble正限位,单位:度或毫米
jointParam.minPosdouble反限位,单位:度或毫米
jointParam.reduceRatiodouble硬件减速比,范围(0,1000](开关关闭时按 1 计算)
jointParam.reduceRatioEnablebool硬件减速比开关
jointParam.encoderResolutionstring编码器位数(可切换为编码器单圈值 * inc)
jointParam.encodeResolutionUnitint编码器单位,范围[0,1]
jointParam.ratedRotSpeeddouble额定正转速,单位:转/分(可切换为度或毫米/秒)
jointParam.maxRotSpeeddouble最大正转速
jointParam.maxAccdouble最大加速度
jointParam.maxDecdouble最大减速度
jointParam.maxAccJerkdouble最大加加速度
jointParam.maxDecJerkdouble最大减减速度
jointParam.angleToDistancedouble角度距离转换比(可切换为距离角度转换比,两者乘积为 1)
jointParam.angleToDistanceUnitint角度距离转换单位,范围[0,1]
jointParam.reverseClearancedouble机械间隙,单位:度或毫米
jointParam.motorDirectionint电机方向(原模型方向),范围[-1,1]
jointParam.axisDirectionint关节方向(原关节实际方向),范围[-1,1]

示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1",
  "jointNum": 2,
  "jointParam": {
    "maxPos": 120.0,
    "minPos": -120.0,
    "reduceRatio": 57.0,
    "reduceRatioEnable": true,
    "encoderResolution": 18,
    "encodeResolutionUnit": "",
    "ratedRotSpeed": 1500.0,
    "maxRotSpeed": 1.0,
    "maxAcc": 8.0,
    "maxDec": -8.0,
    "maxAccJerk": 1.0,
    "maxDecJerk": -1.0,
    "angleToDistance": 1.0,
    "angleToDistanceUnit": 0,
    "reverseClearance": 0.0,
    "motorDirection": -1,
    "axisDirection": 1.0
  }
}

14. 上位机查询预置机器人参数

命令字: 0x20D3(PRESET_ROBOT_INQUIRE)

参数名类型说明
presetRobotParamFilestring选预置参数文件
jointNumint机器人轴编号,范围[1,7]

请求示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1",
  "jointNum": 2
}

命令字: 0x20D4(控制器回复)

回复参数同设置参数一致。

回复示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1",
  "jointNum": 2,
  "jointParam": {
    "maxPos": 120.0,
    "minPos": -120.0,
    "reduceRatio": 57.0,
    "reduceRatioEnable": true,
    "encoderResolution": 18,
    "encodeResolutionUnit": "",
    "ratedRotSpeed": 1500.0,
    "maxRotSpeed": 1.0,
    "maxAcc": 8.0,
    "maxDec": -8.0,
    "maxAccJerk": 1.0,
    "maxDecJerk": -1.0,
    "angleToDistance": 1.0,
    "angleToDistanceUnit": 0,
    "reverseClearance": 0.0,
    "motorDirection": -1,
    "axisDirection": 1.0
  }
}

15. 上位机设置预置参数中 DH 参数

命令字: 0x20D5

参数名类型范围说明
presetRobotParamFilestring-预置参数文件
DHobject-DH 参数对象
DH.alphaarray-连杆扭角 alpha 列表,维度为机器人轴数
DH.aarray-连杆长度 a 列表,维度为机器人轴数
DH.thetaarray-关节角 theta 列表,维度为机器人轴数
DH.darray-连杆偏距 d 列表,维度为机器人轴数
mountingAngledouble[0,180]机器人安装角
eulerAngleint[0,11]欧拉角

示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1",
  "DH": {
    "alpha": [0.0],
    "a": [0.0],
    "theta": [0.0],
    "d": [0.0]
  },
  "mountingAngle": 5.0,
  "eulerAngle": 6
}

16. 上位机查询预置参数中 DH 参数

命令字: 0x20D6

参数名类型说明
presetRobotParamFilestring预置机器人参数文件

请求示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1"
}

命令字: 0x20D7(控制器回复)

回复参数同设置参数一致。

回复示例 JSON:

json
{
  "presetRobotParamFile": "pre_robot_1",
  "DH": {
    "alpha": [0.0],
    "a": [0.0],
    "theta": [0.0],
    "d": [0.0]
  },
  "mountingAngle": 5.0,
  "eulerAngle": 6
}