File size: 5,514 Bytes
6d598d2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
{
  "robot": {
    "name": "AdvancedHumanoidBot",
    "type": "humanoid",
    "mass": 75.0,
    "dimensions": {
      "height": 1.8,
      "width": 0.5,
      "depth": 0.3
    },
    "inertia": {
      "ixx": 10.0,
      "iyy": 10.0,
      "izz": 10.0
    },
    "links": [
      {
        "name": "base_link",
        "parent": "world",
        "pose": [0, 0, 0, 0, 0, 0],
        "size": [0.3, 0.3, 0.1],
        "mass": 5.0,
        "collision": true,
        "visual": true
      },
      {
        "name": "left_leg",
        "parent": "base_link",
        "joint": {
          "type": "revolute",
          "axis": [0, 0, 1],
          "limit": [-1.57, 1.57],
          "damping": 0.1,
          "friction": 0.01
        },
        "size": [0.05, 0.4, 0.05],
        "mass": 3.0
      },
      {
        "name": "right_leg",
        "parent": "base_link",
        "joint": {
          "type": "revolute",
          "axis": [0, 0, 1],
          "limit": [-1.57, 1.57],
          "damping": 0.1,
          "friction": 0.01
        },
        "size": [0.05, 0.4, 0.05],
        "mass": 3.0
      },
      {
        "name": "left_arm",
        "parent": "base_link",
        "joint": {
          "type": "revolute",
          "axis": [1, 0, 0],
          "limit": [-2.0, 2.0]
        },
        "size": [0.05, 0.6, 0.05],
        "mass": 2.0,
        "manipulator": true
      },
      {
        "name": "right_arm",
        "parent": "base_link",
        "joint": {
          "type": "revolute",
          "axis": [1, 0, 0],
          "limit": [-2.0, 2.0]
        },
        "size": [0.05, 0.6, 0.05],
        "mass": 2.0,
        "end_effector": {
          "gripper": {
            "max_force": 50.0,
            "range": 0.1
          }
        }
      },
      {
        "name": "head",
        "parent": "base_link",
        "joint": {
          "type": "spherical",
          "limit": [0.5, 0.5, 1.57]
        },
        "size": [0.2, 0.2, 0.25],
        "mass": 1.5
      }
    ],
    "dof": 28
  },
  "sensors": [
    {
      "name": "lidar_top",
      "type": "lidar",
      "parent": "head",
      "pose": [0, 0, 0.2, 0, 0, 0],
      "range": [0.1, 50.0],
      "resolution": 0.01,
      "fov": 360.0,
      "layers": 32,
      "update_rate": 10.0,
      "noise": 0.01
    },
    {
      "name": "rgb_camera",
      "type": "camera",
      "parent": "head",
      "pose": [0, 0.1, 0.15, 0, 0, 0],
      "resolution": [640, 480],
      "fov": 90.0,
      "update_rate": 30.0,
      "depth": true,
      "topics": ["/camera/rgb/image_raw", "/camera/depth/image_raw"]
    },
    {
      "name": "imu",
      "type": "imu",
      "parent": "base_link",
      "noise_gyro": 0.01,
      "noise_accel": 0.01,
      "update_rate": 100.0
    },
    {
      "name": "force_torque_left",
      "type": "force_torque",
      "parent": "left_arm",
      "update_rate": 100.0
    },
    {
      "name": "gps",
      "type": "gps",
      "parent": "base_link",
      "accuracy": 0.1,
      "update_rate": 10.0
    },
    {
      "name": "microphone_array",
      "type": "microphone",
      "parent": "head",
      "channels": 8,
      "sample_rate": 16000
    },
    {
      "name": "touch_sensors",
      "type": "tactile",
      "parent": "right_arm",
      "resolution": 100,
      "sensitivity": 1.0
    }
  ],
  "actuators": [
    {
      "name": "left_hip_motor",
      "parent": "left_leg",
      "type": "dc_motor",
      "max_torque": 100.0,
      "max_velocity": 10.0,
      "pid": {
        "p": 100.0,
        "i": 1.0,
        "d": 10.0
      }
    },
    {
      "name": "right_knee_servo",
      "parent": "right_leg",
      "type": "servo",
      "max_torque": 50.0,
      "range": [-90, 90],
      "pid": { "p": 200.0, "i": 2.0, "d": 20.0 }
    },
    {
      "name": "gripper_motor",
      "parent": "right_arm",
      "type": "servo",
      "max_force": 30.0
    }
  ],
  "control": {
    "joint_controllers": "effort",
    "gait_generator": {
      "type": "cpg",
      "frequency": 1.0,
      "amplitude": 0.5
    },
    "trajectory_planner": {
      "type": "moveit",
      "planning_time": 0.5
    },
    "stabilization": {
      "type": "mpc",
      "horizon": 20
    },
    "safety_limits": {
      "velocity_max": 2.0,
      "collision_avoidance": true
    }
  },
  "navigation": {
    "planner": {
      "type": "dwa",
      "goal_tolerance": 0.1,
      "max_vel": 1.5
    },
    "localization": {
      "type": "ekf",
      "use_odom": true,
      "use_imu": true,
      "use_gps": true
    },
    "map": {
      "resolution": 0.05,
      "size": [100, 100]
    },
    "fleet_mode": true,
    "formation": "leader_follower"
  },
  "ai": {
    "perception": {
      "object_detector": {
        "model": "yolov8",
        "classes": ["person", "object", "obstacle"]
      },
      "slam": {
        "type": "orb_slam3"
      }
    },
    "planning": {
      "type": "rl",
      "model_path": "ppo_humanoid.pt"
    },
    "nlp": {
      "model": "whisper",
      "intent_classifier": "bert"
    },
    "compute": {
      "gpu": true,
      "batch_size": 1
    }
  },
  "world": {
    "gravity": [0, 0, -9.81],
    "timestep": 0.001,
    "real_time_factor": 1.0,
    "terrain": {
      "type": "rough",
      "friction": 0.8
    },
    "obstacles": [
      {
        "type": "box",
        "pose": [2, 0, 0.5, 0, 0, 0],
        "size": [1, 1, 1]
      }
    ]
  },
  "simulation": {
    "engine": "gazebo",
    "plugins": ["gazebo_ros_pkgs"],
    "record": true,
    "visualize": true
  }
}