动力学
转换比
- 说明
- 力矩拖拽时需要配置力矩转换比和传感器力矩转换比
- 转换比为伺服值的比例关系,通常由伺服厂家提供
- 上位机设置转换比参数 命令字:
0x4000CONVERSION_RATIO_SET - "conversionRatioEnable":true
- 是否开启使能;bool 类型,true 开启使能,false 关闭使能
- "jointActualTorqConversionRatio":[0,0,0,0,0,0,0]
- 力矩转换比;double 类型,数组大小 7
- "jointSensorTorqConversionRatio":[0,0,0,0,0,0,0]
- 传感器力矩转换比;double 类型,数组大小 7
json
{
"conversionRatioEnable": true,
"jointActualTorqConversionRatio": [0, 0, 0, 0, 0, 0, 0],
"jointSensorTorqConversionRatio": [0, 0, 0, 0, 0, 0, 0]
}- 上位机获取转换比参数 命令字:
0x4001CONVERSION_RATIO_INQUIRE
json
{}- 控制器返回转换比参数 命令字:
0x4002CONVERSION_RATIO_RESPOND - "conversionRatioEnable":true
- 是否开启使能;bool 类型,true 开启使能,false 关闭使能
- "jointActualTorqConversionRatio":[0,0,0,0,0,0]
- 力矩转换比;double 类型,数组大小 7
- "jointSensorTorqConversionRatio":[0,0,0,0,0,0]
- 传感器力矩转换比;double 类型,数组大小 7
- "motorRatedTorque":[0,0,0,0,0,0]
- 电机额定力矩;double 类型,数组大小由关节轴数决定,仅当 sdo 从 6076 中读取到额定扭矩时存在该节点
json
{
"conversionRatioEnable": true,
"jointActualTorqConversionRatio": [0, 0, 0, 0, 0, 0],
"jointSensorTorqConversionRatio": [0, 0, 0, 0, 0, 0],
"motorRatedTorque": [0, 0, 0, 0, 0, 0]
}- 负载使能;bool 类型
- 上位机设置负载使能工艺号 命令字:
0x4003 - "payload_num":1
json
{
"payload_num":1
}- 负载使能工艺号;int 类型
- 控制器回复上位机负载使能工艺号 命令字:
0x4004 - "payload_num":1
json
{
"payload_num":1
}外部按键
- 负载使能工艺号;int 类型
- 说明
- 可通过 IO 触发相应的功能,按队列顺序分别为拖拽模式、点动模式、开始轨迹采集、结束轨迹采集、开始轨迹回放、停止轨迹回放、上使能、下使能、夹爪开、夹爪关、保存轨迹、快捷指令1、快捷指令2、快捷指令3、快捷指令4、快捷指令5
- 快捷指令范围[0,9],0表示未选择,1表示点到点指令,2表示直线指令,3表示圆弧指令,4表示整圆指令,5表示曲线指令,6表示焊接开始指令,7表示焊接结束指令,8表示摆焊开始指令,9表示摆焊结束指令
- 上位机查询功能控制参数
json
{}命令字: 0x4020
- 控制器回复上位机功能控制参数 命令字:
0x4021 - "IoInPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 各功能触发端口列表;int 类型
- 范围为当前 IO 端口数,无 IO 时为0
- "fastCommand":[0,0,0,0,0]
- 快捷指令功能选择列表;int 类型,范围[0,9]
- "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 触发硬件类型列表;int 类型
- 默认是 IO 触发
- "isClearTrack":0
- 保存后清除轨迹;int 类型,范围[0,1]
- 0表示清除,1表示不清除
- "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
- 端口触发参数列表;int 类型,范围[0,1]
- "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
- 端口触发方式列表;int 类型,范围[0,2]
- 0表示长按,1表示短按,2表示置位
- "craft":{
- "weldBeadSize":2
- 多层多道焊当前焊道数;int 类型;取值范围:1-99
- "dragTeachSelectCraft":0
json
{
"IoInPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"fastCommand":[0,0,0,0,0],
"hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"isClearTrack":0,
"modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
"parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
"craft":
{
"weldBeadSize":2
},
"dragTeachSelectCraft":0
}- 拖拽示教工艺选择;int 类型;取值范围[0,1]
- 上位机查询状态提示参数
json
{}命令字: 0x4022
- 控制器回复上位机状态提示参数 命令字:
0x4023 - "IoDoutPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 各功能触发端口列表;int 类型
- 范围为当前 IO 端口数,无 IO 时为0
- "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 触发硬件类型列表;int 类型
- 默认是 IO 触发
- "parameterArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
json
{
"IoDoutPortArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"parameterArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}- 端口触发参数列表;int 类型,范围[0,2]
- 0表示0,1表示1,2表示闪烁
- 上位机设置功能控制或状态提示参数 命令字:
0x4024 - "_isFunctionalControl":true
- 是否为功能控制参数;bool 类型
- true 表示设置功能控制参数,false 表示设置状态提示参数
- "fastCommand":[0,0,0,0,0]
- 快捷指令功能选择列表;int 类型,范围[0,9]
- "hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 触发硬件类型列表;int 类型
- 默认是 IO 触发
- "isClearTrack":0
- 保存后清除轨迹;int 类型,范围[0,1]
- 0表示清除,1表示不清除
- "modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
- 端口触发方式列表;int 类型,范围[0,2]
- 分别表示"长按""短按""置位"
- "parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]
- 端口触发参数列表;int 类型
- 功能控制时范围[0,1]
- 状态提示参数时范围[0,2],2表示"闪烁"
- "portArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 各功能触发端口列表;int 类型
- 范围为当前 IO 端口数,无 IO 时为0
- "dragTeachSelectCraft":0
json
{
"_isFunctionalControl":true,
"fastCommand":[0,0,0,0,0],
"hardwareTypeArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"isClearTrack":0,
"modeArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
"parameterArr":[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],
"portArr":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"dragTeachSelectCraft":0
}- 拖拽示教工艺选择;int 类型;取值范围[0,1]
- 控制器发送快捷插入指令 命令字:
0x4025 - "fastCommandSelectd":1
- 已选择快捷功能;int 类型,范围[0,9]
- 取值在[1,5]时"pos"和"posture"节点存在
- "name":11
- 快捷功能号;int 类型,范围[11,15]
- 分别表示快捷功能1~5
- "pos":[0.0,0.0,0.0,0.0,0.0,0.0,0.0]
- 插入指令位置信息列表;double 类型
- 长度为7
- "posture":8
json
{
"fastCommandSelectd":1,
"name":11,
"pos":[0.0,0.0,0.0,0.0,0.0,0.0,0.0],
"posture":8
}动力学参数
- 插入指令位置姿态;int 类型,范围[0,9]
- 说明
- 需要进行力矩拖拽时必须先进行一次动力学辨识
- 上位机设置动力学参数 命令字:
0x4030 - "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0]
- 动力学参数列表;double 类型
- 第1位表示质量,第2位表示质心 X,第3位表示质心 Y,第4位表示质心 Z,第5位表示惯性张量 XX,第6位表示惯性张量 XY,第7位表示惯性张量 XZ,第8位表示惯性张量 YY,第9位表示惯性张量 YZ,第10位表示惯性张量 ZZ,第11位表示动摩擦系数,第12位表示静摩擦系数
- "joint_num":6
json
{
"Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0],
"joint_num":6
}- 机器人轴数;int 类型
- 上位机查询动力学参数
json
{}命令字: 0x4031
- 控制器回复上位机动力学参数 命令字:
0x4032 - "Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0]
- 动力学参数列表;double 类型
- 第1位表示质量,第2位表示质心 X,第3位表示质心 Y,第4位表示质心 Z,第5位表示惯性张量 XX,第6位表示惯性张量 XY,第7位表示惯性张量 XZ,第8位表示惯性张量 YY,第9位表示惯性张量 YZ,第10位表示惯性张量 ZZ,第11位表示动摩擦系数,第12位表示静摩擦系数
- "joint_num":6
json
{
"Dyna_Param":[0,0,0,0,0,0,0,0,0,0,0,0],
"joint_num":6
}- 机器人轴数;int 类型
- 上位机请求参数辨识
json
{}命令字: 0x4033
- 控制器回复上位机参数辨识结果 命令字:
0x4034 - "finish":false
json
{
"finish":false
}- 辨识结束;bool 类型
- 上位机请求动力学辨识
- "goHome":true
- 是否回零;bool 类型,true 回零,false 不用回零
- "frictionIdent":true
- 是否摩擦力辨识;bool 类型,true 摩擦力辨识,false 不用辨识
- "dynamicsIdent":true
- 是否动力学辨识;bool 类型,true 动力学辨识,false 不用辨识
- "dynamicsVerify":true
- 是否误差标定辨识;bool 类型,true 误差标定辨识,false 不用辨识
json
{
"goHome": true,
"frictionIdent": true,
"dynamicsIdent": true,
"dynamicsVerify": true
}命令字: 0x4035 IDENTITY_SET
- 控制器回复上位机辨识误差值 命令字:
0x4036 - "error":[0.0,0.0,0.0,0.0,0.0,0.0]
json
{
"error":[0.0,0.0,0.0,0.0,0.0,0.0]
}- 转矩误差列表;double 类型
- 控制器回复上位机辨识结果 命令字:
0x4037 - "finish":1
json
{
"finish":1
}- 辨识结果;int 类型
- 控制器辨识过程中错误停止发送给上位机 命令字:
0x4038 - "ErrorStop":1
json
{
"ErrorStop":1
}负载辨识
- 错误停止;int 类型
- 上位机请求负载辨识数据 命令字:
0x4040 - data:无
- 上位机请求辨识计算负载质量和质心 命令字:
0x4041 - data:无
- 上位机请求辨识计算惯量 命令字:
0x4042 - data:无
- 控制器回复负载辨识结果(负载质量和质心 / 惯量) 或负载数据 命令字:
0x4043 - "result":true
- 负载辨识结果;bool 类型;
- true:负载辨识成功(显示数据);false:负载辨识失败
- "mass":3.6
- 质量;double 类型;kg
- "massCenterX":0.53
- 质心 X;double 类型;m
- "massCenterY":2.3
- 质心 Y;double 类型;m
- "massCenterZ":1.3
- 质心 Z;double 类型;m
- "Ixx":0.0
- 惯量 X;double 类型;kg·m²
- "Iyy":0.0
- 惯量 Y;double 类型;kg·m²
- "Izz":0.0
json
{
"result":true,
"mass":3.6,
"massCenterX":0.53,
"massCenterY":2.3,
"massCenterZ":1.3,
"Ixx":0.0,
"Iyy":0.0,
"Izz":0.0
}- 惯量 Z;double 类型;kg·m²
- 上位机请求保存负载数据到对应工具手 命令字:
0x4044 - "targetTool":1
json
{
"targetTool":1
}- 需要保存到工具手号;int 类型;取值范围[1,999]
- 控制器回复保存负载数据到对应工具手 命令字:
0x4045 - "result":true
json
"result":true- 保存是否成功;bool 类型
- true:保存成功;false:保存失败
- 上位机请求空载辨识 命令字:
0x4046 - data:无
- 控制器回复回应空载辨识 命令字:
0x4047 - "result":true
json
{
"result":true
}- 空载辨识结果;bool 类型;
- true:空载辨识成功;false:空载辨识失败
- 上位机请求下载空载配置文件数据 命令字:
0x4048 - data:无
- 控制器回复下载空载配置文件数据 命令字:
0x4049 - "name":"config/identification_xxxxx.json"
json
{
"name":"config/identification_xxxxx.json"
}软浮动参数
- 配置文件在控制器的路径;string 类型
- xxxx 为 bios 获取的时间
- 上位机获取软浮动参数 命令字:
0x404A - "softfloat":{}
- "num":0
json
{
"softfloat":
{
"num":0
}
}- 含义对应1-9个参数的工艺号;类型 int;取值范围[0-8]
- 控制器回复软浮动参数 命令字:
0x404B - "softfloat":{}
- "num":0
- 含义对应1-9个参数的工艺号;类型 int;取值范围[0-8]
- "percentage"[j][k]:[]
- 含义对应 关节 直角 工具 用户;类型 int;范围 j(0-3) k(0-6)
- 每种坐标系中分别的柔软度百分比(例:关节 j1 j2 j3 ...;直角 X Y Z A..)
- "coord":0
- 含义对应 工艺号选择的坐标系类型(关节 直角 工具 用户); 类型 int;范围0-3
- "note":"xxxx"
json
{
"softfloat":
{
"num":0,
"percentage":
[
[],[]......
]
"coord":0,
"note":"xxxx"
}
}- 含义注释;类型 string
- 上位机发送设置软浮动参数
- 0x404C
- "softfloat":{}
- "num":0
- 含义对应1-9个参数的工艺号;类型 int;取值范围[0-8]
- "percentage"[j]:[]
- 含义对应 关节 直角 工具 用户;类型 int;范围 j(0-3)
- 每种坐标系中分别的柔软度百分比
- "coord":0
- 含义对应 工艺号选择的坐标系类型(关节 直角 工具 用户); 类型 int;范围0-3
- "note":"xxxx"
json
{
"softfloat":
{
"num":0,
"percentage":
[
......
]
"coord":0,
"note":"xxxx"
}
}安全状态
- 含义注释;类型 string
- 上位机动力学辨识测试
- "goHome":true
- 是否回零;bool 类型,true 回零,false 不用回零
- "frictionIdent":true
- 是否摩擦力辨识;bool 类型,true 摩擦力辨识,false 不用辨识
- "dynamicsIdent":true
- 是否动力学辨识;bool 类型,true 动力学辨识,false 不用辨识
- "dynamicsVerify":true
- 是否误差标定辨识;bool 类型,true 误差标定辨识,false 不用辨识
json
{
"goHome": true,
"frictionIdent": true,
"dynamicsIdent": true,
"dynamicsVerify": true
}命令字: 0x407A SAFE_CHECK_SET
- 控制器回复上位机安全状态 命令字:
0x407B
json
{
"finish":1
}- "finish":1
- 辨识结果;int 类型
- 上位机请求设置辨识轨迹参数 命令字:
0x4077 - "traSize":10.0
- 辨识轨迹范围;int 类型,范围[1,100]
- 第一次请填入较小数值
- "traVel":100.0
json
{
"traSize":10.0,
"traVel":100.0
}- 辨识轨迹速度;int 类型,范围[1,100]
- 请先用低速测试安全,辨识用100
- 上位机查询辨识轨迹参数
json
{}命令字: 0x4078
- 控制器回复上位机辨识轨迹参数 命令字:
0x4079 - "alreadyIden":false
- 是否已完成辨识;bool 类型
- "traSize":10.0
- 辨识轨迹范围;int 类型,范围[1,100]
- "traVel":10.0
json
{
"alreadyIden":false,
"traSize":10.0,
"traVel":10.0
}- 辨识轨迹速度;int 类型,范围[1,100]
- 控制器回复上位机当前轨迹 Z 最值 命令字:
0x407C - "zMax":636.712935786949
- 当前轨迹 Z 最大值;double 类型
- "zMin":505.396403159378
json
{
"zMax":636.712935786949,
"zMin":505.396403159378
}自适应加减速
- 当前轨迹 Z 最小值;double 类型
- 说明
- 上位机设置自适应加减速阈值参数 命令字:
0x4050 - "Inertia_or_mass_or_both":[0,0,0,0,0,0]
- 各轴限制条件列表;int 类型,范围[0,2]
- 0表示"惯量",1表示"质量",2表示"并行"
- "Load_or_center":[0,0,0,0,0,0]
- 各轴参考点列表;int 类型,范围[0,1]
- 0表示"负载",1表示"旋转中心"
- "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]]
- 各轴惯量加速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中加速度的值
- "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
- 各轴惯量速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中速度的值
- "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
- 各轴质量加速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中加速度的值
- "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
- 各轴质量速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中速度的值
- "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴惯量速度对应惯量二维数组;double 类型,范围[0,100000]0.001kgm^2
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中速度对应惯量的值
- "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴惯量加速度对应惯量二维数组;double 类型,范围[0,100000]0.001kgm^2
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中加速度对应惯量的值
- "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴质量速度对应质量二维数组;double 类型,范围[0,100000]kg
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中速度对应质量的值
- "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
json
{
"Inertia_or_mass_or_both":[0,0,0,0,0,0],
"Load_or_center":[0,0,0,0,0,0],
"_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
"_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
"_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
"_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
"inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
}- 各轴质量加速度对应质量二维数组;double 类型,范围[0,100000]kg
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中加速度对应质量的值
- 上位机查询自适应加减速阈值参数
json
{}命令字: 0x4051
- 控制器回复上位机自适应加减速阈值参数 命令字:
0x4052 - "Inertia_or_mass_or_both":[0,0,0,0,0,0]
- 各轴限制条件列表;int 类型,范围[0,2]
- 0表示"惯量",1表示"质量",2表示"并行"
- "Load_or_center":[0,0,0,0,0,0]
- 各轴参考点列表;int 类型,范围[0,1]
- 0表示"负载",1表示"旋转中心"
- "_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]]
- 各轴惯量加速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中加速度的值
- "_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
- 各轴惯量速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中速度的值
- "_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
- 各轴质量加速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中加速度的值
- "_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]]
- 各轴质量速度二维数组;double 类型,范围(0,100]%
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中速度的值
- "inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴惯量速度对应惯量二维数组;double 类型,范围[0,100000]0.001kgm^2
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中速度对应惯量的值
- "inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴惯量加速度对应惯量二维数组;double 类型,范围[0,100000]0.001kgm^2
- 一维表示各轴,二维表示速度-惯量-加速度-惯量列表中加速度对应惯量的值
- "massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
- 各轴质量速度对应质量二维数组;double 类型,范围[0,100000]kg
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中速度对应质量的值
- "massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
json
{
"Inertia_or_mass_or_both":[0,0,0,0,0,0],
"Load_or_center":[0,0,0,0,0,0],
"_inertiaAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
"_inertiaSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
"_massAcc":[[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0],[50.0,50.0,50.0]],
"_massSpeed":[[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0],[10.0,20.0,30.0]],
"inertiaMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"inertiaMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"massMap_1":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
"massMap_2":[[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]
}- 各轴质量加速度对应质量二维数组;double 类型,范围[0,100000]kg
- 一维表示各轴,二维表示速度-质量-加速度-质量列表中加速度对应质量的值
- 上位机设置自适应加减速参数 命令字:
0x4053 - "arm_inertia":[0.0,0.0,0.0]
- 关节臂体惯量列表;double 类型,范围[0,99999.9]0.001kgm^2
- 分别表示为"关节1臂体惯量","关节2臂体惯量","关节3臂体惯量"
- "auto_modify_acc_enable":false
- 自适应加减速使能;bool 类型
- "joint1_mass":0.0
- 关节1质量;double 类型,范围[0,99999.9]kg
- "joint1_mass_center_to_motor_distance":0.0
- 关节1质心到电机距离;double 类型,范围[0,99999.9]m
- "joint2_mass":0.0
- 关节2质量;double 类型,范围[0,99999.9]kg
- "joint2_mass_center_to_motor_distance":0.0
- 关节2质心到电机距离;double 类型,范围[0,99999.9]m
- "joint4_mass":0.0
json
{
"arm_inertia":[0.0,0.0,0.0],
"auto_modify_acc_enable":false,
"joint1_mass":0.0,
"joint1_mass_center_to_motor_distance":0.0,
"joint2_mass":0.0,
"joint2_mass_center_to_motor_distance":0.0,
"joint4_mass":0.0
}- 关节4质量;double 类型,范围[0,99999.9]kg
- 上位机查询自适应加减速参数
json
{}命令字: 0x4054
- 控制器回复上位机自适应加减速参数 命令字:
0x4055 - "arm_inertia":[0.0,0.0,0.0]
- 关节臂体惯量列表;double 类型,范围[0,99999.9]0.001kgm^2
- 分别表示为"关节1臂体惯量","关节2臂体惯量","关节3臂体惯量"
- "auto_modify_acc_enable":false
- 自适应加减速使能;bool 类型
- "joint1_mass":0.0
- 关节1质量;double 类型,范围[0,99999.9]kg
- "joint1_mass_center_to_motor_distance":0.0
- 关节1质心到电机距离;double 类型,范围[0,99999.9]m
- "joint2_mass":0.0
- 关节2质量;double 类型,范围[0,99999.9]kg
- "joint2_mass_center_to_motor_distance":0.0
- 关节2质心到电机距离;double 类型,范围[0,99999.9]m
- "joint4_mass":0.0
json
{
"arm_inertia":[0.0,0.0,0.0],
"auto_modify_acc_enable":false,
"joint1_mass":0.0,
"joint1_mass_center_to_motor_distance":0.0,
"joint2_mass":0.0,
"joint2_mass_center_to_motor_distance":0.0,
"joint4_mass":0.0
}- 关节4质量;double 类型,范围[0,99999.9]kg
- 上位机设置位置环比参数 命令字:
0x4056 - "Dynamic_sendServoParam":false
- 位置环比发送使能;bool 类型
- "PositionalComparison":
- 位置环比参数列表
- "inertiaMax":9999.0
- 惯量最大值;double 类型,范围(0,100000]0.001kgm^2
- "inertiaMin":8.0
- 惯量最小值;double 类型,范围[0,100000)0.001kgm^2
- 惯量最小值必须小于惯量最大值
- "max":8.0
- 位置环比例增益1最小值;double 类型,范围[0,100000)
- 位置环比例增益1最小值必须小于位置环比例增益1最大值
- "min":9999.0
json
{
"Dynamic_sendServoParam":false,
"PositionalComparison":
{
"inertiaMax":9999.0,
"inertiaMin":8.0,
"max":8.0,
"min":9999.0
}
}- 位置环比例增益1最大值;double 类型,范围(0,100000]
- "max"与"min"参数在实现时写反了,后续进行修改
- 上位机查询位置环比参数
json
{}命令字: 0x4057
- 控制器回复上位机位置环比参数 命令字:
0x4058 - "Dynamic_sendServoParam":false
- 位置环比发送使能;bool 类型
- "PositionalComparison":
- 位置环比参数列表
- "inertiaMax":9999.0
- 惯量最大值;double 类型,范围(0,100000]0.001kgm^2
- "inertiaMin":8.0
- 惯量最小值;double 类型,范围[0,100000)0.001kgm^2
- 惯量最小值必须小于惯量最大值
- "max":8.0
- 位置环比例增益1最小值;double 类型,范围[0,100000)
- 位置环比例增益1最小值必须小于位置环比例增益1最大值
- "min":9999.0
json
{
"Dynamic_sendServoParam":false,
"PositionalComparison":
{
"inertiaMax":9999.0,
"inertiaMin":8.0,
"max":8.0,
"min":9999.0
}
}拖动模式
- 位置环比例增益1最大值;double 类型,范围(0,100000]
- "max"与"min"参数在实现时写反了,后续进行修改
- 说明
- 上位机设置拖拽模式参数 命令字:
0x4074 - "mode":2
- 拖动方式;int 类型,范围[0,3]
- 0表示无,1表示3D 鼠标,2表示力矩,3表示位置
- "port":0
- 外部触发信号端口;int 类型
- 范围为当前绑定的 IO 端口数
- "value":0
json
{
"mode":2,
"port":0,
"value":0
}- 外部触发信号参数;int 类型,范围[0,1]
- 上位机查询拖拽模式参数
json
{}命令字: 0x4075
- 控制器回复上位机拖拽模式参数 命令字:
0x4076 - "mode":2
- 拖动方式;int 类型,范围[0,3]
- 0表示无,1表示3D 鼠标,2表示力矩,3表示位置
- "port":0
- 外部触发信号端口;int 类型
- 范围为当前绑定的 IO 端口数
- "value":0
json
{
"mode":2,
"port":0,
"value":0
}- 外部触发信号参数;int 类型,范围[0,1]
- 上位机设置力矩参数 命令字:
0x4085 - "DecareLimit":2.50
- 笛卡尔空间线速度限制;double 类型,范围[0,∞)m/s
- "JointVelLimit":1.0
- 关节空间速度限制;double 类型,范围[0,∞)°/s
- "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0]
- 超限阻力系数;double 类型,范围[1,100]
- "drag_mode":0
- 拖动模式;int 类型,范围[0,2]
- 0表示自由拖动,1表示位置拖动,2表示姿态拖动
- "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0]
- 关节摩擦力补偿矫正系数;double 类型,范围[0,0.99]
- "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0]
- 关节目标扭矩矫正系数;double 类型,范围[0,1]
- "waitCycle":5.0
json
{
"DecareLimit":2.50,
"JointVelLimit":1.0,
"dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0],
"drag_mode":0,
"frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0],
"targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0],
"waitCycle":5.0
}- 下发给伺服力矩参数等待周期;double 类型,范围[1,10]
- 上位机查询力矩参数
json
{}命令字: 0x4086
- 控制器回复上位机力矩参数 命令字:
0x4087 - "DecareLimit":2.50
- 笛卡尔空间线速度限制;double 类型,范围[0,∞)m/s
- "JointVelLimit":1.0
- 关节空间速度限制;double 类型,范围[0,∞)°/s
- "dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0]
- 超限阻力系数;double 类型,范围[1,100]
- "drag_mode":0
- 拖动模式;int 类型,范围[0,2]
- 0表示自由拖动,1表示位置拖动,2表示姿态拖动
- "frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0]
- 关节摩擦力补偿矫正系数;double 类型,范围[0,0.99]
- "targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0]
- 关节目标扭矩矫正系数;double 类型,范围[0,1]
- "waitCycle":5.0
json
{
"DecareLimit":2.50,
"JointVelLimit":1.0,
"dragCoefficient":[5.0,5.0,5.0,5.0,5.0,5.0],
"drag_mode":0,
"frictionOffset":[0.0,0.0,0.0,0.0,0.0,0.0],
"targetTorqCoefficient":[1.0,1.0,1.0,1.0,1.0,1.0],
"waitCycle":5.0
}力学功能
- 下发给伺服力矩参数等待周期;double 类型,范围[1,10]
- 说明
- 设置碰撞检测开关需要先进行动力学辨识
- 上位机设置碰撞检测开关 命令字:
0x407D - "switch":true
json
{
"switch":true
}- 碰撞检测开关;bool 类型
- 上位机查询碰撞检测开关
json
{}命令字: 0x407E
- 控制器回复上位机碰撞检测开关 命令字:
0x407F - "is_identification":false
- 机器人是否已动力学辨识;bool 类型
- true 表示已动力学辨识,1表示未进行动力学辨识
- "restrart_switch":false
- 机器人碰撞后重启开关;bool 类型
- "switch":true
json
{
"is_identification":false,
"restrart_switch":false,
"switch":false
}- 碰撞检测开关;bool 类型
- 上位机设置碰撞检测参数 命令字:
0x4080 - "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0]
- 碰撞检测阈值(点动);double 类型,范围[1,10000]‰
- "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0]
- 碰撞检测阈值(点动);double 类型,范围[1,10000]‰
- "error_enable_time":1.0
- 误差允许时间;double 类型,范围[0,99]ms
- "pos_delay_time":1.0
json
{
"Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0],
"Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0],
"error_enable_time":1.0,
"pos_delay_time":1.0
}- 指令位置响应时间;double 类型,范围(0,99]ms
- 上位机查询碰撞检测参数
json
{}命令字: 0x4081
- 控制器回复上位机碰撞检测参数 命令字:
0x4082 - "Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0]
- 碰撞检测阈值列表(点动);double 类型,范围[1,10000]‰
- "Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0]
- 碰撞检测阈值列表(点动);double 类型,范围[1,10000]‰
- "error_enable_time":1.0
- 误差允许时间;double 类型,范围[0,99]ms
- "pos_delay_time":1.0
json
{
"Co_De_para":[50.0,50.0,50.0,50.0,50.0,50.0],
"Colli_Detec_jog":[50.0,50.0,50.0,50.0,50.0,50.0],
"error_enable_time":1.0,
"pos_delay_time":1.0
}- 指令位置响应时间;double 类型,范围(0,99]ms
- 上位机设置机器人力矩前馈 命令字:
0x4010 - "torqFeedback":false
json
{
"torqFeedback":false
}- 力矩前馈开关;bool 类型
- 上位机查询机器人力矩前馈
json
{}命令字: 0x4011
- 控制器回复上位机机器人力矩前馈 命令字:
0x4012
json
{
"torqFeedback":false
}轨迹管理
- "torqFeedback":false
- 力矩前馈开关;bool 类型
- 说明
- 轨迹保存结果通过0x4070返回
- 上位机查询拖拽轨迹是否被记录
json
{}命令字: 0x408B
- 控制器回复上位机拖拽轨迹记录结果 命令字:
0x4070 - "record":false
json
{
"record":false
}- 轨迹是否被记录;bool 类型
- 上位机请求轨迹回放 命令字:
0x4071 - "trajName":"AAA"
- 需要回放的轨迹名称;string 类型
- "vel":100
json
{
"trajName":"AAA",
"vel":100
}- 轨迹回放运行速度;int 类型,范围[1,100]
- 上位机请求保存拖拽轨迹 命令字:
0x4072 - "TrajName":"AAA"
json
{
"TrajName":"AAA"
}- 需要保存的轨迹名称;string 类型
- 若为空则保存失败
- 上位机请求删除拖拽轨迹 命令字:
0x4073 - "TrajName":"AAA"
json
{
"TrajName":"AAA"
}- 需要删除的轨迹名称;string 类型
- 上位机查询拖拽轨迹列表
json
{}命令字: 0x4083
- 控制器回复上位机拖拽轨迹列表 命令字:
0x4084 - "TrajName":["AAA"]
json
{
"TrajName":["AAA"]
}- 已保存轨迹列表;string 类型
- 长度为当前已保存轨迹数量,若无轨迹,则该节点不存在
- 上位机设置轨迹记录参数 命令字:
0x4088 - "MaxSamplingNum":300.0
- 最大采样点数;double 类型,范围(200,1200)
- "SamplingInterval":0.030
- 采样间隔;double 类型,范围[0.03,1]
- "Start":true
json
{
"MaxSamplingNum":300.0,
"SamplingInterval":0.030,
"Start":true
}- 开始/停止记录;bool 类型
- true 表示开始记录,false 表示停止记录
- false 时"MaxSamplingNum"和"SamplingInterval"可以不存在
- 上位机查询轨迹记录参数
json
{}命令字: 0x4089
- 控制器回复上位机轨迹记录参数
- 0x408A
- "MaxSamplingNum":300.0
- 最大采样点数;double 类型,范围(200,1200)
- "SamplingInterval":0.030
- 采样间隔;double 类型,范围[0.03,1]
- "Start":false
json
{
"MaxSamplingNum":300.0,
"SamplingInterval":0.030,
"Start":false
}- 开始/停止记录;bool 类型
- true 表示开始记录,false 表示停止记录
- 上位机查询拖拽轨迹文件列表
json
{}命令字: 0x408C
- 控制器回复上位机拖拽轨迹文件列表 命令字:
0x408D - "absolutepath":"dragPos/"
- 控制器中拖拽轨迹文件存放地址;string 类型
- "trajectory_filelist":["AAA","JJ","drag_traj_details.json"]
json
{
"absolutepath":"dragPos/",
"trajectory_filelist":["AAA","JJ","drag_traj_details.json"]
}- 拖拽轨迹文件列表;string 类型
- "drag_traj_details.json"为轨迹记录信息文件
额外负载参数
- 说明
- N 为机器人轴数,每行 10 个参数
- 上位机设置额外负载参数 命令字:
0x40AALINK_LOAD_DYNAMICS_PARAMS_SET - "loadDynamicsParams":[[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]
- 负载动力学参数;double 类型;N×10 数组,N 为机器人轴数
json
{
"loadDynamicsParams": [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]
}- 上位机获取额外负载参数 命令字:
0x40ABLINK_LOAD_DYNAMICS_PARAMS_INQUIRE
json
{}- 控制器返回额外负载参数 命令字:
0x40ACLINK_LOAD_DYNAMICS_PARAMS_RESPOND - "loadDynamicsParams":[[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]
- 负载动力学参数;double 类型;N×10 数组,N 为机器人轴数
json
{
"loadDynamicsParams": [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]
}本体动力学参数
- 上位机设置本体动力学参数 命令字:
0x40ADLINK_BODY_DYNAMICS_PARAMS_SET - "isIdent":true
- 动力学参数来源;bool 类型,true 辨识来源,false 全参来源
- "bodyDynamicsParams":[[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]]
- 本体动力学参数;double 类型;N×11 数组,N 为机器人轴数,仅当 isIdent=false 时需要设置
json
{
"isIdent": true,
"bodyDynamicsParams": [[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]]
}- 上位机获取本体动力学参数 命令字:
0x40AELINK_BODY_DYNAMICS_PARAMS_INQUIRE
json
{}- 控制器返回本体动力学参数 命令字:
0x40AFLINK_BODY_DYNAMICS_PARAMS_RESPOND - "isIdent":true
- 动力学参数来源;bool 类型,true 辨识来源,false 全参来源
- "bodyDynamicsParams":[[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]]
- 本体动力学参数;double 类型;N×11 数组,N 为机器人轴数
json
{
"isIdent": true,
"bodyDynamicsParams": [[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]]
}力矩前馈
- 上位机设置力矩前馈 命令字:
0x40B0TORQUE_FEEDFORWARD_SET - "feedforwardEnable":true
- 力矩前馈开关;bool 类型,true 开启,false 关闭
json
{
"feedforwardEnable": true
}- 上位机获取力矩前馈状态 命令字:
0x40B1TORQUE_FEEDFORWARD_INQUIRE
json
{}- 控制器返回力矩前馈状态 命令字:
0x40B2TORQUE_FEEDFORWARD_RESPOND - "feedforwardEnable":true
- 力矩前馈开关;bool 类型,true 开启,false 关闭
- "dynamicsParams":true
- 动力学参数是否存在;bool 类型,true 存在,false 不存在
- "fricParams":true
- 摩擦力参数是否存在;bool 类型,true 存在,false 不存在
- "torqOffset":true
- 前馈 PDO 60B2 是否存在;bool 类型,true 存在,false 不存在
json
{
"feedforwardEnable": true,
"dynamicsParams": true,
"fricParams": true,
"torqOffset": true
}关节传感器标定
- 关节传感器标零开始 命令字:
0x40B3JOINT_SENSOR_ZERO_MARK_SET
json
{}- 关节传感器清零开始 命令字:
0x40B4JOINT_SENSOR_CLEAR_ZERO_SET - "axisNum":0
- 清零轴号;int 类型,范围 [0,7],0 表示所有轴,1~7 对应轴清零
json
{
"axisNum": 0
}- 关节传感器标定状态返回 命令字:
0x40B5JOINT_SENSOR_MARK_RESPOND - "finish":true
- 标定状态;bool 类型,true 标定完成,false 中断退出
json
{
"finish": true
}3D 鼠标
- 3D 鼠标连接设置 命令字:
0x463DTHREED_MOUSE_CONNECT_STATE_SET - "mouseConnectStatus":true
- 鼠标连接状态;bool 类型,true 连接,false 断开
json
{
"mouseConnectStatus": true
}关节传感器数据
- 上位机获取关节传感器数据 命令字:
0x4639JOINT_SENSOR_DATA_INQUIRE
json
{}- 控制器返回关节传感器数据 命令字:
0x463AJOINT_SENSOR_DATA_RESPOND - "sensorConnect":true
- 传感器连接状态;bool 类型,true 连接,false 断开
- "originSensorData":[0,0,0,0,0,0]
- 传感器原始数据;double 类型,数组大小由轴数决定
- "peeloffSensorData":[0,0,0,0,0,0]
- 传感器去皮数据;double 类型,数组大小由轴数决定
- "errorSensorData":[0,0,0,0,0,0]
- 传感器误差数据;double 类型,数组大小由轴数决定
json
{
"sensorConnect": true,
"originSensorData": [0,0,0,0,0,0],
"peeloffSensorData": [0,0,0,0,0,0],
"errorSensorData": [0,0,0,0,0,0]
}