DH 参数
机器人基础参数
说明: 包含有 DH 参数、关节参数、笛卡尔参数等机器人基础参数的设置与查询
1. 上位机设置当前机器人 DH 参数
命令字: 0x20C0
| 参数名 | 类型 | 说明 |
|---|---|---|
| DH | object | DH 参数对象 |
| DH.a | array | 连杆长度 a 列表,长度为当前机器人轴数 |
| DH.alpha | array | 连杆扭角 alpha 列表,长度为当前机器人轴数 |
| DH.d | array | 连杆偏距 d 列表,长度为当前机器人轴数 |
| DH.theta | array | 关节角 theta 列表,长度为当前机器人轴数 |
| eulerAngle | int | 欧拉角 |
| robotNum | int | 当前机器人号,范围[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
请求参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| robotNum | int | 当前机器人号,范围[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
| 参数名 | 类型 | 说明 |
|---|---|---|
| robotNum | int | 当前机器人号,范围[1,4] |
| jointNum | int | 机器人轴编号,范围[1,7] |
| jointParam | object | 关节参数对象 |
| jointParam.maxPos | double | 正限位,单位:度或毫米 |
| jointParam.minPos | double | 反限位,单位:度或毫米 |
| jointParam.reduceRatio | double | 硬件减速比,范围(0,1000](开关关闭时按 1 计算) |
| jointParam.reduceRatioEnable | bool | 硬件减速比开关 |
| jointParam.encoderResolution | string | 编码器位数(可切换为编码器单圈值 * inc) |
| jointParam.encodeResolutionUnit | int | 编码器单位,范围[0,1] |
| jointParam.ratedRotSpeed | double | 额定正转速,单位:转/分(可切换为度或毫米/秒) |
| jointParam.maxRotSpeed | double | 最大正转速 |
| jointParam.maxAcc | double | 最大加速度 |
| jointParam.maxDec | double | 最大减速度 |
| jointParam.maxAccJerk | double | 最大加加速度 |
| jointParam.maxDecJerk | double | 最大减减速度 |
| jointParam.angleToDistance | double | 角度距离转换比(可切换为距离角度转换比,两者乘积为 1) |
| jointParam.angleToDistanceUnit | int | 距离转换比 0:角度距离转换比 1:整圈距离转换比 |
| jointParam.reverseClearance | double | 机械间隙,单位:度或毫米 |
| jointParam.motorDirection | int | 电机方向(原模型方向),范围[-1,1] |
| jointParam.axisDirection | int | 关节方向(原关节实际方向),范围[-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
请求参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| robotNum | int | 当前机器人号,范围[1,4] |
| jointNum | int | 机器人轴编号,范围[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
| 参数名 | 类型 | 说明 |
|---|---|---|
| robotNum | int | 机器人编号,范围[1,4] |
| moveParam | object | 笛卡尔运动参数对象 |
| moveParam.interpType | int | 插补方式 |
| moveParam.posResolution | double | 绝对位置分辨率(度) |
| moveParam.maxLineVel | double | 最大线速度(毫米/秒) |
| moveParam.maxLineAcc | double | 最大线加速度(相对最大线速度) |
| moveParam.maxLineDec | double | 最大线减速度(相对最大线速度) |
| moveParam.maxAttitudeVel | double | 最大姿态速度(度/秒) |
| moveParam.decareVelLimitType | int | 速度限制方式,范围[0,1] |
| moveParam.minAccTime | int | 最小加速时间(毫秒) |
| moveParam.minDecTime | int | 最小减速时间(毫秒) |
示例 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
请求参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| robotNum | int | 机器人编号,范围[1,4] |
请求示例 JSON:
json
{
"robotNum": 1
}命令字: 0x20CA(控制器回复)
回复参数同设置参数一致。
9. 上位机设置机器人关节多圈值参数
命令字: 0x20CB
| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 当前机器人号,范围[1,4] |
| robotAxis | array | 关节多圈值参数列表,长度为当前机器人轴数 |
robotAxis 数组元素
| 参数名 | 类型 | 说明 |
|---|---|---|
| axisSlaveSum | int | 从动轴数量,范围[0,3] |
| enable | int | 编码器多圈值溢出计数功能,范围[0,1](0关闭,1开启) |
| encode | array | 编码器最大值最小值列表,长度为关节从动轴数量+1 |
encode 数组元素
| 参数名 | 类型 | 说明 |
|---|---|---|
| max | string | 编码器最大值,范围[-2^32,2^32] |
| min | string | 编码器最小值,范围[-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
请求参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 当前机器人号,范围[1,4] |
请求示例 JSON:
json
{
"robot": 1
}命令字: 0x20CD(控制器回复)
回复参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 当前机器人号,范围[1,4] |
| robotAxis | array | 关节多圈值参数列表,长度为当前机器人轴数 |
robotAxis 数组元素
| 参数名 | 类型 | 说明 |
|---|---|---|
| axisSlaveSum | int | 从动轴数量,范围[0,3] |
| enable | int | 编码器多圈值溢出计数功能,范围[0,1](0关闭,1开启) |
| encode | array | 编码器信息列表,长度为关节从动轴数量+1 |
encode 数组元素
| 参数名 | 类型 | 说明 |
|---|---|---|
| encoderRange | int | 编码器范围(未设置时为 null) |
| encoderResolution | int | 编码器分辨率(未设置时为 0) |
| encoderType | int | 多圈值类型(未设置时为 null) |
| max | string | 编码器最大值,范围[-2^32,2^32] |
| min | string | 编码器最小值,范围[-2^32,2^32](不得大于编码器最大值) |
说明: 回复内容在设置参数(0x20CB)基础上,额外返回
encoderRange、encoderResolution、encoderType字段。
回复示例 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
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 机器人类型名称 |
| presetRobotName | string | 预置机器人参数自定义名称 |
示例 JSON:
json
{
"name": "R_GENERAL_6S",
"presetRobotName": "AAA"
}12. 上位机查询可选预置参数文件
命令字: 0x20D0
无请求参数
请求示例 JSON:
json
{}命令字: 0x20D1(控制器回复)
| 参数名 | 类型 | 说明 |
|---|---|---|
| presetRobotParamFile | array | 可选预置参数文件名列表 |
回复示例 JSON:
json
{
"presetRobotParamFile": ["pre_robot_1", "pre_robot_2"]
}13. 上位机设置预置机器人参数
命令字: 0x20D2(PRESET_ROBOT_SET)
| 参数名 | 类型 | 说明 |
|---|---|---|
| presetRobotParamFile | string | 选预置参数文件 |
| jointNum | int | 机器人轴编号,范围[1,7] |
| jointParam | object | 关节参数对象 |
| jointParam.maxPos | double | 正限位,单位:度或毫米 |
| jointParam.minPos | double | 反限位,单位:度或毫米 |
| jointParam.reduceRatio | double | 硬件减速比,范围(0,1000](开关关闭时按 1 计算) |
| jointParam.reduceRatioEnable | bool | 硬件减速比开关 |
| jointParam.encoderResolution | string | 编码器位数(可切换为编码器单圈值 * inc) |
| jointParam.encodeResolutionUnit | int | 编码器单位,范围[0,1] |
| jointParam.ratedRotSpeed | double | 额定正转速,单位:转/分(可切换为度或毫米/秒) |
| jointParam.maxRotSpeed | double | 最大正转速 |
| jointParam.maxAcc | double | 最大加速度 |
| jointParam.maxDec | double | 最大减速度 |
| jointParam.maxAccJerk | double | 最大加加速度 |
| jointParam.maxDecJerk | double | 最大减减速度 |
| jointParam.angleToDistance | double | 角度距离转换比(可切换为距离角度转换比,两者乘积为 1) |
| jointParam.angleToDistanceUnit | int | 角度距离转换单位,范围[0,1] |
| jointParam.reverseClearance | double | 机械间隙,单位:度或毫米 |
| jointParam.motorDirection | int | 电机方向(原模型方向),范围[-1,1] |
| jointParam.axisDirection | int | 关节方向(原关节实际方向),范围[-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)
| 参数名 | 类型 | 说明 |
|---|---|---|
| presetRobotParamFile | string | 选预置参数文件 |
| jointNum | int | 机器人轴编号,范围[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
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| presetRobotParamFile | string | - | 预置参数文件 |
| DH | object | - | DH 参数对象 |
| DH.alpha | array | - | 连杆扭角 alpha 列表,维度为机器人轴数 |
| DH.a | array | - | 连杆长度 a 列表,维度为机器人轴数 |
| DH.theta | array | - | 关节角 theta 列表,维度为机器人轴数 |
| DH.d | array | - | 连杆偏距 d 列表,维度为机器人轴数 |
| mountingAngle | double | [0,180] | 机器人安装角 |
| eulerAngle | int | [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
| 参数名 | 类型 | 说明 |
|---|---|---|
| presetRobotParamFile | string | 预置机器人参数文件 |
请求示例 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
}