Safetensors
xuewu.lin commited on
Commit
01d5155
·
1 Parent(s): 062bc9f

feat: add readme, model, processor and urdfs

Browse files
README.md ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ ---
4
+
5
+ <div align="center">
6
+ <img src="https://github.com/HorizonRobotics/robot_lab/blob/master/holobrain/assets/holobrain_logo.png?raw=true" alt="HoloBrain Logo" width="400" style="vertical-align: middle; margin-right: 15px;">
7
+ <h1 style="display: inline-block; margin: 10; font-size: 2em">A foundation model for general embodied manipulation</h1>
8
+ </div>
9
+
10
+ <div align="center" class="authors">
11
+ Xuewu Lin, Yun Du, Hongyu Xie, Yiwei Jin, Jiawei Li, Shijie Wu, Qingze Wang, Mengao Zhao, Ziang Li, Chaodong Huang, Mengdi Li, Hongzhe Bi, Lichao Huang, Zhizhong Su, Tianwei Lin
12
+ </div>
13
+
14
+ <div align="center" style="line-height: 3;">
15
+ <a href="https://horizonrobotics.github.io/robot_lab/holobrain/" target="_blank" style="margin: 2px;">
16
+ <img alt="Homepage" src="https://img.shields.io/badge/🏠HoloBrain-HomePage-blue" style="display: inline-block; vertical-align: middle;"/>
17
+ </a>
18
+ <a href="https://arxiv.org/abs/2602.12062" target="_blank" style="margin: 2px;">
19
+ <img alt="Paper" src="https://img.shields.io/badge/📄Paper-arXiv-red" style="display: inline-block; vertical-align: middle;"/>
20
+ </a>
21
+ <a href="https://github.com/HorizonRobotics/RoboOrchardLab/tree/master/projects/holobrain/" target="_blank" style="margin: 2px;">
22
+ <img alt="Code" src="https://img.shields.io/badge/💻Code-Github-black" style="display: inline-block; vertical-align: middle;"/>
23
+ </a>
24
+ <a href="https://huggingface.co/collections/HorizonRobotics/holobrain" target="_blank" style="margin: 2px;">
25
+ <img alt="Model" src="https://img.shields.io/badge/⚙️HoloBrain Model-HuggingFace-orange" style="display: inline-block; vertical-align: middle;"/>
26
+ </a>
27
+ </div>
28
+
29
+
30
+ ## 📘 Framework
31
+ <div align="center">
32
+ <img src="https://github.com/HorizonRobotics/robot_lab/blob/master/holobrain/assets/holobrain_framework.png?raw=true" width="90%" alt="HoloBrain" />
33
+ <p style="font-size:1em; color:#555;">By incorporating explicit embodiment modeling (e.g., camera parameters and kinematic descriptions), our model effectively unifies training across heterogeneous robots. Together with a full-stack VLA infrastructure (RoboOrchard) and an effective test-driven data strategy, HoloBrain-0 delivers superior performance on both real world and simulation manipulation benchmarks.</p>
34
+ </div>
35
+
36
+
37
+ ## 📁 Quick Start
38
+ The exported model and processor can be used very conveniently. You can insert the code below into any location to perform model inference.
39
+ ```python
40
+ from robo_orchard_lab.models.holobrain.processor import (
41
+ HoloBrainProcessor,
42
+ MultiArmManipulationInput,
43
+ MultiArmManipulationOutput,
44
+ )
45
+ from robo_orchard_lab.models.mixin import ModelMixin
46
+
47
+ # load model and processor
48
+ processor = HoloBrainProcessor.load("./HoloBrain_v0.0_GD", "robotwin2_0_processor.json")
49
+ model = ModelMixin.load_model("./HoloBrain_v0.0_GD/pretrain", load_impl="native")
50
+
51
+ input_data: MultiArmManipulationInput
52
+ input_data = processor.pre_process(input_data)
53
+ model_outs = model(input_data)
54
+ output_data: MultiArmManipulationOutput = processor.post_process(input_data, model_outs)
55
+ ```
56
+
57
+ ## 📄 Citation
58
+ ```
59
+ @misc{lin2026holobrain0technicalreport,
60
+ title={HoloBrain-0 Technical Report},
61
+ author={Xuewu Lin and Tianwei Lin and Yun Du and Hongyu Xie and Yiwei Jin and Jiawei Li and Shijie Wu and Qingze Wang and Mengdi Li and Mengao Zhao and Ziang Li and Chaodong Huang and Hongzhe Bi and Lichao Huang and Zhizhong Su},
62
+ year={2026},
63
+ eprint={2602.12062},
64
+ archivePrefix={arXiv},
65
+ primaryClass={cs.RO},
66
+ url={https://arxiv.org/abs/2602.12062},
67
+ }
68
+ ```
post_training_graspanything/model.config.json ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.bip3d.structure:BIP3DConfig",
3
+ "class_type": "robo_orchard_lab.models.bip3d.structure:BIP3D",
4
+ "backbone": {
5
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
6
+ "embed_dims": 96,
7
+ "depths": [
8
+ 2,
9
+ 2,
10
+ 6,
11
+ 2
12
+ ],
13
+ "num_heads": [
14
+ 3,
15
+ 6,
16
+ 12,
17
+ 24
18
+ ],
19
+ "window_size": 7,
20
+ "mlp_ratio": 4,
21
+ "qkv_bias": true,
22
+ "qk_scale": null,
23
+ "drop_rate": 0.0,
24
+ "attn_drop_rate": 0.0,
25
+ "out_indices": [
26
+ 1,
27
+ 2,
28
+ 3
29
+ ],
30
+ "with_cp": true,
31
+ "convert_weights": false
32
+ },
33
+ "decoder": {
34
+ "type": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainActionDecoder",
35
+ "head": {
36
+ "type": "robo_orchard_lab.models.holobrain.layers:UpsampleHead",
37
+ "upsample_sizes": [
38
+ 32,
39
+ 64
40
+ ],
41
+ "input_dim": 256,
42
+ "dims": [
43
+ 128,
44
+ 64
45
+ ],
46
+ "norm": {
47
+ "type": "torch.nn.modules.normalization:RMSNorm",
48
+ "normalized_shape": 256
49
+ },
50
+ "act": {
51
+ "type": "torch.nn.modules.activation:SiLU",
52
+ "inplace": true
53
+ },
54
+ "norm_act_idx": [
55
+ 0,
56
+ 1
57
+ ],
58
+ "num_output_layers": 2,
59
+ "out_dim": 8
60
+ },
61
+ "mobile_head": null,
62
+ "transformer_cfg": {
63
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderTransformerConfig",
64
+ "img_cross_attn": {
65
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
66
+ "embed_dims": 256,
67
+ "num_heads": 8,
68
+ "max_position_embeddings": 32
69
+ },
70
+ "norm_layer": {
71
+ "type": "torch.nn.modules.normalization:RMSNorm",
72
+ "normalized_shape": 256
73
+ },
74
+ "ffn": {
75
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
76
+ "embed_dims": 256,
77
+ "feedforward_channels": 2048,
78
+ "act_cfg": {
79
+ "type": "torch.nn.modules.activation:SiLU",
80
+ "inplace": true
81
+ }
82
+ },
83
+ "operation_order": [
84
+ "t_norm",
85
+ "temp_joint_attn",
86
+ "gate_msa",
87
+ "norm",
88
+ "img_cross_attn",
89
+ "norm",
90
+ "text_cross_attn",
91
+ "norm",
92
+ "scale_shift",
93
+ "ffn",
94
+ "gate_mlp",
95
+ "t_norm",
96
+ "temp_joint_attn",
97
+ "gate_msa",
98
+ "norm",
99
+ "img_cross_attn",
100
+ "norm",
101
+ "text_cross_attn",
102
+ "norm",
103
+ "scale_shift",
104
+ "ffn",
105
+ "gate_mlp",
106
+ "t_norm",
107
+ "temp_joint_attn",
108
+ "gate_msa",
109
+ "norm",
110
+ "img_cross_attn",
111
+ "norm",
112
+ "text_cross_attn",
113
+ "norm",
114
+ "scale_shift",
115
+ "ffn",
116
+ "gate_mlp",
117
+ "t_norm",
118
+ "temp_joint_attn",
119
+ "gate_msa",
120
+ "norm",
121
+ "img_cross_attn",
122
+ "norm",
123
+ "text_cross_attn",
124
+ "norm",
125
+ "scale_shift",
126
+ "ffn",
127
+ "gate_mlp",
128
+ "t_norm",
129
+ "temp_joint_attn",
130
+ "gate_msa",
131
+ "norm",
132
+ "img_cross_attn",
133
+ "norm",
134
+ "text_cross_attn",
135
+ "norm",
136
+ "scale_shift",
137
+ "ffn",
138
+ "gate_mlp",
139
+ "t_norm",
140
+ "temp_joint_attn",
141
+ "gate_msa",
142
+ "norm",
143
+ "img_cross_attn",
144
+ "norm",
145
+ "text_cross_attn",
146
+ "norm",
147
+ "scale_shift",
148
+ "ffn",
149
+ "gate_mlp"
150
+ ],
151
+ "joint_self_attn": {
152
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
153
+ "embed_dims": 256,
154
+ "num_heads": 8
155
+ },
156
+ "temp_cross_attn": {
157
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
158
+ "embed_dims": 256,
159
+ "num_heads": 8,
160
+ "max_position_embeddings": 32
161
+ },
162
+ "text_cross_attn": {
163
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
164
+ "embed_dims": 256,
165
+ "num_heads": 8,
166
+ "max_position_embeddings": 512
167
+ },
168
+ "temp_joint_attn": {
169
+ "type": "robo_orchard_lab.models.holobrain.layers:TemporalJointGraphAttention",
170
+ "embed_dims": 256,
171
+ "num_heads": 8,
172
+ "max_position_embeddings": 32
173
+ },
174
+ "timestep_norm_layer": {
175
+ "type": "robo_orchard_lab.models.holobrain.layers:AdaRMSNorm",
176
+ "normalized_shape": 256,
177
+ "condition_dims": 256,
178
+ "zero": true
179
+ },
180
+ "pre_norm": true
181
+ },
182
+ "base_cfg": {
183
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderBaseConfig",
184
+ "training_noise_scheduler": {
185
+ "type": "diffusers.schedulers.scheduling_ddpm:DDPMScheduler",
186
+ "num_train_timesteps": 1000,
187
+ "beta_schedule": "squaredcos_cap_v2",
188
+ "prediction_type": "sample",
189
+ "clip_sample": false
190
+ },
191
+ "test_noise_scheduler": {
192
+ "type": "diffusers.schedulers.scheduling_dpmsolver_multistep:DPMSolverMultistepScheduler",
193
+ "num_train_timesteps": 1000,
194
+ "beta_schedule": "squaredcos_cap_v2",
195
+ "prediction_type": "sample"
196
+ },
197
+ "num_inference_timesteps": 10,
198
+ "feature_level": [
199
+ 1,
200
+ 2
201
+ ],
202
+ "state_dims": 8,
203
+ "embed_dims": 256,
204
+ "pred_steps": 64,
205
+ "act_cfg": {
206
+ "type": "torch.nn.modules.activation:SiLU",
207
+ "inplace": true
208
+ },
209
+ "num_test_traj": 1,
210
+ "chunk_size": 4,
211
+ "force_kinematics": false,
212
+ "with_mobile": false,
213
+ "mobile_traj_state_dims": 2,
214
+ "use_joint_mask": true,
215
+ "noise_type": "local_joint",
216
+ "pred_scaled_joint": false,
217
+ "prediction_type": "relative_joint_relative_pose"
218
+ },
219
+ "training_cfg": {
220
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainTrainingConfig",
221
+ "loss": {
222
+ "type": "robo_orchard_lab.models.holobrain.loss:HoloBrainActionLoss",
223
+ "timestep_loss_weight": 1000,
224
+ "parallel_loss_weight": 0.1,
225
+ "smooth_l1_beta": 0.04,
226
+ "loss_mode": "smooth_l1"
227
+ },
228
+ "temporal_attn_drop": 0.05,
229
+ "num_parallel_training_sample": 4,
230
+ "teacher_forcing_rate": 0.02,
231
+ "teacher_forcing_mean_steps": null
232
+ },
233
+ "robot_encoder": {
234
+ "type": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainRobotStateEncoder",
235
+ "transformer_cfg": {
236
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderTransformerConfig",
237
+ "joint_self_attn": {
238
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
239
+ "embed_dims": 256,
240
+ "num_heads": 8
241
+ },
242
+ "norm_layer": {
243
+ "type": "torch.nn.modules.normalization:RMSNorm",
244
+ "normalized_shape": 256
245
+ },
246
+ "ffn": {
247
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
248
+ "embed_dims": 256,
249
+ "feedforward_channels": 2048,
250
+ "act_cfg": {
251
+ "type": "torch.nn.modules.activation:SiLU",
252
+ "inplace": true
253
+ }
254
+ },
255
+ "operation_order": [
256
+ "norm",
257
+ "joint_self_attn",
258
+ null,
259
+ null,
260
+ "norm",
261
+ "ffn",
262
+ "norm",
263
+ "joint_self_attn",
264
+ null,
265
+ null,
266
+ "norm",
267
+ "ffn",
268
+ "norm",
269
+ "joint_self_attn",
270
+ null,
271
+ null,
272
+ "norm",
273
+ "ffn",
274
+ "norm",
275
+ "joint_self_attn",
276
+ null,
277
+ null,
278
+ "norm",
279
+ "ffn",
280
+ "norm"
281
+ ],
282
+ "temp_self_attn": {
283
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
284
+ "embed_dims": 256,
285
+ "num_heads": 8,
286
+ "max_position_embeddings": 32
287
+ },
288
+ "pre_norm": true
289
+ },
290
+ "base_cfg": {
291
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderBaseConfig",
292
+ "embed_dims": 256,
293
+ "state_dims": 8,
294
+ "act_cfg": {
295
+ "type": "torch.nn.modules.activation:SiLU",
296
+ "inplace": true
297
+ },
298
+ "chunk_size": 1
299
+ }
300
+ }
301
+ },
302
+ "neck": {
303
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
304
+ "in_channels": [
305
+ 192,
306
+ 384,
307
+ 768
308
+ ],
309
+ "kernel_size": 1,
310
+ "out_channels": 256,
311
+ "act_cfg": null,
312
+ "bias": true,
313
+ "norm_cfg": {
314
+ "type": "torch.nn.modules.normalization:GroupNorm",
315
+ "num_groups": 32
316
+ },
317
+ "num_outs": 4
318
+ },
319
+ "text_encoder": {
320
+ "type": "robo_orchard_lab.models.bip3d.bert:BertModel",
321
+ "special_tokens_list": [
322
+ "[CLS]",
323
+ "[SEP]"
324
+ ],
325
+ "name": "./ckpt/bert-base-uncased",
326
+ "pad_to_max": false,
327
+ "use_sub_sentence_represent": true,
328
+ "add_pooling_layer": false,
329
+ "max_tokens": 768,
330
+ "use_checkpoint": true,
331
+ "return_tokenized": true
332
+ },
333
+ "feature_enhancer": {
334
+ "type": "robo_orchard_lab.models.bip3d.feature_enhancer:TextImageDeformable2DEnhancer",
335
+ "embed_dims": 256,
336
+ "num_layers": 6,
337
+ "text_img_attn_block": {
338
+ "v_dim": 256,
339
+ "l_dim": 256,
340
+ "embed_dim": 1024,
341
+ "num_heads": 4,
342
+ "init_values": 0.0001
343
+ },
344
+ "img_attn_block": {
345
+ "self_attn_cfg": {
346
+ "embed_dims": 256,
347
+ "num_levels": 4,
348
+ "im2col_step": 1
349
+ },
350
+ "ffn_cfg": {
351
+ "embed_dims": 256,
352
+ "feedforward_channels": 2048,
353
+ "ffn_drop": 0.0
354
+ }
355
+ },
356
+ "text_attn_block": {
357
+ "self_attn_cfg": {
358
+ "num_heads": 4,
359
+ "embed_dims": 256
360
+ },
361
+ "ffn_cfg": {
362
+ "embed_dims": 256,
363
+ "feedforward_channels": 1024,
364
+ "ffn_drop": 0.0
365
+ }
366
+ },
367
+ "num_feature_levels": 4,
368
+ "positional_encoding": {
369
+ "num_feats": 128,
370
+ "normalize": true,
371
+ "offset": 0.0,
372
+ "temperature": 20
373
+ }
374
+ },
375
+ "spatial_enhancer": {
376
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:DepthFusionSpatialEnhancer",
377
+ "embed_dims": 256,
378
+ "feature_3d_dim": 128,
379
+ "num_depth_layers": 2,
380
+ "min_depth": 0.01,
381
+ "max_depth": 1.2,
382
+ "num_depth": 128,
383
+ "with_feature_3d": true,
384
+ "loss_depth_weight": 1.0
385
+ },
386
+ "data_preprocessor": {
387
+ "type": "robo_orchard_lab.models.layers.data_preprocessors:BaseDataPreprocessor",
388
+ "channel_flip": true,
389
+ "unsqueeze_depth_channel": true,
390
+ "mean": [
391
+ 123.675,
392
+ 116.28,
393
+ 103.53
394
+ ],
395
+ "std": [
396
+ 58.395,
397
+ 57.12,
398
+ 57.375
399
+ ],
400
+ "batch_transforms": [
401
+ {
402
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:BatchDepthProbGTGenerator",
403
+ "min_depth": 0.01,
404
+ "max_depth": 1.2,
405
+ "num_depth": 128,
406
+ "origin_stride": 2,
407
+ "valid_threshold": 0.5,
408
+ "stride": [
409
+ 8,
410
+ 16,
411
+ 32,
412
+ 64
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ "backbone_3d": {
418
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
419
+ "in_channels": 1,
420
+ "embed_dims": 16,
421
+ "depths": [
422
+ 2,
423
+ 2,
424
+ 6,
425
+ 2
426
+ ],
427
+ "num_heads": [
428
+ 4,
429
+ 8,
430
+ 8,
431
+ 16
432
+ ],
433
+ "window_size": 7,
434
+ "mlp_ratio": 4,
435
+ "qkv_bias": true,
436
+ "qk_scale": null,
437
+ "drop_rate": 0.0,
438
+ "attn_drop_rate": 0.0,
439
+ "out_indices": [
440
+ 1,
441
+ 2,
442
+ 3
443
+ ],
444
+ "with_cp": true,
445
+ "convert_weights": false
446
+ },
447
+ "neck_3d": {
448
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
449
+ "in_channels": [
450
+ 32,
451
+ 64,
452
+ 128
453
+ ],
454
+ "kernel_size": 1,
455
+ "out_channels": 128,
456
+ "act_cfg": null,
457
+ "bias": true,
458
+ "norm_cfg": {
459
+ "type": "torch.nn.modules.normalization:GroupNorm",
460
+ "num_groups": 4
461
+ },
462
+ "num_outs": 4
463
+ },
464
+ "input_2d": "imgs",
465
+ "input_3d": "depths",
466
+ "embed_dims": 256,
467
+ "pre_spatial_enhancer": false
468
+ }
post_training_graspanything/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bea4ea0d6adaff4953bc939885e36be706ee427a1d60ddc261404bbab5f2ec16
3
+ size 735423856
post_training_robotwin/model.config.json ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.bip3d.structure:BIP3DConfig",
3
+ "class_type": "robo_orchard_lab.models.bip3d.structure:BIP3D",
4
+ "backbone": {
5
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
6
+ "embed_dims": 96,
7
+ "depths": [
8
+ 2,
9
+ 2,
10
+ 6,
11
+ 2
12
+ ],
13
+ "num_heads": [
14
+ 3,
15
+ 6,
16
+ 12,
17
+ 24
18
+ ],
19
+ "window_size": 7,
20
+ "mlp_ratio": 4,
21
+ "qkv_bias": true,
22
+ "qk_scale": null,
23
+ "drop_rate": 0.0,
24
+ "attn_drop_rate": 0.0,
25
+ "out_indices": [
26
+ 1,
27
+ 2,
28
+ 3
29
+ ],
30
+ "with_cp": true,
31
+ "convert_weights": false
32
+ },
33
+ "decoder": {
34
+ "type": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainActionDecoder",
35
+ "head": {
36
+ "type": "robo_orchard_lab.models.holobrain.layers:UpsampleHead",
37
+ "upsample_sizes": [
38
+ 32,
39
+ 64
40
+ ],
41
+ "input_dim": 256,
42
+ "dims": [
43
+ 128,
44
+ 64
45
+ ],
46
+ "norm": {
47
+ "type": "torch.nn.modules.normalization:RMSNorm",
48
+ "normalized_shape": 256
49
+ },
50
+ "act": {
51
+ "type": "torch.nn.modules.activation:SiLU",
52
+ "inplace": true
53
+ },
54
+ "norm_act_idx": [
55
+ 0,
56
+ 1
57
+ ],
58
+ "num_output_layers": 2,
59
+ "out_dim": 8
60
+ },
61
+ "mobile_head": null,
62
+ "transformer_cfg": {
63
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderTransformerConfig",
64
+ "img_cross_attn": {
65
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
66
+ "embed_dims": 256,
67
+ "num_heads": 8,
68
+ "max_position_embeddings": 32
69
+ },
70
+ "norm_layer": {
71
+ "type": "torch.nn.modules.normalization:RMSNorm",
72
+ "normalized_shape": 256
73
+ },
74
+ "ffn": {
75
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
76
+ "embed_dims": 256,
77
+ "feedforward_channels": 2048,
78
+ "act_cfg": {
79
+ "type": "torch.nn.modules.activation:SiLU",
80
+ "inplace": true
81
+ }
82
+ },
83
+ "operation_order": [
84
+ "t_norm",
85
+ "temp_joint_attn",
86
+ "gate_msa",
87
+ "norm",
88
+ "img_cross_attn",
89
+ "norm",
90
+ "text_cross_attn",
91
+ "norm",
92
+ "scale_shift",
93
+ "ffn",
94
+ "gate_mlp",
95
+ "t_norm",
96
+ "temp_joint_attn",
97
+ "gate_msa",
98
+ "norm",
99
+ "img_cross_attn",
100
+ "norm",
101
+ "text_cross_attn",
102
+ "norm",
103
+ "scale_shift",
104
+ "ffn",
105
+ "gate_mlp",
106
+ "t_norm",
107
+ "temp_joint_attn",
108
+ "gate_msa",
109
+ "norm",
110
+ "img_cross_attn",
111
+ "norm",
112
+ "text_cross_attn",
113
+ "norm",
114
+ "scale_shift",
115
+ "ffn",
116
+ "gate_mlp",
117
+ "t_norm",
118
+ "temp_joint_attn",
119
+ "gate_msa",
120
+ "norm",
121
+ "img_cross_attn",
122
+ "norm",
123
+ "text_cross_attn",
124
+ "norm",
125
+ "scale_shift",
126
+ "ffn",
127
+ "gate_mlp",
128
+ "t_norm",
129
+ "temp_joint_attn",
130
+ "gate_msa",
131
+ "norm",
132
+ "img_cross_attn",
133
+ "norm",
134
+ "text_cross_attn",
135
+ "norm",
136
+ "scale_shift",
137
+ "ffn",
138
+ "gate_mlp",
139
+ "t_norm",
140
+ "temp_joint_attn",
141
+ "gate_msa",
142
+ "norm",
143
+ "img_cross_attn",
144
+ "norm",
145
+ "text_cross_attn",
146
+ "norm",
147
+ "scale_shift",
148
+ "ffn",
149
+ "gate_mlp"
150
+ ],
151
+ "joint_self_attn": {
152
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
153
+ "embed_dims": 256,
154
+ "num_heads": 8
155
+ },
156
+ "temp_cross_attn": {
157
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
158
+ "embed_dims": 256,
159
+ "num_heads": 8,
160
+ "max_position_embeddings": 32
161
+ },
162
+ "text_cross_attn": {
163
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
164
+ "embed_dims": 256,
165
+ "num_heads": 8,
166
+ "max_position_embeddings": 512
167
+ },
168
+ "temp_joint_attn": {
169
+ "type": "robo_orchard_lab.models.holobrain.layers:TemporalJointGraphAttention",
170
+ "embed_dims": 256,
171
+ "num_heads": 8,
172
+ "max_position_embeddings": 32
173
+ },
174
+ "timestep_norm_layer": {
175
+ "type": "robo_orchard_lab.models.holobrain.layers:AdaRMSNorm",
176
+ "normalized_shape": 256,
177
+ "condition_dims": 256,
178
+ "zero": true
179
+ },
180
+ "pre_norm": true
181
+ },
182
+ "base_cfg": {
183
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderBaseConfig",
184
+ "training_noise_scheduler": {
185
+ "type": "diffusers.schedulers.scheduling_ddpm:DDPMScheduler",
186
+ "num_train_timesteps": 1000,
187
+ "beta_schedule": "squaredcos_cap_v2",
188
+ "prediction_type": "sample",
189
+ "clip_sample": false
190
+ },
191
+ "test_noise_scheduler": {
192
+ "type": "diffusers.schedulers.scheduling_dpmsolver_multistep:DPMSolverMultistepScheduler",
193
+ "num_train_timesteps": 1000,
194
+ "beta_schedule": "squaredcos_cap_v2",
195
+ "prediction_type": "sample"
196
+ },
197
+ "num_inference_timesteps": 10,
198
+ "feature_level": [
199
+ 1,
200
+ 2
201
+ ],
202
+ "state_dims": 8,
203
+ "embed_dims": 256,
204
+ "pred_steps": 64,
205
+ "act_cfg": {
206
+ "type": "torch.nn.modules.activation:SiLU",
207
+ "inplace": true
208
+ },
209
+ "num_test_traj": 1,
210
+ "chunk_size": 4,
211
+ "force_kinematics": false,
212
+ "with_mobile": false,
213
+ "mobile_traj_state_dims": 2,
214
+ "use_joint_mask": true,
215
+ "noise_type": "local_joint",
216
+ "pred_scaled_joint": false,
217
+ "prediction_type": "relative_joint_relative_pose"
218
+ },
219
+ "training_cfg": {
220
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainTrainingConfig",
221
+ "loss": {
222
+ "type": "robo_orchard_lab.models.holobrain.loss:HoloBrainActionLoss",
223
+ "timestep_loss_weight": 1000,
224
+ "parallel_loss_weight": 0.1,
225
+ "smooth_l1_beta": 0.04,
226
+ "loss_mode": "smooth_l1"
227
+ },
228
+ "temporal_attn_drop": 0.05,
229
+ "num_parallel_training_sample": 4,
230
+ "teacher_forcing_rate": 0.02,
231
+ "teacher_forcing_mean_steps": null
232
+ },
233
+ "robot_encoder": {
234
+ "type": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainRobotStateEncoder",
235
+ "transformer_cfg": {
236
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderTransformerConfig",
237
+ "joint_self_attn": {
238
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
239
+ "embed_dims": 256,
240
+ "num_heads": 8
241
+ },
242
+ "norm_layer": {
243
+ "type": "torch.nn.modules.normalization:RMSNorm",
244
+ "normalized_shape": 256
245
+ },
246
+ "ffn": {
247
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
248
+ "embed_dims": 256,
249
+ "feedforward_channels": 2048,
250
+ "act_cfg": {
251
+ "type": "torch.nn.modules.activation:SiLU",
252
+ "inplace": true
253
+ }
254
+ },
255
+ "operation_order": [
256
+ "norm",
257
+ "joint_self_attn",
258
+ null,
259
+ null,
260
+ "norm",
261
+ "ffn",
262
+ "norm",
263
+ "joint_self_attn",
264
+ null,
265
+ null,
266
+ "norm",
267
+ "ffn",
268
+ "norm",
269
+ "joint_self_attn",
270
+ null,
271
+ null,
272
+ "norm",
273
+ "ffn",
274
+ "norm",
275
+ "joint_self_attn",
276
+ null,
277
+ null,
278
+ "norm",
279
+ "ffn",
280
+ "norm"
281
+ ],
282
+ "temp_self_attn": {
283
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
284
+ "embed_dims": 256,
285
+ "num_heads": 8,
286
+ "max_position_embeddings": 32
287
+ },
288
+ "pre_norm": true
289
+ },
290
+ "base_cfg": {
291
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderBaseConfig",
292
+ "embed_dims": 256,
293
+ "state_dims": 8,
294
+ "act_cfg": {
295
+ "type": "torch.nn.modules.activation:SiLU",
296
+ "inplace": true
297
+ },
298
+ "chunk_size": 1
299
+ }
300
+ }
301
+ },
302
+ "neck": {
303
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
304
+ "in_channels": [
305
+ 192,
306
+ 384,
307
+ 768
308
+ ],
309
+ "kernel_size": 1,
310
+ "out_channels": 256,
311
+ "act_cfg": null,
312
+ "bias": true,
313
+ "norm_cfg": {
314
+ "type": "torch.nn.modules.normalization:GroupNorm",
315
+ "num_groups": 32
316
+ },
317
+ "num_outs": 4
318
+ },
319
+ "text_encoder": {
320
+ "type": "robo_orchard_lab.models.bip3d.bert:BertModel",
321
+ "special_tokens_list": [
322
+ "[CLS]",
323
+ "[SEP]"
324
+ ],
325
+ "name": "./ckpt/bert-base-uncased",
326
+ "pad_to_max": false,
327
+ "use_sub_sentence_represent": true,
328
+ "add_pooling_layer": false,
329
+ "max_tokens": 768,
330
+ "use_checkpoint": true,
331
+ "return_tokenized": true
332
+ },
333
+ "feature_enhancer": {
334
+ "type": "robo_orchard_lab.models.bip3d.feature_enhancer:TextImageDeformable2DEnhancer",
335
+ "embed_dims": 256,
336
+ "num_layers": 6,
337
+ "text_img_attn_block": {
338
+ "v_dim": 256,
339
+ "l_dim": 256,
340
+ "embed_dim": 1024,
341
+ "num_heads": 4,
342
+ "init_values": 0.0001
343
+ },
344
+ "img_attn_block": {
345
+ "self_attn_cfg": {
346
+ "embed_dims": 256,
347
+ "num_levels": 4,
348
+ "im2col_step": 1
349
+ },
350
+ "ffn_cfg": {
351
+ "embed_dims": 256,
352
+ "feedforward_channels": 2048,
353
+ "ffn_drop": 0.0
354
+ }
355
+ },
356
+ "text_attn_block": {
357
+ "self_attn_cfg": {
358
+ "num_heads": 4,
359
+ "embed_dims": 256
360
+ },
361
+ "ffn_cfg": {
362
+ "embed_dims": 256,
363
+ "feedforward_channels": 1024,
364
+ "ffn_drop": 0.0
365
+ }
366
+ },
367
+ "num_feature_levels": 4,
368
+ "positional_encoding": {
369
+ "num_feats": 128,
370
+ "normalize": true,
371
+ "offset": 0.0,
372
+ "temperature": 20
373
+ }
374
+ },
375
+ "spatial_enhancer": {
376
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:DepthFusionSpatialEnhancer",
377
+ "embed_dims": 256,
378
+ "feature_3d_dim": 128,
379
+ "num_depth_layers": 2,
380
+ "min_depth": 0.01,
381
+ "max_depth": 1.2,
382
+ "num_depth": 128,
383
+ "with_feature_3d": true,
384
+ "loss_depth_weight": 1.0
385
+ },
386
+ "data_preprocessor": {
387
+ "type": "robo_orchard_lab.models.layers.data_preprocessors:BaseDataPreprocessor",
388
+ "channel_flip": true,
389
+ "unsqueeze_depth_channel": true,
390
+ "mean": [
391
+ 123.675,
392
+ 116.28,
393
+ 103.53
394
+ ],
395
+ "std": [
396
+ 58.395,
397
+ 57.12,
398
+ 57.375
399
+ ],
400
+ "batch_transforms": [
401
+ {
402
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:BatchDepthProbGTGenerator",
403
+ "min_depth": 0.01,
404
+ "max_depth": 1.2,
405
+ "num_depth": 128,
406
+ "origin_stride": 2,
407
+ "valid_threshold": 0.5,
408
+ "stride": [
409
+ 8,
410
+ 16,
411
+ 32,
412
+ 64
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ "backbone_3d": {
418
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
419
+ "in_channels": 1,
420
+ "embed_dims": 16,
421
+ "depths": [
422
+ 2,
423
+ 2,
424
+ 6,
425
+ 2
426
+ ],
427
+ "num_heads": [
428
+ 4,
429
+ 8,
430
+ 8,
431
+ 16
432
+ ],
433
+ "window_size": 7,
434
+ "mlp_ratio": 4,
435
+ "qkv_bias": true,
436
+ "qk_scale": null,
437
+ "drop_rate": 0.0,
438
+ "attn_drop_rate": 0.0,
439
+ "out_indices": [
440
+ 1,
441
+ 2,
442
+ 3
443
+ ],
444
+ "with_cp": true,
445
+ "convert_weights": false
446
+ },
447
+ "neck_3d": {
448
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
449
+ "in_channels": [
450
+ 32,
451
+ 64,
452
+ 128
453
+ ],
454
+ "kernel_size": 1,
455
+ "out_channels": 128,
456
+ "act_cfg": null,
457
+ "bias": true,
458
+ "norm_cfg": {
459
+ "type": "torch.nn.modules.normalization:GroupNorm",
460
+ "num_groups": 4
461
+ },
462
+ "num_outs": 4
463
+ },
464
+ "input_2d": "imgs",
465
+ "input_3d": "depths",
466
+ "embed_dims": 256,
467
+ "pre_spatial_enhancer": false
468
+ }
post_training_robotwin/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c8704a889b54d15123facd837cd8604e077829d79f92874c7cddf431d11fbbef
3
+ size 735423856
pretrain/model.config.json ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.bip3d.structure:BIP3DConfig",
3
+ "class_type": "robo_orchard_lab.models.bip3d.structure:BIP3D",
4
+ "backbone": {
5
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
6
+ "embed_dims": 96,
7
+ "depths": [
8
+ 2,
9
+ 2,
10
+ 6,
11
+ 2
12
+ ],
13
+ "num_heads": [
14
+ 3,
15
+ 6,
16
+ 12,
17
+ 24
18
+ ],
19
+ "window_size": 7,
20
+ "mlp_ratio": 4,
21
+ "qkv_bias": true,
22
+ "qk_scale": null,
23
+ "drop_rate": 0.0,
24
+ "attn_drop_rate": 0.0,
25
+ "out_indices": [
26
+ 1,
27
+ 2,
28
+ 3
29
+ ],
30
+ "with_cp": true,
31
+ "convert_weights": false
32
+ },
33
+ "decoder": {
34
+ "type": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainActionDecoder",
35
+ "head": {
36
+ "type": "robo_orchard_lab.models.holobrain.layers:UpsampleHead",
37
+ "upsample_sizes": [
38
+ 32,
39
+ 64
40
+ ],
41
+ "input_dim": 256,
42
+ "dims": [
43
+ 128,
44
+ 64
45
+ ],
46
+ "norm": {
47
+ "type": "torch.nn.modules.normalization:RMSNorm",
48
+ "normalized_shape": 256
49
+ },
50
+ "act": {
51
+ "type": "torch.nn.modules.activation:SiLU",
52
+ "inplace": true
53
+ },
54
+ "norm_act_idx": [
55
+ 0,
56
+ 1
57
+ ],
58
+ "num_output_layers": 2,
59
+ "out_dim": 8
60
+ },
61
+ "mobile_head": null,
62
+ "transformer_cfg": {
63
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderTransformerConfig",
64
+ "img_cross_attn": {
65
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
66
+ "embed_dims": 256,
67
+ "num_heads": 8,
68
+ "max_position_embeddings": 32
69
+ },
70
+ "norm_layer": {
71
+ "type": "torch.nn.modules.normalization:RMSNorm",
72
+ "normalized_shape": 256
73
+ },
74
+ "ffn": {
75
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
76
+ "embed_dims": 256,
77
+ "feedforward_channels": 2048,
78
+ "act_cfg": {
79
+ "type": "torch.nn.modules.activation:SiLU",
80
+ "inplace": true
81
+ }
82
+ },
83
+ "operation_order": [
84
+ "t_norm",
85
+ "temp_joint_attn",
86
+ "gate_msa",
87
+ "norm",
88
+ "img_cross_attn",
89
+ "norm",
90
+ "text_cross_attn",
91
+ "norm",
92
+ "scale_shift",
93
+ "ffn",
94
+ "gate_mlp",
95
+ "t_norm",
96
+ "temp_joint_attn",
97
+ "gate_msa",
98
+ "norm",
99
+ "img_cross_attn",
100
+ "norm",
101
+ "text_cross_attn",
102
+ "norm",
103
+ "scale_shift",
104
+ "ffn",
105
+ "gate_mlp",
106
+ "t_norm",
107
+ "temp_joint_attn",
108
+ "gate_msa",
109
+ "norm",
110
+ "img_cross_attn",
111
+ "norm",
112
+ "text_cross_attn",
113
+ "norm",
114
+ "scale_shift",
115
+ "ffn",
116
+ "gate_mlp",
117
+ "t_norm",
118
+ "temp_joint_attn",
119
+ "gate_msa",
120
+ "norm",
121
+ "img_cross_attn",
122
+ "norm",
123
+ "text_cross_attn",
124
+ "norm",
125
+ "scale_shift",
126
+ "ffn",
127
+ "gate_mlp",
128
+ "t_norm",
129
+ "temp_joint_attn",
130
+ "gate_msa",
131
+ "norm",
132
+ "img_cross_attn",
133
+ "norm",
134
+ "text_cross_attn",
135
+ "norm",
136
+ "scale_shift",
137
+ "ffn",
138
+ "gate_mlp",
139
+ "t_norm",
140
+ "temp_joint_attn",
141
+ "gate_msa",
142
+ "norm",
143
+ "img_cross_attn",
144
+ "norm",
145
+ "text_cross_attn",
146
+ "norm",
147
+ "scale_shift",
148
+ "ffn",
149
+ "gate_mlp"
150
+ ],
151
+ "joint_self_attn": {
152
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
153
+ "embed_dims": 256,
154
+ "num_heads": 8
155
+ },
156
+ "temp_cross_attn": {
157
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
158
+ "embed_dims": 256,
159
+ "num_heads": 8,
160
+ "max_position_embeddings": 32
161
+ },
162
+ "text_cross_attn": {
163
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
164
+ "embed_dims": 256,
165
+ "num_heads": 8,
166
+ "max_position_embeddings": 512
167
+ },
168
+ "temp_joint_attn": {
169
+ "type": "robo_orchard_lab.models.holobrain.layers:TemporalJointGraphAttention",
170
+ "embed_dims": 256,
171
+ "num_heads": 8,
172
+ "max_position_embeddings": 32
173
+ },
174
+ "timestep_norm_layer": {
175
+ "type": "robo_orchard_lab.models.holobrain.layers:AdaRMSNorm",
176
+ "normalized_shape": 256,
177
+ "condition_dims": 256,
178
+ "zero": true
179
+ },
180
+ "pre_norm": true
181
+ },
182
+ "base_cfg": {
183
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainDecoderBaseConfig",
184
+ "training_noise_scheduler": {
185
+ "type": "diffusers.schedulers.scheduling_ddpm:DDPMScheduler",
186
+ "num_train_timesteps": 1000,
187
+ "beta_schedule": "squaredcos_cap_v2",
188
+ "prediction_type": "sample",
189
+ "clip_sample": false
190
+ },
191
+ "test_noise_scheduler": {
192
+ "type": "diffusers.schedulers.scheduling_dpmsolver_multistep:DPMSolverMultistepScheduler",
193
+ "num_train_timesteps": 1000,
194
+ "beta_schedule": "squaredcos_cap_v2",
195
+ "prediction_type": "sample"
196
+ },
197
+ "num_inference_timesteps": 10,
198
+ "feature_level": [
199
+ 1,
200
+ 2
201
+ ],
202
+ "state_dims": 8,
203
+ "embed_dims": 256,
204
+ "pred_steps": 64,
205
+ "act_cfg": {
206
+ "type": "torch.nn.modules.activation:SiLU",
207
+ "inplace": true
208
+ },
209
+ "num_test_traj": 1,
210
+ "chunk_size": 4,
211
+ "force_kinematics": false,
212
+ "with_mobile": false,
213
+ "mobile_traj_state_dims": 2,
214
+ "use_joint_mask": true,
215
+ "noise_type": "local_joint",
216
+ "pred_scaled_joint": false,
217
+ "prediction_type": "relative_joint_relative_pose"
218
+ },
219
+ "training_cfg": {
220
+ "__config_type__": "robo_orchard_lab.models.holobrain.action_decoder:HoloBrainTrainingConfig",
221
+ "loss": {
222
+ "type": "robo_orchard_lab.models.holobrain.loss:HoloBrainActionLoss",
223
+ "timestep_loss_weight": 1000,
224
+ "parallel_loss_weight": 0.1,
225
+ "smooth_l1_beta": 0.04,
226
+ "loss_mode": "smooth_l1"
227
+ },
228
+ "temporal_attn_drop": 0.05,
229
+ "num_parallel_training_sample": 4,
230
+ "teacher_forcing_rate": 0.02,
231
+ "teacher_forcing_mean_steps": null
232
+ },
233
+ "robot_encoder": {
234
+ "type": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainRobotStateEncoder",
235
+ "transformer_cfg": {
236
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderTransformerConfig",
237
+ "joint_self_attn": {
238
+ "type": "robo_orchard_lab.models.holobrain.layers:JointGraphAttention",
239
+ "embed_dims": 256,
240
+ "num_heads": 8
241
+ },
242
+ "norm_layer": {
243
+ "type": "torch.nn.modules.normalization:RMSNorm",
244
+ "normalized_shape": 256
245
+ },
246
+ "ffn": {
247
+ "type": "robo_orchard_lab.models.layers.transformer_layers:FFN",
248
+ "embed_dims": 256,
249
+ "feedforward_channels": 2048,
250
+ "act_cfg": {
251
+ "type": "torch.nn.modules.activation:SiLU",
252
+ "inplace": true
253
+ }
254
+ },
255
+ "operation_order": [
256
+ "norm",
257
+ "joint_self_attn",
258
+ null,
259
+ null,
260
+ "norm",
261
+ "ffn",
262
+ "norm",
263
+ "joint_self_attn",
264
+ null,
265
+ null,
266
+ "norm",
267
+ "ffn",
268
+ "norm",
269
+ "joint_self_attn",
270
+ null,
271
+ null,
272
+ "norm",
273
+ "ffn",
274
+ "norm",
275
+ "joint_self_attn",
276
+ null,
277
+ null,
278
+ "norm",
279
+ "ffn",
280
+ "norm"
281
+ ],
282
+ "temp_self_attn": {
283
+ "type": "robo_orchard_lab.models.holobrain.layers:RotaryAttention",
284
+ "embed_dims": 256,
285
+ "num_heads": 8,
286
+ "max_position_embeddings": 32
287
+ },
288
+ "pre_norm": true
289
+ },
290
+ "base_cfg": {
291
+ "__config_type__": "robo_orchard_lab.models.holobrain.robot_state_encoder:HoloBrainEncoderBaseConfig",
292
+ "embed_dims": 256,
293
+ "state_dims": 8,
294
+ "act_cfg": {
295
+ "type": "torch.nn.modules.activation:SiLU",
296
+ "inplace": true
297
+ },
298
+ "chunk_size": 1
299
+ }
300
+ }
301
+ },
302
+ "neck": {
303
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
304
+ "in_channels": [
305
+ 192,
306
+ 384,
307
+ 768
308
+ ],
309
+ "kernel_size": 1,
310
+ "out_channels": 256,
311
+ "act_cfg": null,
312
+ "bias": true,
313
+ "norm_cfg": {
314
+ "type": "torch.nn.modules.normalization:GroupNorm",
315
+ "num_groups": 32
316
+ },
317
+ "num_outs": 4
318
+ },
319
+ "text_encoder": {
320
+ "type": "robo_orchard_lab.models.bip3d.bert:BertModel",
321
+ "special_tokens_list": [
322
+ "[CLS]",
323
+ "[SEP]"
324
+ ],
325
+ "name": "./ckpt/bert-base-uncased",
326
+ "pad_to_max": false,
327
+ "use_sub_sentence_represent": true,
328
+ "add_pooling_layer": false,
329
+ "max_tokens": 768,
330
+ "use_checkpoint": true,
331
+ "return_tokenized": true
332
+ },
333
+ "feature_enhancer": {
334
+ "type": "robo_orchard_lab.models.bip3d.feature_enhancer:TextImageDeformable2DEnhancer",
335
+ "embed_dims": 256,
336
+ "num_layers": 6,
337
+ "text_img_attn_block": {
338
+ "v_dim": 256,
339
+ "l_dim": 256,
340
+ "embed_dim": 1024,
341
+ "num_heads": 4,
342
+ "init_values": 0.0001
343
+ },
344
+ "img_attn_block": {
345
+ "self_attn_cfg": {
346
+ "embed_dims": 256,
347
+ "num_levels": 4,
348
+ "im2col_step": 1
349
+ },
350
+ "ffn_cfg": {
351
+ "embed_dims": 256,
352
+ "feedforward_channels": 2048,
353
+ "ffn_drop": 0.0
354
+ }
355
+ },
356
+ "text_attn_block": {
357
+ "self_attn_cfg": {
358
+ "num_heads": 4,
359
+ "embed_dims": 256
360
+ },
361
+ "ffn_cfg": {
362
+ "embed_dims": 256,
363
+ "feedforward_channels": 1024,
364
+ "ffn_drop": 0.0
365
+ }
366
+ },
367
+ "num_feature_levels": 4,
368
+ "positional_encoding": {
369
+ "num_feats": 128,
370
+ "normalize": true,
371
+ "offset": 0.0,
372
+ "temperature": 20
373
+ }
374
+ },
375
+ "spatial_enhancer": {
376
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:DepthFusionSpatialEnhancer",
377
+ "embed_dims": 256,
378
+ "feature_3d_dim": 128,
379
+ "num_depth_layers": 2,
380
+ "min_depth": 0.01,
381
+ "max_depth": 1.2,
382
+ "num_depth": 128,
383
+ "with_feature_3d": true,
384
+ "loss_depth_weight": 1.0
385
+ },
386
+ "data_preprocessor": {
387
+ "type": "robo_orchard_lab.models.layers.data_preprocessors:BaseDataPreprocessor",
388
+ "channel_flip": true,
389
+ "unsqueeze_depth_channel": true,
390
+ "mean": [
391
+ 123.675,
392
+ 116.28,
393
+ 103.53
394
+ ],
395
+ "std": [
396
+ 58.395,
397
+ 57.12,
398
+ 57.375
399
+ ],
400
+ "batch_transforms": [
401
+ {
402
+ "type": "robo_orchard_lab.models.bip3d.spatial_enhancer:BatchDepthProbGTGenerator",
403
+ "min_depth": 0.01,
404
+ "max_depth": 1.2,
405
+ "num_depth": 128,
406
+ "origin_stride": 2,
407
+ "valid_threshold": 0.5,
408
+ "stride": [
409
+ 8,
410
+ 16,
411
+ 32,
412
+ 64
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ "backbone_3d": {
418
+ "type": "robo_orchard_lab.models.modules.swin_transformer:SwinTransformer",
419
+ "in_channels": 1,
420
+ "embed_dims": 16,
421
+ "depths": [
422
+ 2,
423
+ 2,
424
+ 6,
425
+ 2
426
+ ],
427
+ "num_heads": [
428
+ 4,
429
+ 8,
430
+ 8,
431
+ 16
432
+ ],
433
+ "window_size": 7,
434
+ "mlp_ratio": 4,
435
+ "qkv_bias": true,
436
+ "qk_scale": null,
437
+ "drop_rate": 0.0,
438
+ "attn_drop_rate": 0.0,
439
+ "out_indices": [
440
+ 1,
441
+ 2,
442
+ 3
443
+ ],
444
+ "with_cp": true,
445
+ "convert_weights": false
446
+ },
447
+ "neck_3d": {
448
+ "type": "robo_orchard_lab.models.modules.channel_mapper:ChannelMapper",
449
+ "in_channels": [
450
+ 32,
451
+ 64,
452
+ 128
453
+ ],
454
+ "kernel_size": 1,
455
+ "out_channels": 128,
456
+ "act_cfg": null,
457
+ "bias": true,
458
+ "norm_cfg": {
459
+ "type": "torch.nn.modules.normalization:GroupNorm",
460
+ "num_groups": 4
461
+ },
462
+ "num_outs": 4
463
+ },
464
+ "input_2d": "imgs",
465
+ "input_3d": "depths",
466
+ "embed_dims": 256,
467
+ "pre_spatial_enhancer": false
468
+ }
pretrain/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef593961657e754c7f7b038e64bb8644c403e74ee5ebca0f53652f76e0587a24
3
+ size 735423856
real_world_agilex_grasp_anything_processor.json ADDED
@@ -0,0 +1,381 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessorCfg",
3
+ "class_type": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessor",
4
+ "load_image": true,
5
+ "load_depth": true,
6
+ "cam_names": [
7
+ "left",
8
+ "right",
9
+ "middle"
10
+ ],
11
+ "valid_action_step": null,
12
+ "transforms": [
13
+ {
14
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:AddItems",
15
+ "T_base2ego": [
16
+ [
17
+ 1.0,
18
+ 0.0,
19
+ 0.0,
20
+ 0.0
21
+ ],
22
+ [
23
+ 0.0,
24
+ 1.0,
25
+ 0.0,
26
+ 0.3
27
+ ],
28
+ [
29
+ 0.0,
30
+ 0.0,
31
+ 1.0,
32
+ 0.0
33
+ ],
34
+ [
35
+ 0.0,
36
+ 0.0,
37
+ 0.0,
38
+ 1.0
39
+ ]
40
+ ],
41
+ "T_base2world": [
42
+ [
43
+ 1.0,
44
+ 0.0,
45
+ 0.0,
46
+ 0.0
47
+ ],
48
+ [
49
+ 0.0,
50
+ 1.0,
51
+ 0.0,
52
+ 0.0
53
+ ],
54
+ [
55
+ 0.0,
56
+ 0.0,
57
+ 1.0,
58
+ 0.0
59
+ ],
60
+ [
61
+ 0.0,
62
+ 0.0,
63
+ 0.0,
64
+ 1.0
65
+ ]
66
+ ],
67
+ "joint_mask": [
68
+ true,
69
+ true,
70
+ true,
71
+ true,
72
+ true,
73
+ true,
74
+ false,
75
+ true,
76
+ true,
77
+ true,
78
+ true,
79
+ true,
80
+ true,
81
+ false
82
+ ],
83
+ "joint_scale_shift": [
84
+ [
85
+ 1.478021398,
86
+ 0.10237011399999996
87
+ ],
88
+ [
89
+ 1.453678296,
90
+ 1.4043815520000003
91
+ ],
92
+ [
93
+ 1.553963852,
94
+ -1.5014923
95
+ ],
96
+ [
97
+ 1.86969153,
98
+ -0.0010728060000000372
99
+ ],
100
+ [
101
+ 1.3381379620000002,
102
+ -0.012585846000000012
103
+ ],
104
+ [
105
+ 3.086157592,
106
+ -0.06803160000000008
107
+ ],
108
+ [
109
+ 0.03857,
110
+ 0.036329999999999994
111
+ ],
112
+ [
113
+ 1.478021398,
114
+ 0.10237011399999996
115
+ ],
116
+ [
117
+ 1.453678296,
118
+ 1.4043815520000003
119
+ ],
120
+ [
121
+ 1.553963852,
122
+ -1.5014923
123
+ ],
124
+ [
125
+ 1.86969153,
126
+ -0.0010728060000000372
127
+ ],
128
+ [
129
+ 1.3381379620000002,
130
+ -0.012585846000000012
131
+ ],
132
+ [
133
+ 3.086157592,
134
+ -0.06803160000000008
135
+ ],
136
+ [
137
+ 0.03857,
138
+ 0.036329999999999994
139
+ ]
140
+ ]
141
+ },
142
+ {
143
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:SimpleStateSampling",
144
+ "hist_steps": 1,
145
+ "pred_steps": 64,
146
+ "use_master_gripper": true,
147
+ "use_master_joint": false,
148
+ "gripper_indices": [
149
+ 6,
150
+ 13
151
+ ]
152
+ },
153
+ {
154
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:Resize",
155
+ "dst_wh": [
156
+ 384,
157
+ 256
158
+ ],
159
+ "dst_intrinsic": [
160
+ [
161
+ 290,
162
+ 0.0,
163
+ 192.0,
164
+ 0.0
165
+ ],
166
+ [
167
+ 0.0,
168
+ 310,
169
+ 128.0,
170
+ 0.0
171
+ ],
172
+ [
173
+ 0.0,
174
+ 0.0,
175
+ 1.0,
176
+ 0.0
177
+ ],
178
+ [
179
+ 0.0,
180
+ 0.0,
181
+ 0.0,
182
+ 1.0
183
+ ]
184
+ ]
185
+ },
186
+ {
187
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:ToTensor"
188
+ },
189
+ {
190
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:CalibrationToExtrinsic",
191
+ "calibration": {
192
+ "mid": {
193
+ "position": [
194
+ -0.010783568385050412,
195
+ -0.2559182030838615,
196
+ 0.5173197227547938
197
+ ],
198
+ "orientation": [
199
+ -0.6344593881273598,
200
+ 0.6670669773214551,
201
+ -0.2848079166270871,
202
+ 0.2671467447131103
203
+ ]
204
+ },
205
+ "middle": {
206
+ "position": [
207
+ -0.010783568385050412,
208
+ -0.2559182030838615,
209
+ 0.5173197227547938
210
+ ],
211
+ "orientation": [
212
+ -0.6344593881273598,
213
+ 0.6670669773214551,
214
+ -0.2848079166270871,
215
+ 0.2671467447131103
216
+ ]
217
+ },
218
+ "left": {
219
+ "position": [
220
+ -0.06867924193484086,
221
+ -0.0005945544447201671,
222
+ 0.03843362824412718
223
+ ],
224
+ "orientation": [
225
+ -0.14277810176817451,
226
+ 0.1236499359266293,
227
+ -0.6680764786273947,
228
+ 0.7197214222917346
229
+ ]
230
+ },
231
+ "right": {
232
+ "position": [
233
+ -0.07333788908459828,
234
+ 0.00991803705544634,
235
+ 0.03390080995535155
236
+ ],
237
+ "orientation": [
238
+ 0.1296176811682453,
239
+ -0.12171535345636147,
240
+ 0.717362436615576,
241
+ -0.673628802824318
242
+ ]
243
+ }
244
+ },
245
+ "cam_ee_joint_indices": {
246
+ "left": 5,
247
+ "right": 12
248
+ },
249
+ "urdf": "./urdf/piper_description_dualarm_new.urdf",
250
+ "arm_joint_id": [
251
+ [
252
+ 0,
253
+ 1,
254
+ 2,
255
+ 3,
256
+ 4,
257
+ 5
258
+ ],
259
+ [
260
+ 8,
261
+ 9,
262
+ 10,
263
+ 11,
264
+ 12,
265
+ 13
266
+ ]
267
+ ],
268
+ "arm_link_keys": [
269
+ [
270
+ "left_link1",
271
+ "left_link2",
272
+ "left_link3",
273
+ "left_link4",
274
+ "left_link5",
275
+ "left_link6"
276
+ ],
277
+ [
278
+ "right_link1",
279
+ "right_link2",
280
+ "right_link3",
281
+ "right_link4",
282
+ "right_link5",
283
+ "right_link6"
284
+ ]
285
+ ],
286
+ "finger_keys": [
287
+ [
288
+ "left_link7"
289
+ ],
290
+ [
291
+ "right_link7"
292
+ ]
293
+ ]
294
+ },
295
+ {
296
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:MoveEgoToCam"
297
+ },
298
+ {
299
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:GetProjectionMat",
300
+ "target_coordinate": "ego"
301
+ },
302
+ {
303
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:ConvertDataType",
304
+ "convert_map": {
305
+ "imgs": "float32",
306
+ "depths": "float32",
307
+ "image_wh": "float32",
308
+ "projection_mat": "float32",
309
+ "embodiedment_mat": "float32"
310
+ }
311
+ },
312
+ {
313
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:MultiArmKinematics",
314
+ "urdf": "./urdf/piper_description_dualarm_new.urdf",
315
+ "arm_joint_id": [
316
+ [
317
+ 0,
318
+ 1,
319
+ 2,
320
+ 3,
321
+ 4,
322
+ 5
323
+ ],
324
+ [
325
+ 8,
326
+ 9,
327
+ 10,
328
+ 11,
329
+ 12,
330
+ 13
331
+ ]
332
+ ],
333
+ "arm_link_keys": [
334
+ [
335
+ "left_link1",
336
+ "left_link2",
337
+ "left_link3",
338
+ "left_link4",
339
+ "left_link5",
340
+ "left_link6"
341
+ ],
342
+ [
343
+ "right_link1",
344
+ "right_link2",
345
+ "right_link3",
346
+ "right_link4",
347
+ "right_link5",
348
+ "right_link6"
349
+ ]
350
+ ],
351
+ "finger_keys": [
352
+ [
353
+ "left_link7"
354
+ ],
355
+ [
356
+ "right_link7"
357
+ ]
358
+ ]
359
+ },
360
+ {
361
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:ItemSelection",
362
+ "keys": [
363
+ "imgs",
364
+ "depths",
365
+ "image_wh",
366
+ "projection_mat",
367
+ "embodiedment_mat",
368
+ "hist_robot_state",
369
+ "joint_scale_shift",
370
+ "kinematics",
371
+ "text",
372
+ "remaining_actions",
373
+ "delay_horizon",
374
+ "joint_mask"
375
+ ]
376
+ },
377
+ {
378
+ "type": "robo_orchard_lab.dataset.horizon_manipulation.transforms:UnsqueezeBatch"
379
+ }
380
+ ]
381
+ }
robotwin2_0_processor.json ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessorCfg",
3
+ "class_type": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessor",
4
+ "load_image": true,
5
+ "load_depth": true,
6
+ "cam_names": [
7
+ "front_camera",
8
+ "left_camera",
9
+ "right_camera",
10
+ "head_camera"
11
+ ],
12
+ "valid_action_step": null,
13
+ "transforms": [
14
+ {
15
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:AddItems",
16
+ "T_base2world": [
17
+ [
18
+ 0,
19
+ -1,
20
+ 0,
21
+ 0
22
+ ],
23
+ [
24
+ 1,
25
+ 0,
26
+ 0,
27
+ -0.65
28
+ ],
29
+ [
30
+ 0,
31
+ 0,
32
+ 1,
33
+ 0
34
+ ],
35
+ [
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 1
40
+ ]
41
+ ],
42
+ "joint_mask": [
43
+ true,
44
+ true,
45
+ true,
46
+ true,
47
+ true,
48
+ true,
49
+ false,
50
+ true,
51
+ true,
52
+ true,
53
+ true,
54
+ true,
55
+ true,
56
+ false
57
+ ]
58
+ },
59
+ {
60
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:SimpleStateSampling",
61
+ "hist_steps": 1,
62
+ "pred_steps": 64
63
+ },
64
+ {
65
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:Resize",
66
+ "dst_wh": [
67
+ 320,
68
+ 256
69
+ ]
70
+ },
71
+ {
72
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ImageChannelFlip",
73
+ "output_channel": [
74
+ 2,
75
+ 1,
76
+ 0
77
+ ]
78
+ },
79
+ {
80
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ToTensor"
81
+ },
82
+ {
83
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:MoveEgoToCam"
84
+ },
85
+ {
86
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:GetProjectionMat",
87
+ "target_coordinate": "ego"
88
+ },
89
+ {
90
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:AddScaleShift",
91
+ "scale_shift": [
92
+ [
93
+ 1.12735104,
94
+ -0.11648428
95
+ ],
96
+ [
97
+ 1.45046443,
98
+ 1.35436516
99
+ ],
100
+ [
101
+ 1.5324732,
102
+ 1.45750941
103
+ ],
104
+ [
105
+ 1.80842297,
106
+ -0.01855904
107
+ ],
108
+ [
109
+ 1.46318083,
110
+ 0.16631192
111
+ ],
112
+ [
113
+ 2.79637467,
114
+ 0.24332368
115
+ ],
116
+ [
117
+ 0.5,
118
+ 0.5
119
+ ],
120
+ [
121
+ 1.12735104,
122
+ -0.11648428
123
+ ],
124
+ [
125
+ 1.45046443,
126
+ 1.35436516
127
+ ],
128
+ [
129
+ 1.5324732,
130
+ 1.45750941
131
+ ],
132
+ [
133
+ 1.80842297,
134
+ -0.01855904
135
+ ],
136
+ [
137
+ 1.46318083,
138
+ 0.16631192
139
+ ],
140
+ [
141
+ 2.79637467,
142
+ 0.24332368
143
+ ],
144
+ [
145
+ 0.5,
146
+ 0.5
147
+ ]
148
+ ]
149
+ },
150
+ {
151
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ConvertDataType",
152
+ "convert_map": {
153
+ "imgs": "float32",
154
+ "depths": "float32",
155
+ "image_wh": "float32",
156
+ "projection_mat": "float32",
157
+ "embodiedment_mat": "float32"
158
+ }
159
+ },
160
+ {
161
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:DualArmKinematics",
162
+ "urdf": "./urdf/arx5_description_isaac.urdf"
163
+ },
164
+ {
165
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ItemSelection",
166
+ "keys": [
167
+ "imgs",
168
+ "depths",
169
+ "image_wh",
170
+ "projection_mat",
171
+ "embodiedment_mat",
172
+ "hist_robot_state",
173
+ "joint_scale_shift",
174
+ "kinematics",
175
+ "text",
176
+ "joint_mask"
177
+ ]
178
+ },
179
+ {
180
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:UnsqueezeBatch"
181
+ }
182
+ ]
183
+ }
robotwin2_0_ur5_wsg_processor.json ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__config_type__": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessorCfg",
3
+ "class_type": "robo_orchard_lab.models.holobrain.processor:HoloBrainProcessor",
4
+ "load_image": true,
5
+ "load_depth": true,
6
+ "cam_names": [
7
+ "left_camera",
8
+ "right_camera",
9
+ "head_camera"
10
+ ],
11
+ "valid_action_step": null,
12
+ "transforms": [
13
+ {
14
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:AddItems",
15
+ "T_base2world": [
16
+ [
17
+ 1,
18
+ 0,
19
+ 0,
20
+ 0
21
+ ],
22
+ [
23
+ 0,
24
+ 1,
25
+ 0,
26
+ -0.65
27
+ ],
28
+ [
29
+ 0,
30
+ 0,
31
+ 1,
32
+ 0.65
33
+ ],
34
+ [
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 1
39
+ ]
40
+ ],
41
+ "joint_mask": [
42
+ true,
43
+ true,
44
+ true,
45
+ true,
46
+ true,
47
+ true,
48
+ false,
49
+ true,
50
+ true,
51
+ true,
52
+ true,
53
+ true,
54
+ true,
55
+ false
56
+ ]
57
+ },
58
+ {
59
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:SimpleStateSampling",
60
+ "hist_steps": 1,
61
+ "pred_steps": 64
62
+ },
63
+ {
64
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:Resize",
65
+ "dst_wh": [
66
+ 320,
67
+ 256
68
+ ]
69
+ },
70
+ {
71
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ImageChannelFlip",
72
+ "output_channel": [
73
+ 2,
74
+ 1,
75
+ 0
76
+ ]
77
+ },
78
+ {
79
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ToTensor"
80
+ },
81
+ {
82
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:MoveEgoToCam"
83
+ },
84
+ {
85
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:GetProjectionMat",
86
+ "target_coordinate": "ego"
87
+ },
88
+ {
89
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:AddScaleShift",
90
+ "scale_shift": [
91
+ [
92
+ 2.400281548500061,
93
+ -0.1310516595840454
94
+ ],
95
+ [
96
+ 1.445511817932129,
97
+ -1.445511817932129
98
+ ],
99
+ [
100
+ 2.16847026348114,
101
+ -0.23492777347564697
102
+ ],
103
+ [
104
+ 1.7424615025520325,
105
+ -0.007538259029388428
106
+ ],
107
+ [
108
+ 2.8101450204849243,
109
+ 0.15472495555877686
110
+ ],
111
+ [
112
+ 2.9653799533843994,
113
+ 0.02583003044128418
114
+ ],
115
+ [
116
+ 0.5,
117
+ 0.5
118
+ ],
119
+ [
120
+ 2.400281548500061,
121
+ -0.1310516595840454
122
+ ],
123
+ [
124
+ 1.445511817932129,
125
+ -1.445511817932129
126
+ ],
127
+ [
128
+ 2.16847026348114,
129
+ -0.23492777347564697
130
+ ],
131
+ [
132
+ 1.7424615025520325,
133
+ -0.007538259029388428
134
+ ],
135
+ [
136
+ 2.8101450204849243,
137
+ 0.15472495555877686
138
+ ],
139
+ [
140
+ 2.9653799533843994,
141
+ 0.02583003044128418
142
+ ],
143
+ [
144
+ 0.5,
145
+ 0.5
146
+ ]
147
+ ]
148
+ },
149
+ {
150
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ConvertDataType",
151
+ "convert_map": {
152
+ "imgs": "float32",
153
+ "depths": "float32",
154
+ "image_wh": "float32",
155
+ "projection_mat": "float32",
156
+ "embodiedment_mat": "float32"
157
+ }
158
+ },
159
+ {
160
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:DualArmKinematics",
161
+ "urdf": "./urdf/robotwin2_dual_arm_ur5_wsg.urdf",
162
+ "left_arm_link_keys": [
163
+ "left_shoulder_link",
164
+ "left_upper_arm_link",
165
+ "left_forearm_link",
166
+ "left_wrist_1_link",
167
+ "left_wrist_2_link",
168
+ "left_wrist_3_link"
169
+ ],
170
+ "left_finger_keys": [
171
+ "left_finger_left"
172
+ ],
173
+ "right_arm_link_keys": [
174
+ "right_shoulder_link",
175
+ "right_upper_arm_link",
176
+ "right_forearm_link",
177
+ "right_wrist_1_link",
178
+ "right_wrist_2_link",
179
+ "right_wrist_3_link"
180
+ ],
181
+ "right_finger_keys": [
182
+ "right_finger_left"
183
+ ],
184
+ "left_arm_joint_id": [
185
+ 0,
186
+ 1,
187
+ 2,
188
+ 3,
189
+ 4,
190
+ 5
191
+ ],
192
+ "right_arm_joint_id": [
193
+ 8,
194
+ 9,
195
+ 10,
196
+ 11,
197
+ 12,
198
+ 13
199
+ ]
200
+ },
201
+ {
202
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:ItemSelection",
203
+ "keys": [
204
+ "imgs",
205
+ "depths",
206
+ "image_wh",
207
+ "projection_mat",
208
+ "embodiedment_mat",
209
+ "hist_robot_state",
210
+ "joint_scale_shift",
211
+ "kinematics",
212
+ "text",
213
+ "joint_mask"
214
+ ]
215
+ },
216
+ {
217
+ "type": "robo_orchard_lab.dataset.robotwin.transforms:UnsqueezeBatch"
218
+ }
219
+ ]
220
+ }
urdf/arx5_description_isaac.urdf ADDED
@@ -0,0 +1,1680 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)
3
+ Commit Version: 1.6.0-4-g7f85cfe Build Version: 1.6.7995.38578
4
+ For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
5
+ <robot name="arx5_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
6
+ <!-- <link name="footprint"/> -->
7
+
8
+ <!-- <xacro:include filename="$(find tracer_description)/urdf/tracer_v1.xacro"/> -->
9
+ <!-- <xacro:include filename="$(find realsense2_description)/urdf/_d435.xacro"/> -->
10
+
11
+ <link name="footprint">
12
+ </link>
13
+
14
+ <!-- tracer base -->
15
+ <link name="base_link">
16
+ <visual>
17
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
18
+ <!--<origin xyz="0 0 0" rpy="0 0 0"/>-->
19
+ <geometry>
20
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/tracer_base_link_no_wheel.dae" /> -->
21
+ <mesh filename="aloha_maniskill_sim/meshes/tracer_base_link.dae" />
22
+ <!--<box size="${base_x_size} ${base_y_size} ${base_z_size}"/>-->
23
+ </geometry>
24
+ </visual>
25
+ <collision>
26
+ <!--origin
27
+ xyz="-0.0145261552504705 0.0231316650320557 0.00586280190939592"
28
+ rpy="0 0 0" /-->
29
+ <origin xyz="0 0 0" rpy="1.57 0 0"/>
30
+ <geometry>
31
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/tracer_base_link_no_wheel.dae" /> -->
32
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/tracer_base_link.STL" /> -->
33
+ <box size="0.35 0.1 0.35"/>
34
+ </geometry>
35
+ </collision>
36
+ </link>
37
+ <link name="inertial_link">
38
+ <inertial>
39
+ <!--mass value="44.3898489950015" /-->
40
+ <mass value="132.3898489950015" />
41
+ <!-- <mass value="50" /> -->
42
+ <!-- <origin xyz="-0.00065 -0.085 0.062" />
43
+ <inertia ixx="0.6022" ixy="-0.02364" ixz="-0.1197" iyy="1.7386" iyz="-0.001544" izz="2.0296" /> -->
44
+ <origin xyz="0.015 0.0231316650320557 0" />
45
+ <!--<origin
46
+ xyz="-0.0145261552504705 0.0231316650320557 0.00586280190939592"
47
+ rpy="0 0 0" />-->
48
+ <inertia ixx="0.185196122711036"
49
+ ixy="4.30144213829512E-08"
50
+ ixz="5.81037523686401E-08"
51
+ iyy="0.364893736238929"
52
+ iyz="-0.000386720198091934"
53
+ izz="0.223868521722778" />
54
+ <!--<inertia ixx="2.288641" ixy="0" ixz="0" iyy="5.103976" iyz="0" izz="3.431465" />-->
55
+ </inertial>
56
+ </link>
57
+
58
+ <joint name="inertial_joint" type="fixed">
59
+ <origin xyz="0 0 0" rpy="0 0 0" />
60
+ <parent link="base_link" />
61
+ <child link="inertial_link" />
62
+ </joint>
63
+
64
+ <link name="right_wheel_link">
65
+ <inertial>
66
+ <mass value="6" />
67
+ <origin xyz="0 0 0" />
68
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
69
+ </inertial>
70
+ <visual>
71
+ <origin xyz="0 0 0" rpy="0 0 0" />
72
+ <geometry>
73
+ <mesh filename="aloha_maniskill_sim/meshes/tracer_wheel.dae" />
74
+ </geometry>
75
+ </visual>
76
+ <collision>
77
+ <origin
78
+ xyz="0 0 0"
79
+ rpy="1.57 0 0" />
80
+ <geometry>
81
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/tracer_wheel.dae" /> -->
82
+ <cylinder radius="0.05" length="0.05" />
83
+ </geometry>
84
+ </collision>
85
+ </link>
86
+
87
+ <joint name="right_wheel" type="continuous">
88
+ <parent link="base_link"/>
89
+ <child link="right_wheel_link"/>
90
+ <origin xyz="0 -0.17 -0.082" rpy="0 0 0" />
91
+ <axis xyz="0 1 0" rpy="0 0 0" />
92
+ </joint>
93
+
94
+ <link name="left_wheel_link">
95
+ <inertial>
96
+ <mass value="6" />
97
+ <origin xyz="0 0 0" />
98
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
99
+ </inertial>
100
+ <visual>
101
+ <origin xyz="0 0 0" rpy="0 0 0" />
102
+ <geometry>
103
+ <mesh filename="aloha_maniskill_sim/meshes/tracer_wheel.dae" />
104
+ </geometry>
105
+ </visual>
106
+ <collision>
107
+ <origin
108
+ xyz="0 0 0"
109
+ rpy="1.57 0 0" />
110
+ <geometry>
111
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/tracer_wheel.dae" /> -->
112
+ <cylinder radius="0.05" length="0.05" />
113
+ </geometry>
114
+ </collision>
115
+ </link>
116
+
117
+ <joint name="left_wheel" type="continuous">
118
+ <parent link="base_link"/>
119
+ <child link="left_wheel_link"/>
120
+ <origin xyz="0 0.17 -0.082" rpy="0 0 0" />
121
+ <axis xyz="0 1 0" rpy="0 0 0" />
122
+ </joint>
123
+
124
+ <link name="fl_castor_link">
125
+ <inertial>
126
+ <mass value="1" />
127
+ <origin xyz="0 0 0" />
128
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
129
+ </inertial>
130
+ <visual>
131
+ <geometry>
132
+ <mesh filename="aloha_maniskill_sim/meshes/castor_joint.dae" />
133
+ </geometry>
134
+ </visual>
135
+ </link>
136
+
137
+ <joint name="fl_castor_wheel" type="continuous">
138
+ <parent link="base_link" />
139
+ <child link="fl_castor_link" />
140
+ <origin xyz="0.19 0.17 -0.038" rpy="-1.57 0 0" />
141
+ <axis xyz="0 1 0" rpy="0 0 0" />
142
+ </joint>
143
+
144
+ <link name="fr_castor_link">
145
+ <inertial>
146
+ <mass value="1" />
147
+ <origin xyz="0 0 0" />
148
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
149
+ </inertial>
150
+ <visual>
151
+ <geometry>
152
+ <mesh filename="aloha_maniskill_sim/meshes/castor_joint.dae" />
153
+ </geometry>
154
+ </visual>
155
+ </link>
156
+
157
+ <joint name="fr_castor_wheel" type="continuous">
158
+ <origin xyz="0.18955 -0.17 -0.0380886" rpy="-1.57 0 0" />
159
+ <parent link="base_link" />
160
+ <child link="fr_castor_link" />
161
+ <axis xyz="0 1 0" rpy="0 0 0" />
162
+ </joint>
163
+
164
+ <link name="rr_castor_link">
165
+ <inertial>
166
+ <mass value="1" />
167
+ <origin xyz="0 0 0" />
168
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
169
+ </inertial>
170
+ <visual>
171
+ <geometry>
172
+ <mesh filename="aloha_maniskill_sim/meshes/castor_joint.dae" />
173
+ </geometry>
174
+ </visual>
175
+ </link>
176
+
177
+ <joint name="rr_castor_wheel" type="continuous">
178
+ <origin xyz="-0.18955 -0.17 -0.0380886" rpy="-1.57 0 0" />
179
+ <parent link="base_link" />
180
+ <child link="rr_castor_link" />
181
+ <axis xyz="0 1 0" rpy="0 0 0" />
182
+ </joint>
183
+
184
+ <link name="rl_castor_link">
185
+ <inertial>
186
+ <mass value="1" />
187
+ <origin xyz="0 0 0" />
188
+ <inertia ixx="0.7171" ixy="0" ixz="0" iyy="0.1361" iyz="0" izz="0.7171" />
189
+ </inertial>
190
+ <visual>
191
+ <geometry>
192
+ <mesh filename="aloha_maniskill_sim/meshes/castor_joint.dae" />
193
+ </geometry>
194
+ </visual>
195
+ </link>
196
+
197
+ <joint name="rl_castor_wheel" type="continuous">
198
+ <origin xyz="-0.18955 0.17 -0.0380886" rpy="-1.57 0 0" />
199
+ <parent link="base_link" />
200
+ <child link="rl_castor_link" />
201
+ <axis xyz="0 1 0" rpy="0 0 0" />
202
+ </joint>
203
+
204
+ <link name="fl_wheel_link">
205
+ <inertial>
206
+ <mass value="1" />
207
+ <origin xyz="0 0 0" />
208
+ <inertia ixx="0.3131" ixy="0" ixz="0" iyy="0.3131" iyz="0" izz="0.1361" />
209
+ </inertial>
210
+ <visual>
211
+ <geometry>
212
+ <mesh filename="aloha_maniskill_sim/meshes/castor.dae" />
213
+ </geometry>
214
+ </visual>
215
+ <collision>
216
+ <origin
217
+ xyz="0 0 0"
218
+ rpy="0 0 0" />
219
+ <geometry>
220
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/castor.dae" /> -->
221
+ <cylinder radius="0.025" length="0.025" />
222
+ </geometry>
223
+ </collision>
224
+ </link>
225
+
226
+ <joint name="fl_wheel" type="continuous">
227
+ <parent link="fl_castor_link"/>
228
+ <child link="fl_wheel_link"/>
229
+ <dynamics damping="0.0" friction="0.0"/>
230
+ <origin xyz="-0.0218084 0.077 0" rpy="0 0 0" />
231
+ <axis xyz="0 0 1" rpy="0 0 0" />
232
+ </joint>
233
+
234
+ <link name="fr_wheel_link">
235
+ <inertial>
236
+ <mass value="1" />
237
+ <origin xyz="0 0 0" />
238
+ <inertia ixx="0.3131" ixy="0" ixz="0" iyy="0.3131" iyz="0" izz="0.1361" />
239
+ </inertial>
240
+ <visual>
241
+ <geometry>
242
+ <mesh filename="aloha_maniskill_sim/meshes/castor.dae" />
243
+ </geometry>
244
+ </visual>
245
+ <collision>
246
+ <origin
247
+ xyz="0 0 0"
248
+ rpy="0 0 0" />
249
+ <geometry>
250
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/castor.dae" />-->
251
+ <cylinder radius="0.025" length="0.025" />
252
+ </geometry>
253
+ </collision>
254
+ </link>
255
+
256
+ <joint name="fr_wheel" type="continuous">
257
+ <parent link="fr_castor_link"/>
258
+ <child link="fr_wheel_link"/>
259
+ <dynamics damping="0.0" friction="0.0"/>
260
+ <origin xyz="-0.0218084 0.077 0" rpy="0 0 0" />
261
+ <axis xyz="0 0 1" rpy="0 0 0" />
262
+ </joint>
263
+
264
+ <link name="rr_wheel_link">
265
+ <inertial>
266
+ <mass value="1" />
267
+ <origin xyz="0 0 0" />
268
+ <inertia ixx="0.3131" ixy="0" ixz="0" iyy="0.3131" iyz="0" izz="0.1361" />
269
+ <!--<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0" />-->
270
+ </inertial>
271
+ <visual>
272
+ <geometry>
273
+ <mesh filename="aloha_maniskill_sim/meshes/castor.dae" />
274
+ </geometry>
275
+ </visual>
276
+ <collision>
277
+ <origin
278
+ xyz="0 0 0"
279
+ rpy="0 0 0" />
280
+ <geometry>
281
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/castor.dae" /> -->
282
+ <cylinder radius="0.025" length="0.025" />
283
+ </geometry>
284
+ </collision>
285
+ </link>
286
+
287
+ <joint name="rr_wheel" type="continuous">
288
+ <parent link="rr_castor_link"/>
289
+ <child link="rr_wheel_link"/>
290
+ <dynamics damping="0.0" friction="0.0"/>
291
+ <origin xyz="-0.0218084 0.077 0" rpy="0 0 0" />
292
+ <axis xyz="0 0 1" rpy="0 0 0" />
293
+ </joint>
294
+
295
+ <link name="rl_wheel_link">
296
+ <inertial>
297
+ <mass value="1" />
298
+ <origin xyz="0 0 0" />
299
+ <inertia ixx="0.3131" ixy="0" ixz="0" iyy="0.3131" iyz="0" izz="0.1361" />
300
+ </inertial>
301
+ <visual>
302
+ <geometry>
303
+ <mesh filename="aloha_maniskill_sim/meshes/castor.dae" />
304
+ </geometry>
305
+ </visual>
306
+ <collision>
307
+ <origin
308
+ xyz="0 0 0"
309
+ rpy="0 0 0" />
310
+ <geometry>
311
+ <!-- <mesh filename="aloha_maniskill_sim/meshes/castor.dae" /> -->
312
+ <cylinder radius="0.025" length="0.025" />
313
+ </geometry>
314
+ </collision>
315
+ </link>
316
+
317
+ <joint name="rl_wheel" type="continuous">
318
+ <parent link="rl_castor_link"/>
319
+ <child link="rl_wheel_link"/>
320
+ <dynamics damping="0.0" friction="0.0"/>
321
+ <origin xyz="-0.0218084 0.077 0" rpy="0 0 0" />
322
+ <axis xyz="0 0 1" rpy="0 0 0" />
323
+ </joint>
324
+
325
+ <!-- aloha base -->
326
+ <joint name="box_joint" type="fixed">
327
+ <origin xyz="0 0 0.15" rpy="0 0 0" />
328
+ <parent link="footprint" />
329
+ <child link="base_link" />
330
+ <axis xyz="0 0 0" />
331
+ </joint>
332
+ <link name="box1_Link">
333
+ <inertial>
334
+ <origin xyz="-0.17227 -0.0012276 0.023432" rpy="0 0 0" />
335
+ <mass value="0.00014994" />
336
+ <inertia ixx="0.012264" ixy="-9.2432E-06" ixz="0.0001761" iyy="0.0045226" iyz="-0.00063248" izz="0.016558" />
337
+ </inertial>
338
+ <visual>
339
+ <origin xyz="0 0 0" rpy="-0.05 0 0" />
340
+ <geometry>
341
+ <mesh filename="package://aloha_maniskill_sim/meshes/box1_Link.STL" />
342
+ </geometry>
343
+ <material name="">
344
+ <color rgba="0.79216 0.81961 0.93333 1" />
345
+ </material>
346
+ </visual>
347
+ <collision>
348
+ <origin xyz="0 0 0" rpy="-0.05 0 0" />
349
+ <geometry>
350
+ <mesh filename="package://aloha_maniskill_sim/meshes/box1_Link.STL" />
351
+ </geometry>
352
+ </collision>
353
+ </link>
354
+ <joint name="box1" type="fixed">
355
+ <origin xyz="0 0 0.15" rpy="0 0 0" />
356
+ <parent link="footprint" />
357
+ <child link="box1_Link" />
358
+ <axis xyz="0 0 0" />
359
+ </joint>
360
+ <link name="box2_Link">
361
+ <inertial>
362
+ <origin xyz="0.015107 -0.027922 0.00013672" rpy="0 0 0" />
363
+ <mass value="3.736" />
364
+ <inertia ixx="0.097545" ixy="-9.2609E-06" ixz="0.00015366" iyy="0.045841" iyz="-0.0020459" izz="0.084773" />
365
+ </inertial>
366
+ <visual>
367
+ <origin xyz="0 0 0" rpy="0 0 3.141592653589323846" />
368
+ <geometry>
369
+ <mesh filename="package://aloha_maniskill_sim/meshes/box2_Link.dae" />
370
+ </geometry>
371
+ </visual>
372
+ <collision>
373
+ <origin xyz="0 0 0" rpy="0 0 3.141592653589323846" />
374
+ <geometry>
375
+ <mesh filename="package://aloha_maniskill_sim/meshes/box2_Link.dae" />
376
+ </geometry>
377
+ </collision>
378
+ </link>
379
+ <joint name="box2" type="fixed">
380
+ <origin xyz="0.158 -0.385 -0.135" rpy="0 0 0" />
381
+ <parent link="box1_Link" />
382
+ <child link="box2_Link" />
383
+ <axis xyz="0 0 0" />
384
+ </joint>
385
+
386
+
387
+
388
+ <link
389
+ name="camera_base_link">
390
+ <inertial>
391
+ <origin
392
+ xyz="-0.00862442289199344 -5.31672329634469E-08 0.170092831004467"
393
+ rpy="0 0 0" />
394
+ <mass
395
+ value="0.336269569361489" />
396
+ <inertia
397
+ ixx="0.00580628296841397"
398
+ ixy="3.98435937176716E-10"
399
+ ixz="-2.42350052877161E-05"
400
+ iyy="0.00582602200678083"
401
+ iyz="2.9180594404216E-10"
402
+ izz="0.000186894283496158" />
403
+ </inertial>
404
+ <visual>
405
+ <origin
406
+ xyz="0 0 0"
407
+ rpy="0 0 0" />
408
+ <geometry>
409
+ <mesh
410
+ filename="package://aloha_maniskill_sim/meshes/camera_base_link.STL" />
411
+ </geometry>
412
+ <!-- <material
413
+ name="white">
414
+ <color rgba="0.752 0.7529 0.7529 1" />
415
+ </material> -->
416
+ </visual>
417
+ <collision>
418
+ <origin
419
+ xyz="0 0 0"
420
+ rpy="0 0 0" />
421
+ <geometry>
422
+ <mesh
423
+ filename="package://aloha_maniskill_sim/meshes/camera_base_link.STL" />
424
+ </geometry>
425
+ </collision>
426
+ </link>
427
+
428
+ <joint name="camera_to_box1" type="fixed">
429
+ <origin xyz="0.18 0 0.626" rpy="0 0 0" />
430
+ <parent link="box1_Link" />
431
+ <child link="camera_base_link" />
432
+ <axis xyz="0 0 0" />
433
+ </joint>
434
+
435
+ <link
436
+ name="camera_link1">
437
+ <inertial>
438
+ <origin
439
+ xyz="-0.0292387906463559 0.000126439620513119 -0.000724950892729725"
440
+ rpy="0 0 0" />
441
+ <mass
442
+ value="0.0877001598245188" />
443
+ <inertia
444
+ ixx="7.77343248794949E-05"
445
+ ixy="2.44922634558373E-07"
446
+ ixz="1.73341747661077E-08"
447
+ iyy="9.73521513961785E-06"
448
+ iyz="-2.86133018917868E-09"
449
+ izz="7.74948757118157E-05" />
450
+ </inertial>
451
+ <visual>
452
+ <origin
453
+ xyz="0 0 0"
454
+ rpy="0 0 0" />
455
+ <geometry>
456
+ <mesh
457
+ filename="package://aloha_maniskill_sim/meshes/camera_link1.dae" />
458
+ </geometry>
459
+ <!-- <material
460
+ name="black">
461
+ <color rgba="0.05 0.05 0.05 0.98" />
462
+ </material> -->
463
+ </visual>
464
+ <collision>
465
+ <origin
466
+ xyz="0 0 0"
467
+ rpy="0 0 0" />
468
+ <geometry>
469
+ <mesh
470
+ filename="package://aloha_maniskill_sim/meshes/camera_link1.STL" />
471
+ </geometry>
472
+ </collision>
473
+ </link>
474
+ <joint name="camera_joint1" type="fixed">
475
+ <origin xyz="0.071198 0 0.10384" rpy="0 0.26931 0" />
476
+ <parent link="camera_base_link" />
477
+ <child link="camera_link1" />
478
+ <axis xyz="0 0 0" ryp="0 0 0"/>
479
+ </joint>
480
+ <link name="camera_link2">
481
+ <inertial>
482
+ <origin xyz="-0.0292307474530399 0.000126438461566014 -0.000753459207498031" rpy="0 0 0" />
483
+ <mass value="0.0877001605148491" />
484
+ <inertia
485
+ ixx="7.77338961798341E-05"
486
+ ixy="2.44922367048273E-07"
487
+ ixz="1.80373226250749E-08"
488
+ iyy="9.73521616927317E-06"
489
+ iyz="-2.86130173714525E-09"
490
+ izz="7.74953085203139E-05" />
491
+ </inertial>
492
+ <visual>
493
+ <origin xyz="0 0 0" rpy="0 0 0" />
494
+ <geometry>
495
+ <mesh
496
+ filename="package://aloha_maniskill_sim/meshes/camera_link2.dae" />
497
+ </geometry>
498
+ <!-- <material name="black">
499
+
500
+ </material> -->
501
+ </visual>
502
+ <collision>
503
+ <origin xyz="0 0 0" rpy="0 0 0" />
504
+ <geometry>
505
+ <mesh
506
+ filename="package://aloha_maniskill_sim/meshes/camera_link2.STL" />
507
+ </geometry>
508
+ </collision>
509
+ </link>
510
+ <joint name="camera_joint2" type="fixed">
511
+ <!-- <origin xyz="-0.11726 0 0.42423" rpy="0 0.011358 0" /> -->
512
+ <origin xyz="-0.14 0 0.5" rpy="0 0.011358 0" />
513
+ <parent link="camera_link1" />
514
+ <child link="camera_link2" />
515
+ <axis
516
+ xyz="0 0 0" />
517
+ </joint>
518
+
519
+
520
+ <!--***************************** front-left ****************************** -->
521
+ <link name="fl_base_link">
522
+ <inertial>
523
+ <origin xyz="-3.77960552443097E-05 6.79413834922362E-05 0.0272675975957773" rpy="0 0 0" />
524
+ <mass value="0.155112526591278" />
525
+ <inertia ixx="7.60347373757683E-05" ixy="1.31363578468253E-07" ixz="1.65990805634842E-07" iyy="7.64176389864096E-05" iyz="-2.98381448658278E-07" izz="6.94914158355665E-05" />
526
+ </inertial>
527
+ <visual>
528
+ <origin xyz="0 0 0" rpy="0 0 0" />
529
+ <geometry>
530
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.dae" />
531
+ </geometry>
532
+ <!-- <material name="black">
533
+ <color rgba="0.05 0.05 0.05 0.98" />
534
+ </material> -->
535
+ </visual>
536
+ <collision>
537
+ <origin xyz="0 0 0" rpy="0 0 0" />
538
+ <geometry>
539
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.STL" />
540
+ </geometry>
541
+ </collision>
542
+ </link>
543
+ <joint name="fl_base_joint" type="fixed">
544
+ <origin xyz="0.233 0.3 0.7775" rpy="0.0 0.0 0.0" />
545
+ <parent link="footprint" />
546
+ <child link="fl_base_link" />
547
+ <axis xyz="0.0 0.0 1.0" />
548
+ </joint>
549
+
550
+ <link name="fl_link1">
551
+ <inertial>
552
+ <origin xyz="0.00625345254733769 -0.024776724575416 0.0152204909116542" rpy="0 0 0" />
553
+ <mass value="0.0216291264377367" />
554
+ <inertia
555
+ ixx="1.15756471313396E-05"
556
+ ixy="1.63728784702967E-06"
557
+ ixz="-2.73767909517805E-06"
558
+ iyy="9.54605859943272E-06"
559
+ iyz="3.01605409074901E-06"
560
+ izz="1.06781021447089E-05" />
561
+ </inertial>
562
+ <visual>
563
+ <origin xyz="0 0 0" rpy="0 0 0" />
564
+ <geometry>
565
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.dae" />
566
+ </geometry>
567
+ <!-- <material name="black">
568
+
569
+ </material> -->
570
+ </visual>
571
+ <collision>
572
+ <origin xyz="0 0 0" rpy="0 0 0" />
573
+ <geometry>
574
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.STL" />
575
+ </geometry>
576
+ </collision>
577
+ </link>
578
+ <joint name="fl_joint1" type="revolute">
579
+ <origin xyz="0 0 0.058" rpy="0 0 0" />
580
+ <parent link="fl_base_link" />
581
+ <child link="fl_link1" />
582
+ <axis xyz="0 0 1" />
583
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
584
+ </joint>
585
+ <link name="fl_link2">
586
+ <inertial>
587
+ <origin xyz="-0.0751817740450955 3.45134309138919E-06 -4.55690287344823E-05" rpy="0 0 0" />
588
+ <mass value="0.317040634327494" />
589
+ <inertia
590
+ ixx="0.000148622978788109"
591
+ ixy="7.9939701538228E-06"
592
+ ixz="2.11594522192149E-06"
593
+ iyy="0.000646291918352959"
594
+ iyz="-1.99305353242084E-08"
595
+ izz="0.000613128041834933" />
596
+ </inertial>
597
+ <visual>
598
+ <origin xyz="0 0 0" rpy="0 0 0" />
599
+ <geometry>
600
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.dae" />
601
+ </geometry>
602
+ <!-- <material name="black">
603
+
604
+ </material> -->
605
+ </visual>
606
+ <collision>
607
+ <origin xyz="0 0 0" rpy="0 0 0" />
608
+ <geometry>
609
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.STL" />
610
+ </geometry>
611
+ </collision>
612
+ </link>
613
+ <joint name="fl_joint2" type="revolute">
614
+ <origin xyz="0.025013 0.00060169 0.042" rpy="0 0 0" />
615
+ <parent link="fl_link1" />
616
+ <child link="fl_link2" />
617
+ <axis xyz="0 1 0" />
618
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
619
+ </joint>
620
+ <link name="fl_link3">
621
+ <inertial>
622
+ <origin xyz="0.0958977122336034 -8.54798924280289E-05 -0.0389029227802006" rpy="0 0 0" />
623
+ <mass value="0.475179901151789" />
624
+ <inertia
625
+ ixx="0.000245797731408424"
626
+ ixy="-1.18756934981885E-06"
627
+ ixz="-3.08627546217305E-07"
628
+ iyy="0.000848596965773723"
629
+ iyz="2.1655980060709E-07"
630
+ izz="0.00073290848648715" />
631
+ </inertial>
632
+ <visual>
633
+ <origin xyz="0 0 0" rpy="0 0 0" />
634
+ <geometry>
635
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.dae" />
636
+ </geometry>
637
+ <!-- <material name="white">
638
+ <color rgba="0.752 0.7529 0.7529 1" />
639
+ </material> -->
640
+ </visual>
641
+ <collision>
642
+ <origin xyz="0 0 0" rpy="0 0 0" />
643
+ <geometry>
644
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.STL" />
645
+ </geometry>
646
+ </collision>
647
+ </link>
648
+ <joint name="fl_joint3" type="revolute">
649
+ <origin xyz="-0.26396 0.0044548 0" rpy="-3.1416 0 -0.015928" />
650
+ <parent link="fl_link2" />
651
+ <child link="fl_link3" />
652
+ <axis xyz="0 1 0" />
653
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
654
+ </joint>
655
+ <link name="fl_link4">
656
+ <inertial>
657
+ <origin xyz="0.0591385266744759 0.00278044811499105 -0.0552291926495377" rpy="0 0 0" />
658
+ <mass value="0.138133633872797" />
659
+ <inertia
660
+ ixx="5.6812931750694E-05"
661
+ ixy="3.18564570369191E-06"
662
+ ixz="3.31187610383292E-06"
663
+ iyy="5.56751697137782E-05"
664
+ iyz="-2.13897740775086E-06"
665
+ izz="6.42957251144152E-05" />
666
+ </inertial>
667
+ <visual>
668
+ <origin xyz="0 0 0" rpy="0 0 0" />
669
+ <geometry>
670
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.dae" />
671
+ </geometry>
672
+ <!-- <material name="black">
673
+
674
+ </material> -->
675
+ </visual>
676
+ <collision>
677
+ <origin xyz="0 0 0" rpy="0 0 0" />
678
+ <geometry>
679
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.STL" />
680
+ </geometry>
681
+ </collision>
682
+ </link>
683
+ <joint name="fl_joint4" type="revolute">
684
+ <origin xyz="0.246 -0.00025 -0.06" rpy="0 0 0" />
685
+ <parent link="fl_link3" />
686
+ <child link="fl_link4" />
687
+ <axis xyz="0 1 0" />
688
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
689
+ </joint>
690
+ <link name="fl_link5">
691
+ <inertial>
692
+ <origin xyz="0.00870303426445659 -2.87406901246252E-05 0.0817957433312705" rpy="0 0 0" />
693
+ <mass value="0.126741777607625" />
694
+ <inertia
695
+ ixx="5.2870226427243E-05"
696
+ ixy="-3.41758559092594E-08"
697
+ ixz="1.05281937338646E-06"
698
+ iyy="4.14245046680039E-05"
699
+ iyz="-7.47381113966083E-08"
700
+ izz="4.46265559731496E-05" />
701
+ </inertial>
702
+ <visual>
703
+ <origin xyz="0 0 0" rpy="0 0 0" />
704
+ <geometry>
705
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.dae" />
706
+ </geometry>
707
+ <!-- <material name="black">
708
+
709
+ </material> -->
710
+ </visual>
711
+ <collision>
712
+ <origin xyz="0 0 0" rpy="0 0 0" />
713
+ <geometry>
714
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.STL" />
715
+ </geometry>
716
+ </collision>
717
+ </link>
718
+ <joint name="fl_joint5" type="revolute">
719
+ <origin xyz="0.06775 0.0015 -0.0855" rpy="0 0 -0.015928" />
720
+ <parent link="fl_link4" />
721
+ <child link="fl_link5" />
722
+ <axis xyz="0 0 1" />
723
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
724
+ </joint>
725
+ <link name="fl_link6">
726
+ <inertial>
727
+ <origin xyz="0.038317562848284 -4.45000434657139E-05 0.00355875192843721" rpy="0 0 0" />
728
+ <mass value="0.142880100739169" />
729
+ <inertia
730
+ ixx="9.84190386012445E-05"
731
+ ixy="9.90777828593097E-08"
732
+ ixz="2.38841662850396E-07"
733
+ iyy="3.95328645641678E-05"
734
+ iyz="2.8992956673539E-07"
735
+ izz="8.4711562610471E-05" />
736
+ </inertial>
737
+ <visual>
738
+ <origin xyz="0 0 0" rpy="0 0 0" />
739
+ <geometry>
740
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.dae" />
741
+ </geometry>
742
+ <!-- <material name="black">
743
+
744
+ </material> -->
745
+ </visual>
746
+ <collision>
747
+ <origin xyz="0 0 0" rpy="0 0 0" />
748
+ <geometry>
749
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.STL" />
750
+ </geometry>
751
+ </collision>
752
+ </link>
753
+ <joint name="fl_joint6" type="revolute">
754
+ <origin xyz="0.03095 0 0.0855" rpy="-3.1416 0 0" />
755
+ <parent link="fl_link5" />
756
+ <child link="fl_link6" />
757
+ <axis xyz="1 0 0" />
758
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
759
+ </joint>
760
+
761
+ <!-- 相机的链接 -->
762
+ <link name="left_camera">
763
+ <visual>
764
+ <origin xyz="0 -0.032 0" rpy="1.57 0 1.57"/>
765
+ <geometry>
766
+ <mesh filename="package://aloha_maniskill_sim/meshes/d435.dae" /> <!-- 根据D435相机的实际尺寸调整 -->
767
+ </geometry>
768
+ <!-- <material name="black">
769
+ <color rgba="0.8 0.8 0.8 1"/>
770
+ </material> -->
771
+ </visual>
772
+ <collision>
773
+ <origin xyz="0 -0.032 0" rpy="0 0 0"/>
774
+ <geometry>
775
+ <box size="0.025 0.090 0.025"/> <!-- 根据D435相机的实际尺寸调整 -->
776
+ </geometry>
777
+ </collision>
778
+ <inertial>
779
+ <mass value="0.1"/> <!-- 相机的估计质量 -->
780
+ <origin xyz="0 0 0" rpy="0 0 0"/>
781
+ <inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/> <!-- 估计的惯性张量 -->
782
+ </inertial>
783
+ </link>
784
+
785
+ <!-- 连接相机和末端执行器的关节 -->
786
+ <joint name="left_camera_joint" type="fixed">
787
+ <parent link="fl_link6"/>
788
+ <child link="left_camera"/>
789
+ <origin xyz="0.07 0.032 0.065" rpy="0 0.4 0"/> <!-- 根据相机的安装位置调整 -->
790
+ <!-- <origin xyz="0.07 0.032 0.06" rpy="0 0 0"/> 根据相机的安装位置调整 -->
791
+ </joint>
792
+
793
+ <link name="fl_link7">
794
+ <inertial>
795
+ <origin xyz="0.00626222055030923 -0.00713411663149576 -0.00289898514345116" rpy="0 0 0" />
796
+ <mass value="0.0264779585598598" />
797
+ <inertia
798
+ ixx="8.79642526953154E-06"
799
+ ixy="3.0244685599285E-06"
800
+ ixz="-5.99353466596085E-07"
801
+ iyy="1.48519274221679E-05"
802
+ iyz="1.31550651321036E-07"
803
+ izz="1.1114142640444E-05" />
804
+ </inertial>
805
+ <visual>
806
+ <origin xyz="0 0 0" rpy="0 0 0" />
807
+ <geometry>
808
+ <mesh filename="package://aloha_maniskill_sim/meshes/link7.dae" />
809
+ </geometry>
810
+ <!-- <material name="black">
811
+
812
+ </material> -->
813
+ </visual>
814
+ <collision>
815
+ <origin xyz="0 0 0" rpy="0 0 0" />
816
+ <geometry>
817
+ <mesh filename="package://aloha_maniskill_sim/meshes/link7.STL" />
818
+ </geometry>
819
+ </collision>
820
+ </link>
821
+ <joint name="fl_joint7" type="prismatic">
822
+ <origin xyz="0.08457 0.024493 -0.00010349" rpy="0 0 0" />
823
+ <parent link="fl_link6" />
824
+ <child link="fl_link7" />
825
+ <axis xyz="0 1 0" />
826
+ <limit lower="0" upper="0.04765" effort="100" velocity="1000" />
827
+ </joint>
828
+ <link name="fl_link8">
829
+ <inertial>
830
+ <origin xyz="0.00626222057480438 0.00713411644936678 0.00145300478837504" rpy="0 0 0" />
831
+ <mass value="0.0264779581346586" />
832
+ <inertia
833
+ ixx="9.01311523396113E-06"
834
+ ixy="-3.02446856817399E-06"
835
+ ixz="1.52593574709739E-06"
836
+ iyy="1.50686174477573E-05"
837
+ iyz="5.73251417689975E-07"
838
+ izz="1.11141426397578E-05" />
839
+ </inertial>
840
+ <visual>
841
+ <origin xyz="0 0 0" rpy="0 0 0" />
842
+ <geometry>
843
+ <mesh filename="package://aloha_maniskill_sim/meshes/link8.dae" />
844
+ </geometry>
845
+ <!-- <material name="black">
846
+
847
+ </material> -->
848
+ </visual>
849
+ <collision>
850
+ <origin xyz="0 0 0" rpy="0 0 0" />
851
+ <geometry>
852
+ <mesh filename="package://aloha_maniskill_sim/meshes/link8.STL" />
853
+ </geometry>
854
+ </collision>
855
+ </link>
856
+ <joint name="fl_joint8" type="prismatic">
857
+ <origin xyz="0.08457 -0.024496 -0.00010354" rpy="0 0 0" />
858
+ <parent link="fl_link6" />
859
+ <child link="fl_link8" />
860
+ <axis xyz="0 -1 0" />
861
+ <limit lower="0" upper="0.04765" effort="100" velocity="1000" />
862
+ </joint>
863
+ <!--***************************** front-right ****************************** -->
864
+ <link name="fr_base_link">
865
+ <inertial>
866
+ <origin xyz="-3.77960552443097E-05 6.79413834922362E-05 0.0272675975957773" rpy="0 0 0" />
867
+ <mass value="0.155112526591278" />
868
+ <inertia ixx="7.60347373757683E-05" ixy="1.31363578468253E-07" ixz="1.65990805634842E-07" iyy="7.64176389864096E-05" iyz="-2.98381448658278E-07" izz="6.94914158355665E-05" />
869
+ </inertial>
870
+ <visual>
871
+ <origin xyz="0 0 0" rpy="0 0 0" />
872
+ <geometry>
873
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.dae" />
874
+ </geometry>
875
+ <!-- <material name="black">
876
+
877
+ </material> -->
878
+ </visual>
879
+ <collision>
880
+ <origin xyz="0 0 0" rpy="0 0 0" />
881
+ <geometry>
882
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.STL" />
883
+ </geometry>
884
+ </collision>
885
+ </link>
886
+
887
+ <joint name="fr_base_joint" type="fixed">
888
+ <origin xyz="0.233 -0.3 0.7775" rpy="0.0 0.0 0.0" />
889
+ <parent link="footprint" />
890
+ <child link="fr_base_link" />
891
+ <axis xyz="0.0 0.0 1.0" />
892
+ </joint>
893
+
894
+ <link name="fr_link1">
895
+ <inertial>
896
+ <origin xyz="0.00625345254733769 -0.024776724575416 0.0152204909116542" rpy="0 0 0" />
897
+ <mass value="0.0216291264377367" />
898
+ <inertia
899
+ ixx="1.15756471313396E-05"
900
+ ixy="1.63728784702967E-06"
901
+ ixz="-2.73767909517805E-06"
902
+ iyy="9.54605859943272E-06"
903
+ iyz="3.01605409074901E-06"
904
+ izz="1.06781021447089E-05" />
905
+ </inertial>
906
+ <visual>
907
+ <origin xyz="0 0 0" rpy="0 0 0" />
908
+ <geometry>
909
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.dae" />
910
+ </geometry>
911
+ <!-- <material name="black">
912
+
913
+ </material> -->
914
+ </visual>
915
+ <collision>
916
+ <origin xyz="0 0 0" rpy="0 0 0" />
917
+ <geometry>
918
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.STL" />
919
+ </geometry>
920
+ </collision>
921
+ </link>
922
+ <joint name="fr_joint1" type="revolute">
923
+ <origin xyz="0 0 0.058" rpy="0 0 0" />
924
+ <parent link="fr_base_link" />
925
+ <child link="fr_link1" />
926
+ <axis xyz="0 0 1" />
927
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
928
+ </joint>
929
+ <link
930
+ name="fr_link2">
931
+ <inertial>
932
+ <origin xyz="-0.0751817740450955 3.45134309138919E-06 -4.55690287344823E-05" rpy="0 0 0" />
933
+ <mass value="0.317040634327494" />
934
+ <inertia
935
+ ixx="0.000148622978788109"
936
+ ixy="7.9939701538228E-06"
937
+ ixz="2.11594522192149E-06"
938
+ iyy="0.000646291918352959"
939
+ iyz="-1.99305353242084E-08"
940
+ izz="0.000613128041834933" />
941
+ </inertial>
942
+ <visual>
943
+ <origin xyz="0 0 0" rpy="0 0 0" />
944
+ <geometry>
945
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.dae" />
946
+ </geometry>
947
+ <!-- <material name="black">
948
+
949
+ </material> -->
950
+ </visual>
951
+ <collision>
952
+ <origin xyz="0 0 0" rpy="0 0 0" />
953
+ <geometry>
954
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.STL" />
955
+ </geometry>
956
+ </collision>
957
+ </link>
958
+ <joint name="fr_joint2" type="revolute">
959
+ <origin xyz="0.025013 0.00060169 0.042" rpy="0 0 0" />
960
+ <parent link="fr_link1" />
961
+ <child link="fr_link2" />
962
+ <axis xyz="0 1 0" />
963
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
964
+ </joint>
965
+ <link
966
+ name="fr_link3">
967
+ <inertial>
968
+ <origin xyz="0.0958977122336034 -8.54798924280289E-05 -0.0389029227802006" rpy="0 0 0" />
969
+ <mass value="0.475179901151789" />
970
+ <inertia
971
+ ixx="0.000245797731408424"
972
+ ixy="-1.18756934981885E-06"
973
+ ixz="-3.08627546217305E-07"
974
+ iyy="0.000848596965773723"
975
+ iyz="2.1655980060709E-07"
976
+ izz="0.00073290848648715" />
977
+ </inertial>
978
+ <visual>
979
+ <origin xyz="0 0 0" rpy="0 0 0" />
980
+ <geometry>
981
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.dae" />
982
+ </geometry>
983
+ <!-- <material name="white">
984
+
985
+ </material> -->
986
+ </visual>
987
+ <collision>
988
+ <origin xyz="0 0 0" rpy="0 0 0" />
989
+ <geometry>
990
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.STL" />
991
+ </geometry>
992
+ </collision>
993
+ </link>
994
+ <joint name="fr_joint3" type="revolute">
995
+ <origin xyz="-0.26396 0.0044548 0" rpy="-3.1416 0 -0.015928" />
996
+ <parent link="fr_link2" />
997
+ <child link="fr_link3" />
998
+ <axis xyz="0 1 0" />
999
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1000
+ </joint>
1001
+ <link
1002
+ name="fr_link4">
1003
+ <inertial>
1004
+ <origin xyz="0.0591385266744759 0.00278044811499105 -0.0552291926495377" rpy="0 0 0" />
1005
+ <mass value="0.138133633872797" />
1006
+ <inertia
1007
+ ixx="5.6812931750694E-05"
1008
+ ixy="3.18564570369191E-06"
1009
+ ixz="3.31187610383292E-06"
1010
+ iyy="5.56751697137782E-05"
1011
+ iyz="-2.13897740775086E-06"
1012
+ izz="6.42957251144152E-05" />
1013
+ </inertial>
1014
+ <visual>
1015
+ <origin xyz="0 0 0" rpy="0 0 0" />
1016
+ <geometry>
1017
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.dae" />
1018
+ </geometry>
1019
+ <!-- <material name="black">
1020
+
1021
+ </material> -->
1022
+ </visual>
1023
+ <collision>
1024
+ <origin xyz="0 0 0" rpy="0 0 0" />
1025
+ <geometry>
1026
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.STL" />
1027
+ </geometry>
1028
+ </collision>
1029
+ </link>
1030
+ <joint name="fr_joint4" type="revolute">
1031
+ <origin xyz="0.246 -0.00025 -0.06" rpy="0 0 0" />
1032
+ <parent link="fr_link3" />
1033
+ <child link="fr_link4" />
1034
+ <axis xyz="0 1 0" />
1035
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1036
+ </joint>
1037
+ <link
1038
+ name="fr_link5">
1039
+ <inertial>
1040
+ <origin xyz="0.00870303426445659 -2.87406901246252E-05 0.0817957433312705" rpy="0 0 0" />
1041
+ <mass value="0.126741777607625" />
1042
+ <inertia
1043
+ ixx="5.2870226427243E-05"
1044
+ ixy="-3.41758559092594E-08"
1045
+ ixz="1.05281937338646E-06"
1046
+ iyy="4.14245046680039E-05"
1047
+ iyz="-7.47381113966083E-08"
1048
+ izz="4.46265559731496E-05" />
1049
+ </inertial>
1050
+ <visual>
1051
+ <origin xyz="0 0 0" rpy="0 0 0" />
1052
+ <geometry>
1053
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.dae" />
1054
+ </geometry>
1055
+ <!-- <material name="black">
1056
+
1057
+ </material> -->
1058
+ </visual>
1059
+ <collision>
1060
+ <origin xyz="0 0 0" rpy="0 0 0" />
1061
+ <geometry>
1062
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.STL" />
1063
+ </geometry>
1064
+ </collision>
1065
+ </link>
1066
+ <joint name="fr_joint5" type="revolute">
1067
+ <origin xyz="0.06775 0.0015 -0.0855" rpy="0 0 -0.015928" />
1068
+ <parent link="fr_link4" />
1069
+ <child link="fr_link5" />
1070
+ <axis xyz="0 0 1" />
1071
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1072
+ </joint>
1073
+ <link name="fr_link6">
1074
+ <inertial>
1075
+ <origin xyz="0.038317562848284 -4.45000434657139E-05 0.00355875192843721" rpy="0 0 0" />
1076
+ <mass value="0.142880100739169" />
1077
+ <inertia
1078
+ ixx="9.84190386012445E-05"
1079
+ ixy="9.90777828593097E-08"
1080
+ ixz="2.38841662850396E-07"
1081
+ iyy="3.95328645641678E-05"
1082
+ iyz="2.8992956673539E-07"
1083
+ izz="8.4711562610471E-05" />
1084
+ </inertial>
1085
+ <visual>
1086
+ <origin xyz="0 0 0" rpy="0 0 0" />
1087
+ <geometry>
1088
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.dae" />
1089
+ </geometry>
1090
+ <!-- <material name="black">
1091
+ </material> -->
1092
+ </visual>
1093
+ <collision>
1094
+ <origin xyz="0 0 0" rpy="0 0 0" />
1095
+ <geometry>
1096
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.STL" />
1097
+ </geometry>
1098
+ </collision>
1099
+ </link>
1100
+ <joint name="fr_joint6" type="revolute">
1101
+ <origin xyz="0.03095 0 0.0855" rpy="-3.1416 0 0" />
1102
+ <parent link="fr_link5" />
1103
+ <child link="fr_link6" />
1104
+ <axis xyz="1 0 0" />
1105
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1106
+ </joint>
1107
+
1108
+
1109
+ <!-- 相机的链接 -->
1110
+ <link name="right_camera">
1111
+ <visual>
1112
+ <origin xyz="0 -0.032 0" rpy="1.57 0 1.57"/>
1113
+ <geometry>
1114
+ <mesh filename="package://aloha_maniskill_sim/meshes/d435.dae" /> <!-- 根据D435相机的实际尺寸调整 -->
1115
+ </geometry>
1116
+ <!-- <material name="black">
1117
+ <color rgba="0 0 0.1 1"/>
1118
+ </material> -->
1119
+ </visual>
1120
+ <collision>
1121
+ <origin xyz="0 -0.032 0" rpy="0 0 0"/>
1122
+ <geometry>
1123
+ <box size="0.025 0.090 0.025"/> <!-- 根据D435相机的实际尺寸调整 -->
1124
+ </geometry>
1125
+ </collision>
1126
+ <inertial>
1127
+ <mass value="0.1"/> <!-- 相机的估计质量 -->
1128
+ <origin xyz="0 0 0" rpy="0 0 0"/>
1129
+ <inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001"/> <!-- 估计的惯性张量 -->
1130
+ </inertial>
1131
+ </link>
1132
+
1133
+ <!-- 连接相机和末端执行器的关节 -->
1134
+ <joint name="right_camera_joint" type="fixed">
1135
+ <parent link="fr_link6"/>
1136
+ <child link="right_camera"/>
1137
+ <origin xyz="0.07 0.032 0.065" rpy="0 0.4 0"/> <!-- 根据相机的安装位置调整 -->
1138
+ </joint>
1139
+
1140
+ <link name="fr_link7">
1141
+ <inertial>
1142
+ <origin xyz="0.00626222055030923 -0.00713411663149576 -0.00289898514345116" rpy="0 0 0" />
1143
+ <mass value="0.0264779585598598" />
1144
+ <inertia
1145
+ ixx="8.79642526953154E-06"
1146
+ ixy="3.0244685599285E-06"
1147
+ ixz="-5.99353466596085E-07"
1148
+ iyy="1.48519274221679E-05"
1149
+ iyz="1.31550651321036E-07"
1150
+ izz="1.1114142640444E-05" />
1151
+ </inertial>
1152
+ <visual>
1153
+ <origin xyz="0 0 0" rpy="0 0 0" />
1154
+ <geometry>
1155
+ <mesh filename="package://aloha_maniskill_sim/meshes/link7.dae" />
1156
+ </geometry>
1157
+ <!-- <material name="black">
1158
+ </material> -->
1159
+ </visual>
1160
+ <collision>
1161
+ <origin xyz="0 0 0" rpy="0 0 0" />
1162
+ <geometry>
1163
+ <mesh filename="package://aloha_maniskill_sim/meshes/link7.STL" />
1164
+ </geometry>
1165
+ </collision>
1166
+ </link>
1167
+ <joint name="fr_joint7" type="prismatic">
1168
+ <origin xyz="0.08457 0.024493 -0.00010349" rpy="0 0 0" />
1169
+ <parent link="fr_link6" />
1170
+ <child link="fr_link7" />
1171
+ <axis xyz="0 1 0" />
1172
+ <limit lower="0" upper="0.04765" effort="100" velocity="1000" />
1173
+ </joint>
1174
+ <link name="fr_link8">
1175
+ <inertial>
1176
+ <origin xyz="0.00626222057480438 0.00713411644936678 0.00145300478837504" rpy="0 0 0" />
1177
+ <mass value="0.0264779581346586" />
1178
+ <inertia
1179
+ ixx="9.01311523396113E-06"
1180
+ ixy="-3.02446856817399E-06"
1181
+ ixz="1.52593574709739E-06"
1182
+ iyy="1.50686174477573E-05"
1183
+ iyz="5.73251417689975E-07"
1184
+ izz="1.11141426397578E-05" />
1185
+ </inertial>
1186
+ <visual>
1187
+ <origin xyz="0 0 0" rpy="0 0 0" />
1188
+ <geometry>
1189
+ <mesh filename="package://aloha_maniskill_sim/meshes/link8.dae" />
1190
+ </geometry>
1191
+ <!-- <material name="black">
1192
+ </material> -->
1193
+ </visual>
1194
+ <collision>
1195
+ <origin xyz="0 0 0" rpy="0 0 0" />
1196
+ <geometry>
1197
+ <mesh filename="package://aloha_maniskill_sim/meshes/link8.STL" />
1198
+ </geometry>
1199
+ </collision>
1200
+ </link>
1201
+ <joint name="fr_joint8" type="prismatic">
1202
+ <origin xyz="0.08457 -0.024496 -0.00010354" rpy="0 0 0" />
1203
+ <parent link="fr_link6" />
1204
+ <child link="fr_link8" />
1205
+ <axis xyz="0 -1 0" />
1206
+ <limit lower="0" upper="0.04765" effort="100" velocity="1000" />
1207
+ </joint>
1208
+ <!--***************************** left-rear ****************************** -->
1209
+ <link name="lr_base_link">
1210
+ <inertial>
1211
+ <origin xyz="-2.9972E-05 3.056E-05 0.027301" rpy="0 0 0" />
1212
+ <mass value="0.44038" />
1213
+ <inertia ixx="0.00017" ixy="0.00000" ixz="0.00000" iyy="0.00018" iyz="0.00000" izz="0.00016" />
1214
+ </inertial>
1215
+ <visual>
1216
+ <origin xyz="0 0 0" rpy="0 0 0" />
1217
+ <geometry>
1218
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.dae" />
1219
+ </geometry>
1220
+ <!-- <material name="black">
1221
+ <color rgba="0.75294 0.75294 0.75294 1" />
1222
+ </material> -->
1223
+ </visual>
1224
+ <collision>
1225
+ <origin xyz="0 0 0" rpy="0 0 0" />
1226
+ <geometry>
1227
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.STL" />
1228
+ </geometry>
1229
+ </collision>
1230
+ </link>
1231
+ <joint name="lr_base_joint" type="fixed">
1232
+ <origin xyz="-0.309 0.307 0.903" rpy="0.0 0.0 0.0" />
1233
+ <parent link="footprint" />
1234
+ <child link="lr_base_link" />
1235
+ <axis xyz="0.0 0.0 1.0" />
1236
+ </joint>
1237
+ <link name="lr_link1">
1238
+ <inertial>
1239
+ <origin xyz="0.00609525411893452 -0.00429681977500749 0.0179590247477389" rpy="0 0 0" />
1240
+ <mass value="0.0608351104988555" />
1241
+ <inertia ixx="0.00008" ixy="0.00000" ixz="0.00001" iyy="0.00003" iyz="0.00000" izz="0.00007" />
1242
+ </inertial>
1243
+ <visual>
1244
+ <origin xyz="0 0 0" rpy="0 0 0" />
1245
+ <geometry>
1246
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.dae" />
1247
+ </geometry>
1248
+ <!-- <material name="black">
1249
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1250
+ </material> -->
1251
+ </visual>
1252
+ <collision>
1253
+ <origin xyz="0 0 0" rpy="0 0 0" />
1254
+ <geometry>
1255
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.STL" />
1256
+ </geometry>
1257
+ </collision>
1258
+ </link>
1259
+ <joint name="lr_joint1" type="revolute">
1260
+ <origin xyz="0 0 0.0603" rpy="0 0 0" />
1261
+ <parent link="lr_base_link" />
1262
+ <child link="lr_link1" />
1263
+ <axis xyz="0 0 1" />
1264
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1265
+ </joint>
1266
+ <link name="lr_link2">
1267
+ <inertial>
1268
+ <origin xyz="-0.132382037190567 0.00220380675553821 0.000111790164679923" rpy="0 0 0" />
1269
+ <mass value="1.0733279014126" />
1270
+ <inertia ixx="0.00050" ixy="0.00000" ixz="-0.00004" iyy="0.01596" iyz="0.00000" izz="0.01602" />
1271
+ </inertial>
1272
+ <visual>
1273
+ <origin xyz="0 0 0" rpy="0 0 0" />
1274
+ <geometry>
1275
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.dae" />
1276
+ </geometry>
1277
+ <!-- <material name="black">
1278
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1279
+ </material> -->
1280
+ </visual>
1281
+ <collision>
1282
+ <origin xyz="0 0 0" rpy="0 0 0" />
1283
+ <geometry>
1284
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.STL" />
1285
+ </geometry>
1286
+ </collision>
1287
+ </link>
1288
+ <joint name="lr_joint2" type="revolute">
1289
+ <origin xyz="0.02 0 0.0402" rpy="0 0 0" />
1290
+ <parent link="lr_link1" />
1291
+ <child link="lr_link2" />
1292
+ <axis xyz="0 1 0" />
1293
+ <dynamics damping="0.0" friction="100.0"/>
1294
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1295
+ </joint>
1296
+ <link name="lr_link3">
1297
+ <inertial>
1298
+ <origin xyz="0.187203287369961 -0.000305676361444925 -0.0514832866415513" rpy="0 0 0" />
1299
+ <mass value="0.499404738025019" />
1300
+ <inertia ixx="0.00033" ixy="-0.00006" ixz="-0.00039" iyy="0.00387" iyz="0.00001" izz="0.00383" />
1301
+ </inertial>
1302
+ <visual>
1303
+ <origin xyz="0 0 0" rpy="0 0 0" />
1304
+ <geometry>
1305
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.dae" />
1306
+ </geometry>
1307
+ <!-- <material name="white">
1308
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1309
+ </material> -->
1310
+ </visual>
1311
+ <collision>
1312
+ <origin xyz="0 0 0" rpy="0 0 0" />
1313
+ <geometry>
1314
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.STL" />
1315
+ </geometry>
1316
+ </collision>
1317
+ </link>
1318
+ <joint name="lr_joint3" type="revolute">
1319
+ <origin xyz="-0.264 0 0" rpy="-3.1416 0 0" />
1320
+ <parent link="lr_link2" />
1321
+ <child link="lr_link3" />
1322
+ <axis xyz="0 1 0" />
1323
+ <dynamics damping="0.0" friction="100.0"/>
1324
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1325
+ </joint>
1326
+ <link name="lr_link4">
1327
+ <inertial>
1328
+ <origin xyz="0.0388884702662706 0.00295168681334743 -0.0353282735009622" rpy="0 0 0" />
1329
+ <mass value="0.0809712553169999" />
1330
+ <inertia ixx="0.00013" ixy="-0.00001" ixz="-0.00006" iyy="0.00016" iyz="0.00001" izz="0.00010" />
1331
+ </inertial>
1332
+ <visual>
1333
+ <origin xyz="0 0 0" rpy="0 0 0" />
1334
+ <geometry>
1335
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.dae" />
1336
+ </geometry>
1337
+ <!-- <material name="black">
1338
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1339
+ </material> -->
1340
+ </visual>
1341
+ <collision>
1342
+ <origin xyz="0 0 0" rpy="0 0 0" />
1343
+ <geometry>
1344
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.STL" />
1345
+ </geometry>
1346
+ </collision>
1347
+ </link>
1348
+ <joint name="lr_joint4" type="revolute">
1349
+ <origin xyz="0.245 0 -0.056" rpy="0 0 0" />
1350
+ <parent link="lr_link3" />
1351
+ <child link="lr_link4" />
1352
+ <axis xyz="0 1 0" />
1353
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1354
+ </joint>
1355
+ <link name="lr_link5">
1356
+ <inertial>
1357
+ <origin xyz="0.00289956909960302 3.15826689885766E-05 0.0526188859211408" rpy="0 0 0" />
1358
+ <mass value="0.602357399313257" />
1359
+ <inertia ixx="0.00072" ixy="0.00000" ixz="0.00005" iyy="0.00069" iyz="0.00000" izz="0.00021" />
1360
+ </inertial>
1361
+ <visual>
1362
+ <origin xyz="0 0 0" rpy="0 0 0" />
1363
+ <geometry>
1364
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.dae" />
1365
+ </geometry>
1366
+ <!-- <material name="black">
1367
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1368
+ </material> -->
1369
+ </visual>
1370
+ <collision>
1371
+ <origin xyz="0 0 0" rpy="0 0 0" />
1372
+ <geometry>
1373
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.STL" />
1374
+ </geometry>
1375
+ </collision>
1376
+ </link>
1377
+ <joint name="lr_joint5" type="revolute">
1378
+ <origin xyz="0.06575 -0.001 -0.0825" rpy="0 0 0" />
1379
+ <parent link="lr_link4" />
1380
+ <child link="lr_link5" />
1381
+ <axis xyz="0 0 1" />
1382
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1383
+ </joint>
1384
+ <link name="lr_link6">
1385
+ <inertial>
1386
+ <origin xyz="0.0471798400661976 0.000102970421835668 -0.000138510949393961" rpy="0 0 0" />
1387
+ <mass value="0.462244960775882" />
1388
+ <inertia ixx="0.00068" ixy="0.00000" ixz="0.00000" iyy="0.00036" iyz="-0.00001" izz="0.00091" />
1389
+ </inertial>
1390
+ <visual>
1391
+ <origin xyz="0 0 0" rpy="0 0 0" />
1392
+ <geometry>
1393
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.dae" />
1394
+ </geometry>
1395
+ <!-- <material name="black">
1396
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1397
+ </material> -->
1398
+ </visual>
1399
+ <collision>
1400
+ <origin xyz="0 0 0" rpy="0 0 0" />
1401
+ <geometry>
1402
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.STL" />
1403
+ </geometry>
1404
+ </collision>
1405
+ </link>
1406
+ <joint name="lr_joint6" type="revolute">
1407
+ <origin xyz="0.02845 0 0.0825" rpy="-3.1416 0 0" />
1408
+ <parent link="lr_link5" />
1409
+ <child link="lr_link6" />
1410
+ <axis xyz="1 0 0" />
1411
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1412
+ </joint>
1413
+ <link name="lr_link7">
1414
+ <inertial>
1415
+ <origin xyz="-0.000327642774520215 -0.00482005374028087 -0.00167540868720402" rpy="0 0 0" />
1416
+ <mass value="0.0484016660227936" />
1417
+ <inertia ixx="0.00001" ixy="0.00000" ixz="0.00000" iyy="0.00002" iyz="0.00000" izz="0.00002" />
1418
+ </inertial>
1419
+ <visual>
1420
+ <origin xyz="0 0 0" rpy="0 0 0" />
1421
+ <geometry>
1422
+ <mesh filename="package://aloha_maniskill_sim/meshes/back_link7.dae" />
1423
+ </geometry>
1424
+ <!-- <material name="black">
1425
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1426
+ </material> -->
1427
+ </visual>
1428
+ <collision>
1429
+ <origin xyz="0 0 0" rpy="0 0 0" />
1430
+ <geometry>
1431
+ <mesh filename="package://aloha_maniskill_sim/meshes/back_link7.STL" />
1432
+ </geometry>
1433
+ </collision>
1434
+ </link>
1435
+ <joint name="lr_joint7" type="fixed">
1436
+ <origin xyz="0 0 0" rpy="0 0 0" />
1437
+ <parent link="lr_link6" />
1438
+ <child link="lr_link7" />
1439
+ <axis xyz="0 0 1" />
1440
+ <limit lower="0" upper="0.4765" effort="100" velocity="1000" />
1441
+ </joint>
1442
+
1443
+
1444
+ <!--***************************** right-rear ****************************** -->
1445
+ <link name="rr_base_link">
1446
+ <inertial>
1447
+ <origin xyz="-2.9972E-05 3.056E-05 0.027301" rpy="0 0 0" />
1448
+ <mass value="0.44038" />
1449
+ <inertia ixx="0.00017" ixy="0.00000" ixz="0.00000" iyy="0.00018" iyz="0.00000" izz="0.00016" />
1450
+ </inertial>
1451
+ <visual>
1452
+ <origin xyz="0 0 0" rpy="0 0 0" />
1453
+ <geometry>
1454
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.dae" />
1455
+ </geometry>
1456
+ <!-- <material name="black">
1457
+ <color rgba="0.75294 0.75294 0.75294 1" />
1458
+ </material> -->
1459
+ </visual>
1460
+ <collision>
1461
+ <origin xyz="0 0 0" rpy="0 0 0" />
1462
+ <geometry>
1463
+ <mesh filename="package://aloha_maniskill_sim/meshes/base_arm.STL" />
1464
+ </geometry>
1465
+ </collision>
1466
+ </link>
1467
+ <joint name="rr_base_joint" type="fixed">
1468
+ <origin xyz="-0.309 -0.307 0.903" rpy="0.0 0.0 0.0" />
1469
+ <parent link="footprint" />
1470
+ <child link="rr_base_link" />
1471
+ <axis xyz="0.0 0.0 1.0" />
1472
+ </joint>
1473
+ <link name="rr_link1">
1474
+ <inertial>
1475
+ <origin xyz="0.00609525411893452 -0.00429681977500749 0.0179590247477389" rpy="0 0 0" />
1476
+ <mass value="0.0608351104988555" />
1477
+ <inertia ixx="0.00008" ixy="0.00000" ixz="0.00001" iyy="0.00003" iyz="0.00000" izz="0.00007" />
1478
+ </inertial>
1479
+ <visual>
1480
+ <origin xyz="0 0 0" rpy="0 0 0" />
1481
+ <geometry>
1482
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.dae" />
1483
+ </geometry>
1484
+ <!-- <material name="black">
1485
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1486
+ </material> -->
1487
+ </visual>
1488
+ <collision>
1489
+ <origin xyz="0 0 0" rpy="0 0 0" />
1490
+ <geometry>
1491
+ <mesh filename="package://aloha_maniskill_sim/meshes/link1.STL" />
1492
+ </geometry>
1493
+ </collision>
1494
+ </link>
1495
+ <joint name="rr_joint1" type="revolute">
1496
+ <origin xyz="0 0 0.0603" rpy="0 0 0" />
1497
+ <parent link="rr_base_link" />
1498
+ <child link="rr_link1" />
1499
+ <axis xyz="0 0 1" />
1500
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1501
+ </joint>
1502
+ <link name="rr_link2">
1503
+ <inertial>
1504
+ <origin xyz="-0.132382037190567 0.00220380675553821 0.000111790164679923" rpy="0 0 0" />
1505
+ <mass value="1.0733279014126" />
1506
+ <inertia ixx="0.00050" ixy="0.00000" ixz="-0.00004" iyy="0.01596" iyz="0.00000" izz="0.01602" />
1507
+ </inertial>
1508
+ <visual>
1509
+ <origin xyz="0 0 0" rpy="0 0 0" />
1510
+ <geometry>
1511
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.dae" />
1512
+ </geometry>
1513
+ <!-- <material name="black">
1514
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1515
+ </material> -->
1516
+ </visual>
1517
+ <collision>
1518
+ <origin xyz="0 0 0" rpy="0 0 0" />
1519
+ <geometry>
1520
+ <mesh filename="package://aloha_maniskill_sim/meshes/link2.STL" />
1521
+ </geometry>
1522
+ </collision>
1523
+ </link>
1524
+ <joint name="rr_joint2" type="revolute">
1525
+ <origin xyz="0.02 0 0.0402" rpy="0 0 0" />
1526
+ <parent link="rr_link1" />
1527
+ <child link="rr_link2" />
1528
+ <axis xyz="0 1 0" />
1529
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1530
+ </joint>
1531
+ <link name="rr_link3">
1532
+ <inertial>
1533
+ <origin xyz="0.187203287369961 -0.000305676361444925 -0.0514832866415513" rpy="0 0 0" />
1534
+ <mass value="0.499404738025019" />
1535
+ <inertia ixx="0.00033" ixy="-0.00006" ixz="-0.00039" iyy="0.00387" iyz="0.00001" izz="0.00383" />
1536
+ </inertial>
1537
+ <visual>
1538
+ <origin xyz="0 0 0" rpy="0 0 0" />
1539
+ <geometry>
1540
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.dae" />
1541
+ </geometry>
1542
+ <!-- <material name="white">
1543
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1544
+ </material> -->
1545
+ </visual>
1546
+ <collision>
1547
+ <origin xyz="0 0 0" rpy="0 0 0" />
1548
+ <geometry>
1549
+ <mesh filename="package://aloha_maniskill_sim/meshes/link3.STL" />
1550
+ </geometry>
1551
+ </collision>
1552
+ </link>
1553
+ <joint name="rr_joint3" type="revolute">
1554
+ <origin xyz="-0.264 0 0" rpy="-3.1416 0 0" />
1555
+ <parent link="rr_link2" />
1556
+ <child link="rr_link3" />
1557
+ <axis xyz="0 1 0" />
1558
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1559
+ </joint>
1560
+ <link name="rr_link4">
1561
+ <inertial>
1562
+ <origin xyz="0.0388884702662706 0.00295168681334743 -0.0353282735009622" rpy="0 0 0" />
1563
+ <mass value="0.0809712553169999" />
1564
+ <inertia ixx="0.00013" ixy="-0.00001" ixz="-0.00006" iyy="0.00016" iyz="0.00001" izz="0.00010" />
1565
+ </inertial>
1566
+ <visual>
1567
+ <origin xyz="0 0 0" rpy="0 0 0" />
1568
+ <geometry>
1569
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.dae" />
1570
+ </geometry>
1571
+ <!-- <material name="black">
1572
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1573
+ </material> -->
1574
+ </visual>
1575
+ <collision>
1576
+ <origin xyz="0 0 0" rpy="0 0 0" />
1577
+ <geometry>
1578
+ <mesh filename="package://aloha_maniskill_sim/meshes/link4.STL" />
1579
+ </geometry>
1580
+ </collision>
1581
+ </link>
1582
+ <joint name="rr_joint4" type="revolute">
1583
+ <origin xyz="0.245 0 -0.056" rpy="0 0 0" />
1584
+ <parent link="rr_link3" />
1585
+ <child link="rr_link4" />
1586
+ <axis xyz="0 1 0" />
1587
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1588
+ </joint>
1589
+ <link name="rr_link5">
1590
+ <inertial>
1591
+ <origin xyz="0.00289956909960302 3.15826689885766E-05 0.0526188859211408" rpy="0 0 0" />
1592
+ <mass value="0.602357399313257" />
1593
+ <inertia ixx="0.00072" ixy="0.00000" ixz="0.00005" iyy="0.00069" iyz="0.00000" izz="0.00021" />
1594
+ </inertial>
1595
+ <visual>
1596
+ <origin xyz="0 0 0" rpy="0 0 0" />
1597
+ <geometry>
1598
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.dae" />
1599
+ </geometry>
1600
+ <!-- <material name="black">
1601
+ <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
1602
+ </material> -->
1603
+ </visual>
1604
+ <collision>
1605
+ <origin xyz="0 0 0" rpy="0 0 0" />
1606
+ <geometry>
1607
+ <mesh filename="package://aloha_maniskill_sim/meshes/link5.STL" />
1608
+ </geometry>
1609
+ </collision>
1610
+ </link>
1611
+ <joint name="rr_joint5" type="revolute">
1612
+ <origin xyz="0.06575 -0.001 -0.0825" rpy="0 0 0" />
1613
+ <parent link="rr_link4" />
1614
+ <child link="rr_link5" />
1615
+ <axis xyz="0 0 1" />
1616
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1617
+ </joint>
1618
+ <link name="rr_link6">
1619
+ <inertial>
1620
+ <origin xyz="0.0471798400661976 0.000102970421835668 -0.000138510949393961" rpy="0 0 0" />
1621
+ <mass value="0.462244960775882" />
1622
+ <inertia ixx="0.00068" ixy="0.00000" ixz="0.00000" iyy="0.00036" iyz="-0.00001" izz="0.00091" />
1623
+ </inertial>
1624
+ <visual>
1625
+ <origin xyz="0 0 0" rpy="0 0 0" />
1626
+ <geometry>
1627
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.dae" />
1628
+ </geometry>
1629
+ <!-- <material name="black">
1630
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1631
+ </material> -->
1632
+ </visual>
1633
+ <collision>
1634
+ <origin xyz="0 0 0" rpy="0 0 0" />
1635
+ <geometry>
1636
+ <mesh filename="package://aloha_maniskill_sim/meshes/link6.STL" />
1637
+ </geometry>
1638
+ </collision>
1639
+ </link>
1640
+ <joint name="rr_joint6" type="revolute">
1641
+ <origin xyz="0.02845 0 0.0825" rpy="-3.1416 0 0" />
1642
+ <parent link="rr_link5" />
1643
+ <child link="rr_link6" />
1644
+ <axis xyz="1 0 0" />
1645
+ <limit lower="-10" upper="10" effort="100" velocity="1000" />
1646
+ </joint>
1647
+ <link name="rr_link7">
1648
+ <inertial>
1649
+ <origin xyz="-0.000327642774520215 -0.00482005374028087 -0.00167540868720402" rpy="0 0 0" />
1650
+ <mass value="0.0484016660227936" />
1651
+ <inertia ixx="0.00001" ixy="0.00000" ixz="0.00000" iyy="0.00002" iyz="0.00000" izz="0.00002" />
1652
+ </inertial>
1653
+ <visual>
1654
+ <origin xyz="0 0 0" rpy="0 0 0" />
1655
+ <geometry>
1656
+ <mesh filename="package://aloha_maniskill_sim/meshes/back_link7.dae" />
1657
+ </geometry>
1658
+ <!-- <material name="black">
1659
+ <color rgba="0.898039215686275 0.917647058823529 0.929411764705882 1" />
1660
+ </material> -->
1661
+ </visual>
1662
+ <collision>
1663
+ <origin xyz="0 0 0" rpy="0 0 0" />
1664
+ <geometry>
1665
+ <mesh filename="package://aloha_maniskill_sim/meshes/back_link7.STL" />
1666
+ </geometry>
1667
+ </collision>
1668
+ </link>
1669
+ <joint name="rr_joint7" type="fixed">
1670
+ <origin xyz="0 0 0" rpy="0 0 0" />
1671
+ <parent link="rr_link6" />
1672
+ <child link="rr_link7" />
1673
+ <axis xyz="0 0 1" />
1674
+ <limit lower="0" upper="0.4765" effort="100" velocity="1000" />
1675
+ </joint>
1676
+
1677
+
1678
+
1679
+ </robot>
1680
+
urdf/piper_description_dualarm_new.urdf ADDED
@@ -0,0 +1,535 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <robot name="dual_arm_piper">
3
+
4
+ <!-- ========================== WORLD LINK ========================== -->
5
+ <link name="base_link"/>
6
+
7
+ <!-- ========================== LEFT ARM ========================== -->
8
+ <!-- Left arm base -->
9
+ <link name="left_base_link">
10
+ <inertial>
11
+ <origin xyz="-0.00473641164191482 2.56829134630247E-05 0.041451518036016" rpy="0 0 0"/>
12
+ <mass value="1.02"/>
13
+ <inertia ixx="0.00267433" ixy="-0.00000073" ixz="-0.00017389" iyy="0.00282612" iyz="0.0000004" izz="0.00089624"/>
14
+ </inertial>
15
+ <visual>
16
+ <geometry>
17
+ <mesh filename="package://piper_description/meshes/base_link.STL"/>
18
+ </geometry>
19
+ <material name="silver">
20
+ <color rgba="0.792 0.819 0.933 1"/>
21
+ </material>
22
+ </visual>
23
+ <collision>
24
+ <geometry>
25
+ <mesh filename="package://piper_description/meshes/base_link.STL"/>
26
+ </geometry>
27
+ </collision>
28
+ </link>
29
+
30
+ <joint name="base_link_to_left_base" type="fixed">
31
+ <origin xyz="0 0 0" rpy="0 0 0"/>
32
+ <parent link="base_link"/>
33
+ <child link="left_base_link"/>
34
+ </joint>
35
+
36
+ <!-- Left arm joint chain -->
37
+ <link name="left_link1">
38
+ <inertial>
39
+ <origin xyz="0.000121504734057468 0.000104632162460536 -0.00438597309559853" rpy="0 0 0"/>
40
+ <mass value="0.71"/>
41
+ <inertia ixx="0.00048916" ixy="-0.00000036" ixz="-0.00000224" iyy="0.00040472" iyz="-0.00000242" izz="0.00043982"/>
42
+ </inertial>
43
+ <visual>
44
+ <geometry>
45
+ <mesh filename="package://piper_description/meshes/link1.STL"/>
46
+ </geometry>
47
+ </visual>
48
+ <collision>
49
+ <geometry>
50
+ <mesh filename="package://piper_description/meshes/link1.STL"/>
51
+ </geometry>
52
+ </collision>
53
+ </link>
54
+
55
+ <joint name="left_joint1" type="revolute">
56
+ <origin xyz="0 0 0.123" rpy="0 0 0"/>
57
+ <parent link="left_base_link"/>
58
+ <child link="left_link1"/>
59
+ <axis xyz="0 0 1"/>
60
+ <limit lower="-2.618" upper="2.168" effort="100" velocity="5"/>
61
+ </joint>
62
+
63
+ <link name="left_link2">
64
+ <inertial>
65
+ <origin xyz="0.198666145229743 -0.010926924140076 0.00142121714502687" rpy="0 0 0"/>
66
+ <mass value="1.17"/>
67
+ <inertia ixx="0.00116918" ixy="-0.00180037" ixz="0.00025146" iyy="0.06785384" iyz="-0.00000455" izz="0.06774489"/>
68
+ </inertial>
69
+ <visual>
70
+ <geometry>
71
+ <mesh filename="package://piper_description/meshes/link2.STL"/>
72
+ </geometry>
73
+ </visual>
74
+ <collision>
75
+ <geometry>
76
+ <mesh filename="package://piper_description/meshes/link2.STL"/>
77
+ </geometry>
78
+ </collision>
79
+ </link>
80
+
81
+ <joint name="left_joint2" type="revolute">
82
+ <origin xyz="0 0 0" rpy="1.5708 -0.1359 -3.1416"/>
83
+ <parent link="left_link1"/>
84
+ <child link="left_link2"/>
85
+ <axis xyz="0 0 1"/>
86
+ <limit lower="0" upper="3.14" effort="100" velocity="5"/>
87
+ </joint>
88
+
89
+ <link name="left_link3">
90
+ <inertial>
91
+ <origin xyz="-0.0202737662122021 -0.133914995944595 -0.000458682652737356" rpy="0 0 0"/>
92
+ <mass value="0.5"/>
93
+ <inertia ixx="0.01361711" ixy="0.00165794" ixz="-0.00000048" iyy="0.00045024" iyz="-0.00000045" izz="0.01380322"/>
94
+ </inertial>
95
+ <visual>
96
+ <geometry>
97
+ <mesh filename="package://piper_description/meshes/link3.STL"/>
98
+ </geometry>
99
+ </visual>
100
+ <collision>
101
+ <geometry>
102
+ <mesh filename="package://piper_description/meshes/link3.STL"/>
103
+ </geometry>
104
+ </collision>
105
+ </link>
106
+
107
+ <joint name="left_joint3" type="revolute">
108
+ <origin xyz="0.28503 0 0" rpy="0 0 -1.7939"/>
109
+ <parent link="left_link2"/>
110
+ <child link="left_link3"/>
111
+ <axis xyz="0 0 1"/>
112
+ <limit lower="-2.967" upper="0" effort="100" velocity="5"/>
113
+ </joint>
114
+
115
+ <link name="left_link4">
116
+ <inertial>
117
+ <origin xyz="-9.66635791618542E-05 0.000876064475651083 -0.00496880904640868" rpy="0 0 0"/>
118
+ <mass value="0.38"/>
119
+ <inertia ixx="0.00018501" ixy="0.00000054" ixz="0.00000120" iyy="0.00018965" iyz="-0.00000841" izz="0.00015484"/>
120
+ </inertial>
121
+ <visual>
122
+ <geometry>
123
+ <mesh filename="package://piper_description/meshes/link4.STL"/>
124
+ </geometry>
125
+ </visual>
126
+ <collision>
127
+ <geometry>
128
+ <mesh filename="package://piper_description/meshes/link4.STL"/>
129
+ </geometry>
130
+ </collision>
131
+ </link>
132
+
133
+ <joint name="left_joint4" type="revolute">
134
+ <origin xyz="-0.021984 -0.25075 0" rpy="1.5708 0 0"/>
135
+ <parent link="left_link3"/>
136
+ <child link="left_link4"/>
137
+ <axis xyz="0 0 1"/>
138
+ <limit lower="-1.745" upper="1.745" effort="100" velocity="5"/>
139
+ </joint>
140
+
141
+ <link name="left_link5">
142
+ <inertial>
143
+ <origin xyz="-4.10554118924211E-05 -0.0566486692356075 -0.0037205791677906" rpy="0 0 0"/>
144
+ <mass value="0.383"/>
145
+ <inertia ixx="0.00166169" ixy="0.00000006" ixz="-0.00000007" iyy="0.00018510" iyz="0.00001026" izz="0.00164321"/>
146
+ </inertial>
147
+ <visual>
148
+ <geometry>
149
+ <mesh filename="package://piper_description/meshes/link5.STL"/>
150
+ </geometry>
151
+ </visual>
152
+ <collision>
153
+ <geometry>
154
+ <mesh filename="package://piper_description/meshes/link5.STL"/>
155
+ </geometry>
156
+ </collision>
157
+ </link>
158
+
159
+ <joint name="left_joint5" type="revolute">
160
+ <origin xyz="0 0 0" rpy="-1.5708 0 0"/>
161
+ <parent link="left_link4"/>
162
+ <child link="left_link5"/>
163
+ <axis xyz="0 0 1"/>
164
+ <limit lower="-1.22" upper="1.22" effort="100" velocity="5"/>
165
+ </joint>
166
+
167
+ <link name="left_link6">
168
+ <inertial>
169
+ <origin xyz="-8.82590762930069E-05 9.0598378529832E-06 -0.002" rpy="0 0 0"/>
170
+ <mass value="0.00699089613564366"/>
171
+ <inertia ixx="5.73015540542155E-07" ixy="-1.98305403089247E-22" ixz="-7.2791893904596E-23" iyy="5.73015540542155E-07" iyz="-3.4146026640245E-24" izz="1.06738869138926E-06"/>
172
+ </inertial>
173
+ <visual>
174
+ <geometry>
175
+ <mesh filename="package://piper_description/meshes/link6.STL"/>
176
+ </geometry>
177
+ <material name="white">
178
+ <color rgba="0.898 0.917 0.929 1"/>
179
+ </material>
180
+ </visual>
181
+ <collision>
182
+ <geometry>
183
+ <mesh filename="package://piper_description/meshes/link6.STL"/>
184
+ </geometry>
185
+ </collision>
186
+ </link>
187
+
188
+ <joint name="left_joint6" type="revolute">
189
+ <origin xyz="8.8259E-05 -0.091 0" rpy="1.5708 0 0"/>
190
+ <parent link="left_link5"/>
191
+ <child link="left_link6"/>
192
+ <axis xyz="0 0 1"/>
193
+ <limit lower="-2.0944" upper="2.0944" effort="100" velocity="3"/>
194
+ </joint>
195
+
196
+ <link name="left_gripper_base">
197
+ <inertial>
198
+ <origin xyz="-0.000183807162235591 8.05033155577911E-05 0.0321436689908876" rpy="0 0 0"/>
199
+ <mass value="0.45"/>
200
+ <inertia ixx="0.00092934" ixy="0.00000034" ixz="-0.00000738" iyy="0.00071447" iyz="0.00000005" izz="0.00039442"/>
201
+ </inertial>
202
+ <visual>
203
+ <geometry>
204
+ <mesh filename="package://piper_description/meshes/gripper_base.STL"/>
205
+ </geometry>
206
+ </visual>
207
+ <collision>
208
+ <geometry>
209
+ <mesh filename="package://piper_description/meshes/gripper_base.STL"/>
210
+ </geometry>
211
+ </collision>
212
+ </link>
213
+
214
+ <joint name="left_joint6_to_gripper" type="fixed">
215
+ <origin xyz="0 0 0" rpy="0 0 0"/>
216
+ <parent link="left_link6"/>
217
+ <child link="left_gripper_base"/>
218
+ </joint>
219
+
220
+ <link name="left_link7">
221
+ <inertial>
222
+ <origin xyz="0.00065123185041968 -0.0491929869131989 0.00972258769184025" rpy="0 0 0"/>
223
+ <mass value="0.025"/>
224
+ <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747"/>
225
+ </inertial>
226
+ <visual>
227
+ <geometry>
228
+ <mesh filename="package://piper_description/meshes/link7.STL"/>
229
+ </geometry>
230
+ </visual>
231
+ <collision>
232
+ <geometry>
233
+ <mesh filename="package://piper_description/meshes/link7.STL"/>
234
+ </geometry>
235
+ </collision>
236
+ </link>
237
+
238
+ <joint name="left_joint7" type="prismatic">
239
+ <origin xyz="0 0 0.1358" rpy="1.5708 0 0"/>
240
+ <parent link="left_gripper_base"/>
241
+ <child link="left_link7"/>
242
+ <axis xyz="0 0 1"/>
243
+ <limit lower="0" upper="0.035" effort="10" velocity="1"/>
244
+ </joint>
245
+
246
+ <link name="left_link8">
247
+ <inertial>
248
+ <origin xyz="0.000651231850419722 -0.0491929869131991 0.00972258769184024" rpy="0 0 0"/>
249
+ <mass value="0.025"/>
250
+ <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747"/>
251
+ </inertial>
252
+ <visual>
253
+ <geometry>
254
+ <mesh filename="package://piper_description/meshes/link8.STL"/>
255
+ </geometry>
256
+ </visual>
257
+ <collision>
258
+ <geometry>
259
+ <mesh filename="package://piper_description/meshes/link8.STL"/>
260
+ </geometry>
261
+ </collision>
262
+ </link>
263
+
264
+ <joint name="left_joint8" type="prismatic">
265
+ <origin xyz="0 0 0.1358" rpy="1.5708 0 -3.1416"/>
266
+ <parent link="left_gripper_base"/>
267
+ <child link="left_link8"/>
268
+ <axis xyz="0 0 -1"/>
269
+ <limit lower="-0.035" upper="0" effort="10" velocity="1"/>
270
+ </joint>
271
+
272
+ <!-- ========================== RIGHT ARM ========================== -->
273
+ <!-- Mirror copy all left arm structures for the right arm, only modify the name prefix and base position -->
274
+ <link name="right_base_link">
275
+ <inertial>
276
+ <origin xyz="-0.00473641164191482 2.56829134630247E-05 0.041451518036016" rpy="0 0 0"/>
277
+ <mass value="1.02"/>
278
+ <inertia ixx="0.00267433" ixy="-0.00000073" ixz="-0.00017389" iyy="0.00282612" iyz="0.0000004" izz="0.00089624"/>
279
+ </inertial>
280
+ <visual>
281
+ <geometry>
282
+ <mesh filename="package://piper_description/meshes/base_link.STL"/>
283
+ </geometry>
284
+ <material name="silver"/>
285
+ </visual>
286
+ <collision>
287
+ <geometry>
288
+ <mesh filename="package://piper_description/meshes/base_link.STL"/>
289
+ </geometry>
290
+ </collision>
291
+ </link>
292
+
293
+ <joint name="base_link_to_right_base" type="fixed">
294
+ <origin xyz="0 -0.6 0" rpy="0 0 0"/>
295
+ <parent link="base_link"/>
296
+ <child link="right_base_link"/>
297
+ </joint>
298
+
299
+ <!-- Right arm joint chain -->
300
+ <link name="right_link1">
301
+ <inertial>
302
+ <origin xyz="0.000121504734057468 0.000104632162460536 -0.00438597309559853" rpy="0 0 0"/>
303
+ <mass value="0.71"/>
304
+ <inertia ixx="0.00048916" ixy="-0.00000036" ixz="-0.00000224" iyy="0.00040472" iyz="-0.00000242" izz="0.00043982"/>
305
+ </inertial>
306
+ <visual>
307
+ <geometry>
308
+ <mesh filename="package://piper_description/meshes/link1.STL"/>
309
+ </geometry>
310
+ </visual>
311
+ <collision>
312
+ <geometry>
313
+ <mesh filename="package://piper_description/meshes/link1.STL"/>
314
+ </geometry>
315
+ </collision>
316
+ </link>
317
+
318
+ <joint name="right_joint1" type="revolute">
319
+ <origin xyz="0 0 0.123" rpy="0 0 0"/>
320
+ <parent link="right_base_link"/>
321
+ <child link="right_link1"/>
322
+ <axis xyz="0 0 1"/>
323
+ <limit lower="-2.618" upper="2.168" effort="100" velocity="5"/>
324
+ </joint>
325
+
326
+
327
+ <link name="right_link2">
328
+ <inertial>
329
+ <origin xyz="0.198666145229743 -0.010926924140076 0.00142121714502687" rpy="0 0 0"/>
330
+ <mass value="1.17"/>
331
+ <inertia ixx="0.00116918" ixy="-0.00180037" ixz="0.00025146" iyy="0.06785384" iyz="-0.00000455" izz="0.06774489"/>
332
+ </inertial>
333
+ <visual>
334
+ <geometry>
335
+ <mesh filename="package://piper_description/meshes/link2.STL"/>
336
+ </geometry>
337
+ </visual>
338
+ <collision>
339
+ <geometry>
340
+ <mesh filename="package://piper_description/meshes/link2.STL"/>
341
+ </geometry>
342
+ </collision>
343
+ </link>
344
+
345
+ <joint name="right_joint2" type="revolute">
346
+ <origin xyz="0 0 0" rpy="1.5708 -0.1359 -3.1416"/>
347
+ <parent link="right_link1"/>
348
+ <child link="right_link2"/>
349
+ <axis xyz="0 0 1"/>
350
+ <limit lower="0" upper="3.14" effort="100" velocity="5"/>
351
+ </joint>
352
+
353
+ <link name="right_link3">
354
+ <inertial>
355
+ <origin xyz="-0.0202737662122021 -0.133914995944595 -0.000458682652737356" rpy="0 0 0"/>
356
+ <mass value="0.5"/>
357
+ <inertia ixx="0.01361711" ixy="0.00165794" ixz="-0.00000048" iyy="0.00045024" iyz="-0.00000045" izz="0.01380322"/>
358
+ </inertial>
359
+ <visual>
360
+ <geometry>
361
+ <mesh filename="package://piper_description/meshes/link3.STL"/>
362
+ </geometry>
363
+ </visual>
364
+ <collision>
365
+ <geometry>
366
+ <mesh filename="package://piper_description/meshes/link3.STL"/>
367
+ </geometry>
368
+ </collision>
369
+ </link>
370
+
371
+ <joint name="right_joint3" type="revolute">
372
+ <origin xyz="0.28503 0 0" rpy="0 0 -1.7939"/>
373
+ <parent link="right_link2"/>
374
+ <child link="right_link3"/>
375
+ <axis xyz="0 0 1"/>
376
+ <limit lower="-2.967" upper="0" effort="100" velocity="5"/>
377
+ </joint>
378
+
379
+ <link name="right_link4">
380
+ <inertial>
381
+ <origin xyz="-9.66635791618542E-05 0.000876064475651083 -0.00496880904640868" rpy="0 0 0"/>
382
+ <mass value="0.38"/>
383
+ <inertia ixx="0.00018501" ixy="0.00000054" ixz="0.00000120" iyy="0.00018965" iyz="-0.00000841" izz="0.00015484"/>
384
+ </inertial>
385
+ <visual>
386
+ <geometry>
387
+ <mesh filename="package://piper_description/meshes/link4.STL"/>
388
+ </geometry>
389
+ </visual>
390
+ <collision>
391
+ <geometry>
392
+ <mesh filename="package://piper_description/meshes/link4.STL"/>
393
+ </geometry>
394
+ </collision>
395
+ </link>
396
+
397
+ <joint name="right_joint4" type="revolute">
398
+ <origin xyz="-0.021984 -0.25075 0" rpy="1.5708 0 0"/>
399
+ <parent link="right_link3"/>
400
+ <child link="right_link4"/>
401
+ <axis xyz="0 0 1"/>
402
+ <limit lower="-1.745" upper="1.745" effort="100" velocity="5"/>
403
+ </joint>
404
+
405
+ <link name="right_link5">
406
+ <inertial>
407
+ <origin xyz="-4.10554118924211E-05 -0.0566486692356075 -0.0037205791677906" rpy="0 0 0"/>
408
+ <mass value="0.383"/>
409
+ <inertia ixx="0.00166169" ixy="0.00000006" ixz="-0.00000007" iyy="0.00018510" iyz="0.00001026" izz="0.00164321"/>
410
+ </inertial>
411
+ <visual>
412
+ <geometry>
413
+ <mesh filename="package://piper_description/meshes/link5.STL"/>
414
+ </geometry>
415
+ </visual>
416
+ <collision>
417
+ <geometry>
418
+ <mesh filename="package://piper_description/meshes/link5.STL"/>
419
+ </geometry>
420
+ </collision>
421
+ </link>
422
+
423
+ <joint name="right_joint5" type="revolute">
424
+ <origin xyz="0 0 0" rpy="-1.5708 0 0"/>
425
+ <parent link="right_link4"/>
426
+ <child link="right_link5"/>
427
+ <axis xyz="0 0 1"/>
428
+ <limit lower="-1.22" upper="1.22" effort="100" velocity="5"/>
429
+ </joint>
430
+
431
+ <link name="right_link6">
432
+ <inertial>
433
+ <origin xyz="-8.82590762930069E-05 9.0598378529832E-06 -0.002" rpy="0 0 0"/>
434
+ <mass value="0.00699089613564366"/>
435
+ <inertia ixx="5.73015540542155E-07" ixy="-1.98305403089247E-22" ixz="-7.2791893904596E-23" iyy="5.73015540542155E-07" iyz="-3.4146026640245E-24" izz="1.06738869138926E-06"/>
436
+ </inertial>
437
+ <visual>
438
+ <geometry>
439
+ <mesh filename="package://piper_description/meshes/link6.STL"/>
440
+ </geometry>
441
+ <material name="white">
442
+ <color rgba="0.898 0.917 0.929 1"/>
443
+ </material>
444
+ </visual>
445
+ <collision>
446
+ <geometry>
447
+ <mesh filename="package://piper_description/meshes/link6.STL"/>
448
+ </geometry>
449
+ </collision>
450
+ </link>
451
+
452
+ <joint name="right_joint6" type="revolute">
453
+ <origin xyz="8.8259E-05 -0.091 0" rpy="1.5708 0 0"/>
454
+ <parent link="right_link5"/>
455
+ <child link="right_link6"/>
456
+ <axis xyz="0 0 1"/>
457
+ <limit lower="-2.0944" upper="2.0944" effort="100" velocity="3"/>
458
+ </joint>
459
+
460
+ <link name="right_gripper_base">
461
+ <inertial>
462
+ <origin xyz="-0.000183807162235591 8.05033155577911E-05 0.0321436689908876" rpy="0 0 0"/>
463
+ <mass value="0.45"/>
464
+ <inertia ixx="0.00092934" ixy="0.00000034" ixz="-0.00000738" iyy="0.00071447" iyz="0.00000005" izz="0.00039442"/>
465
+ </inertial>
466
+ <visual>
467
+ <geometry>
468
+ <mesh filename="package://piper_description/meshes/gripper_base.STL"/>
469
+ </geometry>
470
+ </visual>
471
+ <collision>
472
+ <geometry>
473
+ <mesh filename="package://piper_description/meshes/gripper_base.STL"/>
474
+ </geometry>
475
+ </collision>
476
+ </link>
477
+
478
+ <joint name="right_joint6_to_gripper" type="fixed">
479
+ <origin xyz="0 0 0" rpy="0 0 0"/>
480
+ <parent link="right_link6"/>
481
+ <child link="right_gripper_base"/>
482
+ </joint>
483
+
484
+ <link name="right_link7">
485
+ <inertial>
486
+ <origin xyz="0.00065123185041968 -0.0491929869131989 0.00972258769184025" rpy="0 0 0"/>
487
+ <mass value="0.025"/>
488
+ <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747"/>
489
+ </inertial>
490
+ <visual>
491
+ <geometry>
492
+ <mesh filename="package://piper_description/meshes/link7.STL"/>
493
+ </geometry>
494
+ </visual>
495
+ <collision>
496
+ <geometry>
497
+ <mesh filename="package://piper_description/meshes/link7.STL"/>
498
+ </geometry>
499
+ </collision>
500
+ </link>
501
+
502
+ <joint name="right_joint7" type="prismatic">
503
+ <origin xyz="0 0 0.1358" rpy="1.5708 0 0"/>
504
+ <parent link="right_gripper_base"/>
505
+ <child link="right_link7"/>
506
+ <axis xyz="0 0 1"/>
507
+ <limit lower="0" upper="0.035" effort="10" velocity="1"/>
508
+ </joint>
509
+
510
+ <link name="right_link8">
511
+ <inertial>
512
+ <origin xyz="0.000651231850419722 -0.0491929869131991 0.00972258769184024" rpy="0 0 0"/>
513
+ <mass value="0.025"/>
514
+ <inertia ixx="0.00007371" ixy="-0.00000113" ixz="0.00000021" iyy="0.00000781" iyz="-0.00001372" izz="0.0000747"/>
515
+ </inertial>
516
+ <visual>
517
+ <geometry>
518
+ <mesh filename="package://piper_description/meshes/link8.STL"/>
519
+ </geometry>
520
+ </visual>
521
+ <collision>
522
+ <geometry>
523
+ <mesh filename="package://piper_description/meshes/link8.STL"/>
524
+ </geometry>
525
+ </collision>
526
+ </link>
527
+
528
+ <joint name="right_joint8" type="prismatic">
529
+ <origin xyz="0 0 0.1358" rpy="1.5708 0 -3.1416"/>
530
+ <parent link="right_gripper_base"/>
531
+ <child link="right_link8"/>
532
+ <axis xyz="0 0 -1"/>
533
+ <limit lower="-0.035" upper="0" effort="10" velocity="1"/>
534
+ </joint>
535
+ </robot>
urdf/robotwin2_dual_arm_ur5_wsg.urdf ADDED
@@ -0,0 +1,926 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" ?>
2
+ <!-- =================================================================================== -->
3
+ <!-- | This document was autogenerated by xacro from ur5_robotiq85_gripper.urdf.xacro | -->
4
+ <!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
5
+ <!-- =================================================================================== -->
6
+ <robot name="ur5">
7
+ <gazebo>
8
+ <plugin filename="libgazebo_ros_control.so" name="ros_control">
9
+ <!--robotNamespace>/</robotNamespace-->
10
+ <!--robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType-->
11
+ </plugin>
12
+ <!--
13
+ <plugin name="gazebo_ros_power_monitor_controller" filename="libgazebo_ros_power_monitor.so">
14
+ <alwaysOn>true</alwaysOn>
15
+ <updateRate>1.0</updateRate>
16
+ <timeout>5</timeout>
17
+ <powerStateTopic>power_state</powerStateTopic>
18
+ <powerStateRate>10.0</powerStateRate>
19
+ <fullChargeCapacity>87.78</fullChargeCapacity>
20
+ <dischargeRate>-474</dischargeRate>
21
+ <chargeRate>525</chargeRate>
22
+ <dischargeVoltage>15.52</dischargeVoltage>
23
+ <chargeVoltage>16.41</chargeVoltage>
24
+ </plugin>
25
+ -->
26
+ </gazebo>
27
+ <!-- measured from model -->
28
+ <!--property name="shoulder_height" value="0.089159" /-->
29
+ <!--property name="shoulder_offset" value="0.13585" /-->
30
+ <!-- shoulder_offset - elbow_offset + wrist_1_length = 0.10915 -->
31
+ <!--property name="upper_arm_length" value="0.42500" /-->
32
+ <!--property name="elbow_offset" value="0.1197" /-->
33
+ <!-- CAD measured -->
34
+ <!--property name="forearm_length" value="0.39225" /-->
35
+ <!--property name="wrist_1_length" value="0.093" /-->
36
+ <!-- CAD measured -->
37
+ <!--property name="wrist_2_length" value="0.09465" /-->
38
+ <!-- In CAD this distance is 0.930, but in the spec it is 0.09465 -->
39
+ <!--property name="wrist_3_length" value="0.0823" /-->
40
+ <!-- manually measured -->
41
+ <link name="left_base_link">
42
+ <visual>
43
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
44
+ <geometry>
45
+ <mesh filename="meshes/ur5/visual/base.glb"/>
46
+ </geometry>
47
+ </visual>
48
+ <collision>
49
+ <geometry>
50
+ <mesh filename="meshes/ur5/collision/base.stl"/>
51
+ </geometry>
52
+ </collision>
53
+ <inertial>
54
+ <mass value="4.0"/>
55
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
56
+ <inertia ixx="0.00443333156" ixy="0.0" ixz="0.0" iyy="0.00443333156" iyz="0.0" izz="0.0072"/>
57
+ </inertial>
58
+ </link>
59
+ <link name="right_base_link">
60
+ <visual>
61
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
62
+ <geometry>
63
+ <mesh filename="meshes/ur5/visual/base.glb"/>
64
+ </geometry>
65
+ </visual>
66
+ <collision>
67
+ <geometry>
68
+ <mesh filename="meshes/ur5/collision/base.stl"/>
69
+ </geometry>
70
+ </collision>
71
+ <inertial>
72
+ <mass value="4.0"/>
73
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
74
+ <inertia ixx="0.00443333156" ixy="0.0" ixz="0.0" iyy="0.00443333156" iyz="0.0" izz="0.0072"/>
75
+ </inertial>
76
+ </link>
77
+
78
+ <link name="base_link"/>
79
+ <joint name="base_link_to_left_link0" type="fixed">
80
+ <origin xyz="-0.4 0 0" rpy="0 0 0"/>
81
+ <parent link="base_link"/>
82
+ <child link="left_base_link"/>
83
+ </joint>
84
+ <joint name="base_link_to_right_link0" type="fixed">
85
+ <origin xyz="0.4 0 0.1" rpy="0 0 0"/>
86
+ <parent link="base_link"/>
87
+ <child link="right_base_link"/>
88
+ </joint>
89
+
90
+
91
+ <joint name="left_shoulder_pan_joint" type="revolute">
92
+ <parent link="left_base_link"/>
93
+ <child link="left_shoulder_link"/>
94
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.089159"/>
95
+ <axis xyz="0 0 1"/>
96
+ <limit effort="150.0" lower="-3.142" upper="3.142" velocity="3.15"/>
97
+ <dynamics damping="0.0" friction="0.0"/>
98
+ </joint>
99
+ <link name="left_shoulder_link">
100
+ <visual>
101
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
102
+ <geometry>
103
+ <mesh filename="meshes/ur5/visual/shoulder.glb"/>
104
+ </geometry>
105
+ </visual>
106
+ <collision>
107
+ <geometry>
108
+ <mesh filename="meshes/ur5/collision/shoulder.stl"/>
109
+ </geometry>
110
+ </collision>
111
+ <inertial>
112
+ <mass value="3.7"/>
113
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
114
+ <inertia ixx="0.010267495893" ixy="0.0" ixz="0.0" iyy="0.010267495893" iyz="0.0" izz="0.00666"/>
115
+ </inertial>
116
+ </link>
117
+ <joint name="left_shoulder_lift_joint" type="revolute">
118
+ <parent link="left_shoulder_link"/>
119
+ <child link="left_upper_arm_link"/>
120
+ <origin rpy="0.0 1.5707963267948966 0.0" xyz="0.0 0.13585 0.0"/>
121
+ <axis xyz="0 1 0"/>
122
+ <limit effort="150.0" lower="-3.142" upper="0" velocity="3.15"/>
123
+ <dynamics damping="0.0" friction="0.0"/>
124
+ </joint>
125
+ <link name="left_upper_arm_link">
126
+ <visual>
127
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
128
+ <geometry>
129
+ <mesh filename="meshes/ur5/visual/upperarm.glb"/>
130
+ </geometry>
131
+ </visual>
132
+ <collision>
133
+ <geometry>
134
+ <mesh filename="meshes/ur5/collision/upperarm.stl"/>
135
+ </geometry>
136
+ </collision>
137
+ <inertial>
138
+ <mass value="8.393"/>
139
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.28"/>
140
+ <inertia ixx="0.22689067591036005" ixy="0.0" ixz="0.0" iyy="0.22689067591036005" iyz="0.0" izz="0.0151074"/>
141
+ </inertial>
142
+ </link>
143
+ <joint name="left_elbow_joint" type="revolute">
144
+ <parent link="left_upper_arm_link"/>
145
+ <child link="left_forearm_link"/>
146
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.1197 0.425"/>
147
+ <axis xyz="0 1 0"/>
148
+ <limit effort="150.0" lower="-3.142" upper="3.142" velocity="3.15"/>
149
+ <dynamics damping="0.0" friction="0.0"/>
150
+ </joint>
151
+ <link name="left_forearm_link">
152
+ <visual>
153
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
154
+ <geometry>
155
+ <mesh filename="meshes/ur5/visual/forearm.glb"/>
156
+ </geometry>
157
+ </visual>
158
+ <collision>
159
+ <geometry>
160
+ <mesh filename="meshes/ur5/collision/forearm.stl"/>
161
+ </geometry>
162
+ </collision>
163
+ <inertial>
164
+ <mass value="2.275"/>
165
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.196125"/>
166
+ <inertia ixx="0.03121679102890359" ixy="0.0" ixz="0.0" iyy="0.03121679102890359" iyz="0.0" izz="0.004095"/>
167
+ </inertial>
168
+ </link>
169
+ <joint name="left_wrist_1_joint" type="revolute">
170
+ <parent link="left_forearm_link"/>
171
+ <child link="left_wrist_1_link"/>
172
+ <origin rpy="0.0 1.5707963267948966 0.0" xyz="0.0 0.0 0.39225"/>
173
+ <axis xyz="0 1 0"/>
174
+ <limit effort="100.0" lower="-1.75" upper="1.75" velocity="3.2"/>
175
+ <dynamics damping="0.0" friction="0.0"/>
176
+ </joint>
177
+ <link name="left_wrist_1_link">
178
+ <visual>
179
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
180
+ <geometry>
181
+ <mesh filename="meshes/ur5/visual/wrist1.glb"/>
182
+ </geometry>
183
+ </visual>
184
+ <collision>
185
+ <geometry>
186
+ <mesh filename="meshes/ur5/collision/wrist1.stl"/>
187
+ </geometry>
188
+ </collision>
189
+ <inertial>
190
+ <mass value="1.219"/>
191
+ <origin rpy="0 0 0" xyz="0.0 0.093 0.0"/>
192
+ <inertia ixx="0.0025598989760400002" ixy="0.0" ixz="0.0" iyy="0.0025598989760400002" iyz="0.0" izz="0.0021942"/>
193
+ </inertial>
194
+ </link>
195
+ <joint name="left_wrist_2_joint" type="revolute">
196
+ <parent link="left_wrist_1_link"/>
197
+ <child link="left_wrist_2_link"/>
198
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.093 0.0"/>
199
+ <axis xyz="0 0 1"/>
200
+ <limit effort="100.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="3.2"/>
201
+ <dynamics damping="0.0" friction="0.0"/>
202
+ </joint>
203
+ <link name="left_wrist_2_link">
204
+ <visual>
205
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
206
+ <geometry>
207
+ <mesh filename="meshes/ur5/visual/wrist2.glb"/>
208
+ </geometry>
209
+ </visual>
210
+ <collision>
211
+ <geometry>
212
+ <mesh filename="meshes/ur5/collision/wrist2.stl"/>
213
+ </geometry>
214
+ </collision>
215
+ <inertial>
216
+ <mass value="1.219"/>
217
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.09465"/>
218
+ <inertia ixx="0.0025598989760400002" ixy="0.0" ixz="0.0" iyy="0.0025598989760400002" iyz="0.0" izz="0.0021942"/>
219
+ </inertial>
220
+ </link>
221
+ <joint name="left_wrist_3_joint" type="revolute">
222
+ <parent link="left_wrist_2_link"/>
223
+ <child link="left_wrist_3_link"/>
224
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
225
+ <axis xyz="0 1 0"/>
226
+ <limit effort="100.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="3.2"/>
227
+ <dynamics damping="0.0" friction="0.0"/>
228
+ </joint>
229
+ <link name="left_wrist_3_link">
230
+ <visual>
231
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
232
+ <geometry>
233
+ <mesh filename="meshes/ur5/visual/wrist3.glb"/>
234
+ </geometry>
235
+ </visual>
236
+ <collision>
237
+ <geometry>
238
+ <mesh filename="meshes/ur5/collision/wrist3.stl"/>
239
+ </geometry>
240
+ </collision>
241
+ <inertial>
242
+ <mass value="0.1879"/>
243
+ <origin rpy="1.5707963267948966 0 0" xyz="0.0 0.06505 0.0"/>
244
+ <inertia ixx="8.469589112163e-05" ixy="0.0" ixz="0.0" iyy="8.469589112163e-05" iyz="0.0" izz="0.0001321171875"/>
245
+ </inertial>
246
+ </link>
247
+ <joint name="left_ee_fixed_joint" type="fixed">
248
+ <parent link="left_wrist_3_link"/>
249
+ <child link="left_ee_link"/>
250
+ <origin rpy="0.0 0.0 1.5707963267948966" xyz="0.0 0.0823 0.0"/>
251
+ </joint>
252
+ <link name="left_ee_link">
253
+ <collision>
254
+ <geometry>
255
+ <box size="0.01 0.01 0.01"/>
256
+ </geometry>
257
+ <origin rpy="0 0 0" xyz="-0.01 0 0"/>
258
+ </collision>
259
+ </link>
260
+
261
+ <link name="left_camera_base">
262
+ <visual>
263
+ <origin rpy="0 0 1.57079632679" xyz="0 -0.0 0"/>
264
+ <geometry>
265
+ <mesh filename="meshes/ur5/visual/camera_base_ur5.glb" />
266
+ </geometry>
267
+ </visual>
268
+ </link>
269
+ <joint name="left_hand_to_camera_mount" type="fixed">
270
+ <parent link="wrist_3_link"/>
271
+ <child link="camera_base"/>
272
+ <origin rpy="3.14159265359 1.57079632679 1.57079632679" xyz="0.0 0.08 0"/>
273
+ </joint>
274
+
275
+ <link name="left_camera">
276
+ <visual>
277
+ <origin rpy="3.141592653589793 0 1.5707963267948966" xyz="0.0 0.0 -0.0"/>
278
+ <geometry>
279
+ <mesh filename="meshes/ur5/visual/camera.glb" />
280
+ </geometry>
281
+ </visual>
282
+ </link>
283
+ <joint name="left_camera_joint" type="fixed">
284
+ <parent link="left_camera_base"/>
285
+ <child link="left_camera"/>
286
+ <origin rpy="1.57079632679 1.5707963267948966 -1.57079632679" xyz="-0.052 0.0 -0.025"/>
287
+ </joint>
288
+
289
+ <!-- ROS base_link to UR 'Base' Coordinates transform -->
290
+ <link name="left_base"/>
291
+ <joint name="left_base_link-base_fixed_joint" type="fixed">
292
+ <!-- NOTE: this rotation is only needed as long as base_link itself is
293
+ not corrected wrt the real robot (ie: rotated over 180
294
+ degrees)
295
+ -->
296
+ <origin rpy="0 0 -3.141592653589793" xyz="0 0 0"/>
297
+ <parent link="left_base_link"/>
298
+ <child link="left_base"/>
299
+ </joint>
300
+ <!-- Frame coincident with all-zeros TCP on UR controller -->
301
+ <link name="left_tool0"/>
302
+ <joint name="left_wrist_3_link-tool0_fixed_joint" type="fixed">
303
+ <origin rpy="-1.5707963267948966 0 0" xyz="0 0.0823 0"/>
304
+ <parent link="left_wrist_3_link"/>
305
+ <child link="left_tool0"/>
306
+ </joint>
307
+ <link name="left_world"/>
308
+ <joint name="left_world_joint" type="fixed">
309
+ <parent link="left_world"/>
310
+ <child link="left_base_link"/>
311
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
312
+ </joint>
313
+
314
+
315
+
316
+ <joint name="left_wsg_base_joint" type="fixed">
317
+ <parent link="left_ee_link"/>
318
+ <child link="left_wsg_50_base_link"/>
319
+ <origin rpy="1.5707 0 1.5707" xyz="0 0 0"/>
320
+ </joint>
321
+
322
+
323
+
324
+ <!-- ********************** Start WSG ******************* -->
325
+ <!-- BASE LINK -->
326
+ <link name="left_wsg_50_base_link">
327
+ <inertial>
328
+ <mass value="1.2" />
329
+ <origin xyz="0 0 0" />
330
+ <!--inertia
331
+ ixx="1.0" ixy="0.0" ixz="0.0"
332
+ iyy="100.0" iyz="0.0"
333
+ izz="1.0" /-->
334
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0" />
335
+ </inertial>
336
+
337
+ <visual>
338
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
339
+ <geometry>
340
+ <mesh filename="./meshes/gripper/WSG50_110.stl" scale="1 1 1" />
341
+ </geometry>
342
+ <material name="black">
343
+ <color rgba="0.4 0.4 0.4 1" />
344
+ </material>
345
+ </visual>
346
+
347
+ <collision>
348
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
349
+ <geometry>
350
+ <!--box
351
+ size="0.146 0.05 0.0735"/-->
352
+ <mesh filename="./meshes/gripper/WSG50_110.stl" scale="1 1 1" />
353
+ </geometry>
354
+ </collision>
355
+ </link>
356
+
357
+ <joint name="left_base_joint_gripper_left" type="prismatic">
358
+ <origin xyz="0 0 0" rpy="0 0 0" /> <!--origin
359
+ xyz="-0.0067 0 0.049" rpy="0 0 0" /-->
360
+ <parent link="left_wsg_50_base_link" />
361
+ <child link="left_gripper_left" />
362
+ <dynamics friction="100" damping="100" />
363
+ <axis xyz="1 0 0" />
364
+ <limit effort="100" velocity="100" />
365
+ </joint>
366
+
367
+ <link name="left_gripper_left">
368
+ <inertial>
369
+ <mass value="0.1" />
370
+ <origin xyz="0 0 0" />
371
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
372
+ iyy="1.0" iyz="0.0"
373
+ izz="1.0" />
374
+ </inertial>
375
+
376
+ <visual>
377
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
378
+ <geometry>
379
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl"/>
380
+ </geometry>
381
+ <material name="black1">
382
+ <color rgba="0.4 0.4 0.4 1" />
383
+ </material>
384
+ </visual>
385
+
386
+ <collision>
387
+ <origin xyz="0 0 0" rpy="0 0 0" />
388
+ <geometry>
389
+ <!--box
390
+ size="0.0175 0.03 0.024"/-->
391
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
392
+ </geometry>
393
+ </collision>
394
+ </link>
395
+
396
+ <!-- LEFT FINGER -->
397
+ <joint name="left_guide_joint_finger_left" type="fixed">
398
+ <origin xyz="0 0 0.023" rpy="0 0 0" />
399
+ <parent link="left_gripper_left" />
400
+ <child link="left_finger_left" />
401
+ <dynamics friction="100" damping="100" />
402
+ <axis xyz="1 0 0" />
403
+ <limit effort="100" velocity="100" />
404
+ </joint>
405
+
406
+ <link name="left_finger_left">
407
+ <inertial>
408
+ <mass value="0.1" />
409
+ <origin xyz="0 0 0" />
410
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
411
+ iyy="1.0" iyz="0.0"
412
+ izz="1.0" />
413
+ </inertial>
414
+
415
+ <visual>
416
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
417
+ <geometry>
418
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
419
+ </geometry>
420
+ <material name="black2">
421
+ <color rgba="0.4 0.4 0.4 1" />
422
+ </material>
423
+ </visual>
424
+
425
+ <collision>
426
+ <origin xyz="0 0 0" rpy="0 0 0" />
427
+ <geometry>
428
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
429
+ </geometry>
430
+ </collision>
431
+ </link>
432
+
433
+ <!-- GRIPPER RIGHT -->
434
+ <joint name="left_base_joint_gripper_right" type="prismatic">
435
+ <origin xyz="0 0 0" rpy="0 0 3.14159" />
436
+ <parent link="left_wsg_50_base_link" />
437
+ <child link="left_gripper_right" />
438
+ <axis xyz="-1 0 0" />
439
+ <dynamics friction="100" damping="100" />
440
+ <limit effort="100" velocity="100" />
441
+ </joint>
442
+
443
+ <link name="left_gripper_right">
444
+ <inertial>
445
+ <mass value="0.1" />
446
+ <origin xyz="0 0 0" />
447
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
448
+ iyy="1.0" iyz="0.0"
449
+ izz="1.0" />
450
+ </inertial>
451
+
452
+ <visual>
453
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
454
+ <geometry>
455
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
456
+ </geometry>
457
+ <material name="black">
458
+ <color rgba="0.6 0.6 0.6 1" />
459
+ </material>
460
+ </visual>
461
+
462
+ <collision>
463
+ <origin xyz="0 0 0" rpy="0 0 0" />
464
+ <geometry>
465
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
466
+ </geometry>
467
+ </collision>
468
+ </link>
469
+
470
+ <!-- RIGHT FINGER -->
471
+ <joint name="right_guide_joint_finger_right" type="fixed">
472
+ <origin xyz="0 0 0.023" rpy="0 0 0" />
473
+ <parent link="right_gripper_right" />
474
+ <child link="right_finger_right" />
475
+ <dynamics friction="100" damping="100" />
476
+ <axis xyz="1 0 0" />
477
+ <limit effort="100" velocity="100" />
478
+ </joint>
479
+
480
+ <link name="right_finger_right">
481
+ <inertial>
482
+ <mass value="0.1" />
483
+ <origin xyz="0 0 0" />
484
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
485
+ iyy="1.0" iyz="0.0"
486
+ izz="1.0" />
487
+ </inertial>
488
+
489
+ <visual>
490
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
491
+ <geometry>
492
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
493
+ </geometry>
494
+ <material name="black">
495
+ <color rgba="0.4 0.4 0.4 1" />
496
+ </material>
497
+ </visual>
498
+
499
+ <collision>
500
+ <origin xyz="0 0 0" rpy="0 0 0" />
501
+ <geometry>
502
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
503
+ </geometry>
504
+ </collision>
505
+ </link>
506
+ <!-- ******************* end WSG ********************** -->
507
+
508
+
509
+
510
+ <joint name="right_shoulder_pan_joint" type="revolute">
511
+ <parent link="right_base_link"/>
512
+ <child link="right_shoulder_link"/>
513
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.089159"/>
514
+ <axis xyz="0 0 1"/>
515
+ <limit effort="150.0" lower="-3.142" upper="3.142" velocity="3.15"/>
516
+ <dynamics damping="0.0" friction="0.0"/>
517
+ </joint>
518
+ <link name="right_shoulder_link">
519
+ <visual>
520
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
521
+ <geometry>
522
+ <mesh filename="meshes/ur5/visual/shoulder.glb"/>
523
+ </geometry>
524
+ </visual>
525
+ <collision>
526
+ <geometry>
527
+ <mesh filename="meshes/ur5/collision/shoulder.stl"/>
528
+ </geometry>
529
+ </collision>
530
+ <inertial>
531
+ <mass value="3.7"/>
532
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
533
+ <inertia ixx="0.010267495893" ixy="0.0" ixz="0.0" iyy="0.010267495893" iyz="0.0" izz="0.00666"/>
534
+ </inertial>
535
+ </link>
536
+ <joint name="right_shoulder_lift_joint" type="revolute">
537
+ <parent link="right_shoulder_link"/>
538
+ <child link="right_upper_arm_link"/>
539
+ <origin rpy="0.0 1.5707963267948966 0.0" xyz="0.0 0.13585 0.0"/>
540
+ <axis xyz="0 1 0"/>
541
+ <limit effort="150.0" lower="-3.142" upper="0" velocity="3.15"/>
542
+ <dynamics damping="0.0" friction="0.0"/>
543
+ </joint>
544
+ <link name="right_upper_arm_link">
545
+ <visual>
546
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
547
+ <geometry>
548
+ <mesh filename="meshes/ur5/visual/upperarm.glb"/>
549
+ </geometry>
550
+ </visual>
551
+ <collision>
552
+ <geometry>
553
+ <mesh filename="meshes/ur5/collision/upperarm.stl"/>
554
+ </geometry>
555
+ </collision>
556
+ <inertial>
557
+ <mass value="8.393"/>
558
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.28"/>
559
+ <inertia ixx="0.22689067591036005" ixy="0.0" ixz="0.0" iyy="0.22689067591036005" iyz="0.0" izz="0.0151074"/>
560
+ </inertial>
561
+ </link>
562
+ <joint name="right_elbow_joint" type="revolute">
563
+ <parent link="right_upper_arm_link"/>
564
+ <child link="right_forearm_link"/>
565
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.1197 0.425"/>
566
+ <axis xyz="0 1 0"/>
567
+ <limit effort="150.0" lower="-3.142" upper="3.142" velocity="3.15"/>
568
+ <dynamics damping="0.0" friction="0.0"/>
569
+ </joint>
570
+ <link name="right_forearm_link">
571
+ <visual>
572
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
573
+ <geometry>
574
+ <mesh filename="meshes/ur5/visual/forearm.glb"/>
575
+ </geometry>
576
+ </visual>
577
+ <collision>
578
+ <geometry>
579
+ <mesh filename="meshes/ur5/collision/forearm.stl"/>
580
+ </geometry>
581
+ </collision>
582
+ <inertial>
583
+ <mass value="2.275"/>
584
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.196125"/>
585
+ <inertia ixx="0.03121679102890359" ixy="0.0" ixz="0.0" iyy="0.03121679102890359" iyz="0.0" izz="0.004095"/>
586
+ </inertial>
587
+ </link>
588
+ <joint name="right_wrist_1_joint" type="revolute">
589
+ <parent link="right_forearm_link"/>
590
+ <child link="right_wrist_1_link"/>
591
+ <origin rpy="0.0 1.5707963267948966 0.0" xyz="0.0 0.0 0.39225"/>
592
+ <axis xyz="0 1 0"/>
593
+ <limit effort="100.0" lower="-1.75" upper="1.75" velocity="3.2"/>
594
+ <dynamics damping="0.0" friction="0.0"/>
595
+ </joint>
596
+ <link name="right_wrist_1_link">
597
+ <visual>
598
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
599
+ <geometry>
600
+ <mesh filename="meshes/ur5/visual/wrist1.glb"/>
601
+ </geometry>
602
+ </visual>
603
+ <collision>
604
+ <geometry>
605
+ <mesh filename="meshes/ur5/collision/wrist1.stl"/>
606
+ </geometry>
607
+ </collision>
608
+ <inertial>
609
+ <mass value="1.219"/>
610
+ <origin rpy="0 0 0" xyz="0.0 0.093 0.0"/>
611
+ <inertia ixx="0.0025598989760400002" ixy="0.0" ixz="0.0" iyy="0.0025598989760400002" iyz="0.0" izz="0.0021942"/>
612
+ </inertial>
613
+ </link>
614
+ <joint name="right_wrist_2_joint" type="revolute">
615
+ <parent link="right_wrist_1_link"/>
616
+ <child link="right_wrist_2_link"/>
617
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.093 0.0"/>
618
+ <axis xyz="0 0 1"/>
619
+ <limit effort="100.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="3.2"/>
620
+ <dynamics damping="0.0" friction="0.0"/>
621
+ </joint>
622
+ <link name="right_wrist_2_link">
623
+ <visual>
624
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
625
+ <geometry>
626
+ <mesh filename="meshes/ur5/visual/wrist2.glb"/>
627
+ </geometry>
628
+ </visual>
629
+ <collision>
630
+ <geometry>
631
+ <mesh filename="meshes/ur5/collision/wrist2.stl"/>
632
+ </geometry>
633
+ </collision>
634
+ <inertial>
635
+ <mass value="1.219"/>
636
+ <origin rpy="0 0 0" xyz="0.0 0.0 0.09465"/>
637
+ <inertia ixx="0.0025598989760400002" ixy="0.0" ixz="0.0" iyy="0.0025598989760400002" iyz="0.0" izz="0.0021942"/>
638
+ </inertial>
639
+ </link>
640
+ <joint name="right_wrist_3_joint" type="revolute">
641
+ <parent link="right_wrist_2_link"/>
642
+ <child link="right_wrist_3_link"/>
643
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
644
+ <axis xyz="0 1 0"/>
645
+ <limit effort="100.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="3.2"/>
646
+ <dynamics damping="0.0" friction="0.0"/>
647
+ </joint>
648
+ <link name="right_wrist_3_link">
649
+ <visual>
650
+ <origin xyz="0 0 0" rpy="1.5708 0 0" />
651
+ <geometry>
652
+ <mesh filename="meshes/ur5/visual/wrist3.glb"/>
653
+ </geometry>
654
+ </visual>
655
+ <collision>
656
+ <geometry>
657
+ <mesh filename="meshes/ur5/collision/wrist3.stl"/>
658
+ </geometry>
659
+ </collision>
660
+ <inertial>
661
+ <mass value="0.1879"/>
662
+ <origin rpy="1.5707963267948966 0 0" xyz="0.0 0.06505 0.0"/>
663
+ <inertia ixx="8.469589112163e-05" ixy="0.0" ixz="0.0" iyy="8.469589112163e-05" iyz="0.0" izz="0.0001321171875"/>
664
+ </inertial>
665
+ </link>
666
+ <joint name="right_ee_fixed_joint" type="fixed">
667
+ <parent link="right_wrist_3_link"/>
668
+ <child link="right_ee_link"/>
669
+ <origin rpy="0.0 0.0 1.5707963267948966" xyz="0.0 0.0823 0.0"/>
670
+ </joint>
671
+ <link name="right_ee_link">
672
+ <collision>
673
+ <geometry>
674
+ <box size="0.01 0.01 0.01"/>
675
+ </geometry>
676
+ <origin rpy="0 0 0" xyz="-0.01 0 0"/>
677
+ </collision>
678
+ </link>
679
+
680
+ <link name="right_camera_base">
681
+ <visual>
682
+ <origin rpy="0 0 1.57079632679" xyz="0 -0.0 0"/>
683
+ <geometry>
684
+ <mesh filename="meshes/ur5/visual/camera_base_ur5.glb" />
685
+ </geometry>
686
+ </visual>
687
+ </link>
688
+ <joint name="right_hand_to_camera_mount" type="fixed">
689
+ <parent link="wrist_3_link"/>
690
+ <child link="camera_base"/>
691
+ <origin rpy="3.14159265359 1.57079632679 1.57079632679" xyz="0.0 0.08 0"/>
692
+ </joint>
693
+
694
+ <link name="right_camera">
695
+ <visual>
696
+ <origin rpy="3.141592653589793 0 1.5707963267948966" xyz="0.0 0.0 -0.0"/>
697
+ <geometry>
698
+ <mesh filename="meshes/ur5/visual/camera.glb" />
699
+ </geometry>
700
+ </visual>
701
+ </link>
702
+ <joint name="right_camera_joint" type="fixed">
703
+ <parent link="right_camera_base"/>
704
+ <child link="right_camera"/>
705
+ <origin rpy="1.57079632679 1.5707963267948966 -1.57079632679" xyz="-0.052 0.0 -0.025"/>
706
+ </joint>
707
+
708
+ <!-- ROS base_link to UR 'Base' Coordinates transform -->
709
+ <link name="right_base"/>
710
+ <joint name="right_base_link-base_fixed_joint" type="fixed">
711
+ <!-- NOTE: this rotation is only needed as long as base_link itself is
712
+ not corrected wrt the real robot (ie: rotated over 180
713
+ degrees)
714
+ -->
715
+ <origin rpy="0 0 -3.141592653589793" xyz="0 0 0"/>
716
+ <parent link="right_base_link"/>
717
+ <child link="right_base"/>
718
+ </joint>
719
+ <!-- Frame coincident with all-zeros TCP on UR controller -->
720
+ <link name="right_tool0"/>
721
+ <joint name="right_wrist_3_link-tool0_fixed_joint" type="fixed">
722
+ <origin rpy="-1.5707963267948966 0 0" xyz="0 0.0823 0"/>
723
+ <parent link="right_wrist_3_link"/>
724
+ <child link="right_tool0"/>
725
+ </joint>
726
+ <link name="right_world"/>
727
+ <joint name="right_world_joint" type="fixed">
728
+ <parent link="right_world"/>
729
+ <child link="right_base_link"/>
730
+ <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
731
+ </joint>
732
+
733
+
734
+
735
+ <joint name="right_wsg_base_joint" type="fixed">
736
+ <parent link="right_ee_link"/>
737
+ <child link="right_wsg_50_base_link"/>
738
+ <origin rpy="1.5707 0 1.5707" xyz="0 0 0"/>
739
+ </joint>
740
+
741
+
742
+
743
+ <!-- ********************** Start WSG ******************* -->
744
+ <!-- BASE LINK -->
745
+ <link name="right_wsg_50_base_link">
746
+ <inertial>
747
+ <mass value="1.2" />
748
+ <origin xyz="0 0 0" />
749
+ <!--inertia
750
+ ixx="1.0" ixy="0.0" ixz="0.0"
751
+ iyy="100.0" iyz="0.0"
752
+ izz="1.0" /-->
753
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0" />
754
+ </inertial>
755
+
756
+ <visual>
757
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
758
+ <geometry>
759
+ <mesh filename="./meshes/gripper/WSG50_110.stl" scale="1 1 1" />
760
+ </geometry>
761
+ <material name="black">
762
+ <color rgba="0.4 0.4 0.4 1" />
763
+ </material>
764
+ </visual>
765
+
766
+ <collision>
767
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
768
+ <geometry>
769
+ <!--box
770
+ size="0.146 0.05 0.0735"/-->
771
+ <mesh filename="./meshes/gripper/WSG50_110.stl" scale="1 1 1" />
772
+ </geometry>
773
+ </collision>
774
+ </link>
775
+
776
+ <joint name="right_base_joint_gripper_left" type="prismatic">
777
+ <origin xyz="0 0 0" rpy="0 0 0" /> <!--origin
778
+ xyz="-0.0067 0 0.049" rpy="0 0 0" /-->
779
+ <parent link="right_wsg_50_base_link" />
780
+ <child link="right_gripper_left" />
781
+ <dynamics friction="100" damping="100" />
782
+ <axis xyz="1 0 0" />
783
+ <limit effort="100" velocity="100" />
784
+ </joint>
785
+
786
+ <link name="right_gripper_left">
787
+ <inertial>
788
+ <mass value="0.1" />
789
+ <origin xyz="0 0 0" />
790
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
791
+ iyy="1.0" iyz="0.0"
792
+ izz="1.0" />
793
+ </inertial>
794
+
795
+ <visual>
796
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
797
+ <geometry>
798
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl"/>
799
+ </geometry>
800
+ <material name="black1">
801
+ <color rgba="0.4 0.4 0.4 1" />
802
+ </material>
803
+ </visual>
804
+
805
+ <collision>
806
+ <origin xyz="0 0 0" rpy="0 0 0" />
807
+ <geometry>
808
+ <!--box
809
+ size="0.0175 0.03 0.024"/-->
810
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
811
+ </geometry>
812
+ </collision>
813
+ </link>
814
+
815
+ <!-- LEFT FINGER -->
816
+ <joint name="right_guide_joint_finger_left" type="fixed">
817
+ <origin xyz="0 0 0.023" rpy="0 0 0" />
818
+ <parent link="right_gripper_left" />
819
+ <child link="right_finger_left" />
820
+ <dynamics friction="100" damping="100" />
821
+ <axis xyz="1 0 0" />
822
+ <limit effort="100" velocity="100" />
823
+ </joint>
824
+
825
+ <link name="right_finger_left">
826
+ <inertial>
827
+ <mass value="0.1" />
828
+ <origin xyz="0 0 0" />
829
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
830
+ iyy="1.0" iyz="0.0"
831
+ izz="1.0" />
832
+ </inertial>
833
+
834
+ <visual>
835
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
836
+ <geometry>
837
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
838
+ </geometry>
839
+ <material name="black2">
840
+ <color rgba="0.4 0.4 0.4 1" />
841
+ </material>
842
+ </visual>
843
+
844
+ <collision>
845
+ <origin xyz="0 0 0" rpy="0 0 0" />
846
+ <geometry>
847
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
848
+ </geometry>
849
+ </collision>
850
+ </link>
851
+
852
+ <!-- GRIPPER RIGHT -->
853
+ <joint name="right_base_joint_gripper_right" type="prismatic">
854
+ <origin xyz="0 0 0" rpy="0 0 3.14159" />
855
+ <parent link="right_wsg_50_base_link" />
856
+ <child link="right_gripper_right" />
857
+ <axis xyz="-1 0 0" />
858
+ <dynamics friction="100" damping="100" />
859
+ <limit effort="100" velocity="100" />
860
+ </joint>
861
+
862
+ <link name="right_gripper_right">
863
+ <inertial>
864
+ <mass value="0.1" />
865
+ <origin xyz="0 0 0" />
866
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
867
+ iyy="1.0" iyz="0.0"
868
+ izz="1.0" />
869
+ </inertial>
870
+
871
+ <visual>
872
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
873
+ <geometry>
874
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
875
+ </geometry>
876
+ <material name="black">
877
+ <color rgba="0.6 0.6 0.6 1" />
878
+ </material>
879
+ </visual>
880
+
881
+ <collision>
882
+ <origin xyz="0 0 0" rpy="0 0 0" />
883
+ <geometry>
884
+ <mesh filename="./meshes/gripper/GUIDE_WSG50_110.stl" />
885
+ </geometry>
886
+ </collision>
887
+ </link>
888
+
889
+ <!-- RIGHT FINGER -->
890
+ <joint name="right_guide_joint_finger_right" type="fixed">
891
+ <origin xyz="0 0 0.023" rpy="0 0 0" />
892
+ <parent link="right_gripper_right" />
893
+ <child link="right_finger_right" />
894
+ <dynamics friction="100" damping="100" />
895
+ <axis xyz="1 0 0" />
896
+ <limit effort="100" velocity="100" />
897
+ </joint>
898
+
899
+ <link name="right_finger_right">
900
+ <inertial>
901
+ <mass value="0.1" />
902
+ <origin xyz="0 0 0" />
903
+ <inertia ixx="1.0" ixy="0.0" ixz="0.0"
904
+ iyy="1.0" iyz="0.0"
905
+ izz="1.0" />
906
+ </inertial>
907
+
908
+ <visual>
909
+ <origin xyz="0.0 0 0" rpy="0 0 0" />
910
+ <geometry>
911
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
912
+ </geometry>
913
+ <material name="black">
914
+ <color rgba="0.4 0.4 0.4 1" />
915
+ </material>
916
+ </visual>
917
+
918
+ <collision>
919
+ <origin xyz="0 0 0" rpy="0 0 0" />
920
+ <geometry>
921
+ <mesh filename="./meshes/gripper/WSG-FMF.stl" />
922
+ </geometry>
923
+ </collision>
924
+ </link>
925
+ <!-- ******************* end WSG ********************** -->
926
+ </robot>