1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379 | version: # 版本号
major: 9
minor: 0
build: 0
serial: xb4234562 # 机器人序列号(用于机器人与配置文件匹配)
description: configure robot addition DIO and AIO #该文件的用途描述
user_io: # 用户数字io配置(数目必须与系统io数目一致,如果系统中没有用户数字io,该字段不配置)
input_num: 16
output_num: 16
safety_io: # 内部安全数字io配置(数目必须与系统io数目一致,如果系统中没有安全数字io,该字段不配置)
input_num: 0
output_num: 0
analog_io: # 用户模拟io配置(数目必须与系统io数目一致,如果系统中没有模拟io,该字段不配置)
input: # 模拟输入转系数,有几组就是几个模拟输入,按照公式(x-b)/a ==> y 计算,获得物理量
- a: 1.0
b: 2.0
- a: 0.1
b: 0.0
output: # 模拟输出转系数,有几组就是几个模拟输出,按照公式a*x+b ==> y 计算,获得电信号
- a: 1.0
b: 2.0
- a: 0.1
b: 0.0
addition_group: #附加轴组配置(系统中没有附加轴,该字段不配置)
addition: #附加轴组配置(可配置多个轴组,有几个组就是几个轴组)
- axis_group: #第一个轴组
- axis: # 第一个轴组中的第一个轴(可配置多个,有几组就是几个关节)
id: 0 # 从站设备id ,决定附加轴组当前关节使用的是哪个从站。不能与其他机器人或附加轴组冲突
initial_offset: 0 # 编码器零点标定初值(非用户填写,默认0)
initial_offset2: 0 # 输出端编码器零点标定初值(非用户填写,默认0)
sigma: revolute # 转动关节[revolute],滑动关节[prismatic]
direction: true # 调整编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
direction2: true # 调整第二路编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
smin: 0.000000 # 关节最小限位,单位:rad 或 m
smax: 0.000000 # 关节最大限位,单位:rad 或 m
vmin: 0.000000 # 最小速度限制,单位:rad/s 或 m/s
vmax: 0.000000 # 最大速度限制,单位:rad/s 或 m/s
amin: 0.000000 # 最小加速度限制,单位:rad/s^2 或 m/s^2
amax: 0.000000 # 最大加速度限制,单位:rad/s^2 或 m/s^2
jmin: 0.000000 # 最小加加速度限制,单位:rad/s^3 或 m/s^3
jmax: 0.000000 # 最大加加速度限制,单位:rad/s^3 或 m/s^3
current_coeff: 1.000000 # 电流转化系数(一般为额定电流千分比 单位:A/1000)
torque_coeff: 1.000000 # 最大关节力矩限制(单位:转动关节Nm, 滑动N)
torque_max: 1.000000 # 最大关节力矩限制(单位:N(滑动关节) or N*M(转动关节))
encoder_ruler: 131072 # 编码器一圈数据 (如:17位编码器为131072)
encoder_ruler2: 131072 # 第二路编码器一圈数据 (如:17位编码器为131072)
gear_ratio: 1.0 # 关节减速比 (转动关节表示:关节旋转360度对应的电机的圈数;滑动关节表示:关节移动1m距离应的电机的圈数)
- axis: # 第一个轴组中的第二个轴
id: 0 # 从站设备id ,决定附加轴组当前关节使用的是哪个从站。不能与其他机器人或附加轴组冲突
initial_offset: 0 # 编码器零点标定初值(非用户填写,默认0)
initial_offset2: 0 # 输出端编码器零点标定初值(非用户填写,默认0)
sigma: revolute # 转动关节[revolute],滑动关节[prismatic]
direction: true # 调整编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
direction2: true # 调整第二路编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
smin: 0.000000 # 关节最小限位,单位:rad 或 m
smax: 0.000000 # 关节最大限位,单位:rad 或 m
vmin: 0.000000 # 最小速度限制,单位:rad/s 或 m/s
vmax: 0.000000 # 最大速度限制,单位:rad/s 或 m/s
amin: 0.000000 # 最小加速度限制,单位:rad/s^2 或 m/s^2
amax: 0.000000 # 最大加速度限制,单位:rad/s^2 或 m/s^2
jmin: 0.000000 # 最小加加速度限制,单位:rad/s^3 或 m/s^3
jmax: 0.000000 # 最大加加速度限制,单位:rad/s^3 或 m/s^3
current_coeff: 1.000000 # 电流转化系数(一般为额定电流千分比 单位:A/1000)
torque_coeff: 1.000000 # 最大关节力矩限制(单位:转动关节Nm, 滑动N)
torque_max: 1.000000 # 最大关节力矩限制(单位:N(滑动关节) or N*M(转动关节))
encoder_ruler: 131072 # 编码器一圈数据 (如:17位编码器为131072)
encoder_ruler2: 131072 # 第二路编码器一圈数据 (如:17位编码器为131072)
gear_ratio: 1.0 # 关节减速比 (转动关节表示:关节旋转360度对应的电机的圈数;滑动关节表示:关节移动1m距离应的电机的圈数)
robot_group: #机器人组配置(系统中没有机器人,该字段不配置)
robot: #机器人配置(可配置多个机器人,有几个组就是机器人)
- model_solve: numerical # 机器人模型求解类型(numerical 是数值解,analytic 是解析解) (第一个机器人)
tool: # 机器人末端附加变换(xyz:位置(m);kps:固定角姿态(rad))
x: 0.000000
y: 0.000000
z: 0.073000
k: 0.000000
p: 0.000000
s: 0.000000
base: # 机器人基座附加变换(xyz:位置(m);kps:固定角姿态(rad))
x: 0.000000
y: 0.000000
z: 0.342000
k: 0.000000
p: 0.000000
s: 0.000000
gravity: # 重力加速度,单位:m/(s^2)
x: 0.000000
y: 0.000000
z: 9.800000
endlimit: # 机器人笛卡尔约束
tran_velocity_max: 2.000000 # 笛卡尔平动速度约束(单位:m/s)
tran_acceleration_max: 5.000000000 # 笛卡尔平动加速度约束(单位:m/(s^2))
tran_jerk_max: 10.000000000 # 笛卡尔平动加加速度约束(单位:m/(s^3))
rot_velocity_max: 6.000000 # 笛卡尔转动速度约束(单位:rad/s)
rot_acceleration_max: 12.000000 # 笛卡尔转动加速度约束(单位:rad/(s^2))
rot_jerk_max: 24.000000 # 笛卡尔转动加加速度约束(单位:rad/(s^3))
joint: # 机器人关节参数(可配置多个,有几组就是几个关节)
- kinematics_parameters: # dh参数 (第一个机器人的第一个连杆和轴)
theta: 0.000000 #绕z轴转动,单位:rad
d: 0.000000 # 沿Z轴移动,单位:m
a: 0.000000 # 沿x轴移动,单位:m
alpha: 0.000000 #绕x轴转动,单位:m
offset: 0.000000 # 实际零位与模型零位偏差, 单位:转动关节rad,移动关节m
mdh: true # dh参数类型,true为修正dh参数,false为标准dh参数
flip: false # 是否修改模型正方向(运动学模型正方向,true修改,false为不修改)
dynamics_parameters: # 动力学参数
m: 1.000000 # 质量,单位:kg
cmx: 0.000000 # 质心x轴,单位:m
cmy: 0.000000 # 质心y轴,单位:m
cmz: 0.000000 # 质心z轴,单位:m
ixx: 0.000000 # 相对于质心的惯性张量,单位:kg*(m^2)(3*3矩阵的上三角参数,对称矩阵)
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000 # 粘滞摩擦系数(单位:Nm*s/rad 或者 N*s/m)
fv2: 0.000000 # 预留
fv3: 0.000000 # # 预留
fc0: 0.000000 # 正库伦摩擦系数(必须是正值,单位:Nm 或N)
fc1: 0.000000 # 负库伦摩擦系数(必须是负值,单位:Nm 或N)
jm: 0.000000 # 关节惯性(单位:Nm*(s/rad)^2 或者 N*(s/m)^2)
axis: # 关节轴信息
id: 0 # 从站设备id ,决定机器人当前关节使用的是哪个从站。不能与其他机器人或附加轴组冲突
initial_offset: 0 # 编码器零点标定初值(非用户填写,默认0)
initial_offset2: 0 # 输出端编码器零点标定初值(非用户填写,默认0)
sigma: revolute # 转动关节[revolute],滑动关节[prismatic]
direction: true # 调整编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
direction2: true # 调整第二路编码器旋转正方向,(是否与编码器正方向一致,一致为trure,不一致为false)
smin: -2.879793265790644 # 关节最小限位,单位:rad 或 m
smax: 2.879793265790644 # 关节最大限位,单位:rad 或 m
vmin: -5.166174585903216 # 最小速度限制,单位:rad/s 或 m/s
vmax: 5.166174585903216 # 最大速度限制,单位:rad/s 或 m/s
amin: -31.415926535897931 # 最小加速度限制,单位:rad/s^2 或 m/s^2
amax: 31.415926535897931 # 最大加速度限制,单位:rad/s^2 或 m/s^2
jmin: -872.6646259971647 # 最小加加速度限制,单位:rad/s^3 或 m/s^3
jmax: 872.6646259971647 # 最大加加速度限制,单位:rad/s^3 或 m/s^3
current_coeff: 0.003700 # 电流转化系数(一般为额定电流千分比 单位:A/1000)
torque_coeff: 0.370000000 # 等效扭矩常数(最大扭矩/最大电流,单位:转动关节Nm/A, 滑动N/A)
torque_max: 4.460000000 # 最大关节力矩限制(单位:转动关节Nm, 滑动N)
encoder_ruler: 131072 # 编码器一圈数据 (如:17位编码器为131072)
encoder_ruler2: 0 # 第二路编码器一圈数据 (如:17位编码器为131072)
gear_ratio: 81.0 # 关节减速比 (转动关节表示:关节旋转360度对应的电机的圈数;滑动关节表示:关节移动1m距离应的电机的圈数)
couple: [1.0,0.0,0.0,0.0,0.0,0.0] #耦合系数当前关节与其他关节的耦合系数,当前关节自身的耦合系数为1.0
- kinematics_parameters: #(第一个机器人的第二个连杆和轴)
theta: 0.000000
d: 0.000000
a: 0.040000
alpha: -1.570796326794897
offset: -1.570796326794897
mdh: true
flip: false
dynamics_parameters:
m: 1.000000
cmx: 0.000000
cmy: 0.000000
cmz: 0.000000
ixx: 0.000000
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000
fv2: 0.000000
fv3: 0.000000
fc0: 0.000000
fc1: 0.000000
jm: 0.000000
axis:
id: 2
initial_offset: 0
initial_offset2: 0
sigma: revolute
direction: true
direction2: true
smin: -1.658062789394613
smax: 2.181661564992912
vmin: -4.188790204786391
vmax: 4.188790204786391
amin: -26.179938779914941
amax: 26.179938779914941
jmin: -698.1317007977318
jmax: 698.1317007977318
current_coeff: 0.003600
torque_coeff: 0.370000000
torque_max: 4.460000000
encoder_ruler: 131072
encoder_ruler2: 0
gear_ratio: 101.0
couple: [0.0,1.0,0.0,0.0,0.0,0.0]
- kinematics_parameters:
theta: 0.000000
d: 0.000000
a: 0.275000
alpha: 0.000000
offset: 0.000000
mdh: true
flip: false
dynamics_parameters:
m: 1.000000
cmx: 0.000000
cmy: 0.000000
cmz: 0.000000
ixx: 0.000000
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000
fv2: 0.000000
fv3: 0.000000
fc0: 0.000000
fc1: 0.000000
jm: 0.000000
axis:
id: 1
initial_offset: 0
initial_offset2: 0
sigma: revolute
direction: true
direction2: true
smin: -3.228859116189510
smax: 0.942477796076938
vmin: -5.410520681182422
vmax: 5.410520681182422
amin: -31.415926535897931
amax: 31.415926535897931
jmin: -698.1317007977318
jmax: 698.1317007977318
current_coeff: 0.002300
torque_coeff: 0.310000000
torque_max: 2.240000000
encoder_ruler: 131072
encoder_ruler2: 0
gear_ratio: 81.0
couple: [0.0,0.0,1.0,0.0,0.0,0.0]
- kinematics_parameters:
theta: 0.000000
d: 0.280000
a: 0.0250000
alpha: -1.570796326794897
offset: 0.000000
mdh: true
flip: false
dynamics_parameters:
m: 1.000000
cmx: 0.000000
cmy: 0.000000
cmz: 0.000000
ixx: 0.000000
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000
fv2: 0.000000
fv3: 0.000000
fc0: 0.000000
fc1: 0.000000
jm: 0.000000
axis:
id: 3
initial_offset: 0
initial_offset2: 0
sigma: revolute
direction: true
direction2: true
smin: -2.879793265790644
smax: 2.879793265790644
vmin: -6.195918844579870
vmax: 6.195918844579870
amin: -31.415926535897931
amax: 31.415926535897931
jmin: -872.6646259971647
jmax: 872.6646259971647
current_coeff: 0.001400
torque_coeff: 0.240000
torque_max: 1.110000
encoder_ruler: 131072
encoder_ruler2: 0
gear_ratio: 72.857000
couple: [0.0,0.0,0.0,1.0,0.0,0.0]
- kinematics_parameters:
theta: 0.000000
d: 0.000000
a: 0.000000
alpha: 1.570796326794897
offset: 0.000000
mdh: true
flip: false
dynamics_parameters:
m: 1.000000
cmx: 0.000000
cmy: 0.000000
cmz: 0.000000
ixx: 0.000000
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000
fv2: 0.000000
fv3: 0.000000
fc0: 0.000000
fc1: 0.000000
jm: 0.000000
axis:
id: 4
initial_offset: 0
initial_offset2: 0
sigma: revolute
direction: true
direction2: true
smin: -2.007128639793479
smax: 2.007128639793479
vmin: -4.660029102824860
vmax: 4.660029102824860
amin: -22.689280275926283
amax: 22.689280275926283
jmin: -872.6646259971647
jmax: 872.6646259971647
current_coeff: 0.001100
torque_coeff: 0.170000
torque_max: 0.560000
encoder_ruler: 131072
encoder_ruler2: 0
gear_ratio: 80.0
couple: [0.0,0.0,0.0,0.0,1.0,0.0]
- kinematics_parameters:
theta: 0.000000
d: 0.000000
a: 0.000000
alpha: -1.570796326794897
offset: 0.000000
mdh: true
flip: false
dynamics_parameters:
m: 1.000000
cmx: 0.000000
cmy: 0.000000
cmz: 0.000000
ixx: 0.000000
ixy: 0.000000
ixz: 0.000000
iyy: 0.000000
iyz: 0.000000
izz: 0.000000
fv: 0.000000
fv2: 0.000000
fv3: 0.000000
fc0: 0.000000
fc1: 0.000000
jm: 0.000000
axis:
id: 5
initial_offset: 0
initial_offset2: 0
sigma: revolute
direction: true
direction2: true
smin: -6.283185307179586
smax: 6.283185307179586
vmin: -8.726646259971647
vmax: 8.726646259971647
amin: -52.359877559829883
amax: 52.359877559829883
jmin: -872.6646259971647
jmax: 872.6646259971647
current_coeff: 0.001400
torque_coeff: 0.240000
torque_max: 1.110000
encoder_ruler: 131072
encoder_ruler2: 0
gear_ratio: 50.0
couple: [0.0,0.0,0.0,0.0,0.0,1.0]
|