support MuJoCo sim2sim;
refactor resource files structure; update readme;
This commit is contained in:
47
README.md
47
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
Train Unitree Go2 with MoE-CTS.
|
||||
Train Unitree Go2 with MoE-CTS and deploy it on MuJoCo.
|
||||
|
||||
This is a reproduction version of [go2_rl_gym](https://github.com/wty-yy/go2_rl_gym) on RobotLab/IsaacLab.
|
||||
|
||||
@@ -11,7 +11,9 @@ This is a reproduction version of [go2_rl_gym](https://github.com/wty-yy/go2_rl_
|
||||
### 1. Install IsaacLab
|
||||
Install Isaac Lab by following the [installation guide](https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html).
|
||||
|
||||
Notice that we use certain version of IsaacLab packages, make sure:
|
||||
Notice that we use certain version of IsaacLab packages, newer versions may cause compatibility issues with `rsl_rl` and `robot_lab`.
|
||||
|
||||
Please make sure to use the following versions or older ones:
|
||||
```
|
||||
isaacsim <= 5.1.0.0 # tested on 5.1.0.0
|
||||
isaaclab <= 0.53.1 # tested on 0.53.1
|
||||
@@ -26,7 +28,13 @@ python -m pip install -e source/robot_lab
|
||||
python -m pip install -e source/rsl_rl
|
||||
```
|
||||
|
||||
## Try examples
|
||||
### 3. Install MuJoCo for Sim2Sim (optional)
|
||||
If you want to use `mujoco` for Sim2Sim, install it by running the following command:
|
||||
```bash
|
||||
pip install mujoco # tested on mujoco 3.4.0 & 3.6.0
|
||||
```
|
||||
|
||||
## Train and Play
|
||||
|
||||
Use the following commands to train and play:
|
||||
|
||||
@@ -57,6 +65,38 @@ python scripts/reinforcement_learning/rsl_rl/play.py --task=RobotLab-Go2-v0
|
||||
```
|
||||
for more usage, see [robot_lab](https://github.com/fan-ziqi/robot_lab.git).
|
||||
|
||||
## MuJoCo Sim2Sim
|
||||
|
||||
Use the following command to run the Sim2Sim with MuJoCo:
|
||||
|
||||
```bash
|
||||
python deploy/deploy_mujoco/deploy_go2.py
|
||||
```
|
||||
|
||||
- **Automatic detection**: When connecting the handle, the script automatically activates the handle control mode.
|
||||
- **Controller not available**: The script will use the default commands in the configuration file.
|
||||
|
||||
Handle axis mapping:
|
||||
|
||||
- `LX/LY`: Forward/Lateral Speed Command
|
||||
- `RX`: Angular velocity (steering) command
|
||||
|
||||
Modify the `xml_path` parameter in `deploy/deploy_mujoco/config/go2.yaml` to switch simulation scenarios:
|
||||
|
||||
```yaml
|
||||
# Flat
|
||||
xml_path: "{ROOT_DIR}/resources/go2/flat.xml"
|
||||
|
||||
# Stairs
|
||||
xml_path: "{ROOT_DIR}/resources/go2/stairs.xml"
|
||||
|
||||
# Boxes
|
||||
xml_path: "{ROOT_DIR}/resources/go2/boxes.xml"
|
||||
|
||||
# Custom
|
||||
xml_path: "{ROOT_DIR}/resource/go2/your-custom-scene.xml"
|
||||
```
|
||||
|
||||
## Differences with `go2_rl_gym`
|
||||
|
||||
- Terrain's composition are different(see code).
|
||||
@@ -68,6 +108,7 @@ This repository would not exist without the following open-source projects:
|
||||
- [isaac_lab](https://github.com/isaac-sim/IsaacLab): Unified framework for robot learning built on NVIDIA Isaac Sim.
|
||||
- [rsl_rl](https://github.com/leggedrobotics/rsl_rl.git): Reinforcement learning algorithms.
|
||||
- [robot_lab](https://github.com/fan-ziqi/robot_lab.git): RL Extension Library for Robots, Based on IsaacLab.
|
||||
- [mujoco](https://github.com/google-deepmind/mujoco.git): High-performance CPU physics simulator.
|
||||
|
||||
Related publications implemented in this repo:
|
||||
- [CTS: Concurrent Teacher-Student Reinforcement Learning for Legged Locomotion](https://arxiv.org/pdf/2405.10830)
|
||||
|
||||
65
deploy/deploy_mujoco/config/go2.yaml
Normal file
65
deploy/deploy_mujoco/config/go2.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
policy_path: "{ROOT_DIR}/deploy/pretrain/go2/wyh/go2_moe_cts_1500.pt"
|
||||
xml_path: "{ROOT_DIR}/resources/go2/stairs.xml"
|
||||
|
||||
# Total simulation time
|
||||
simulation_duration: 60000000.0
|
||||
# Simulation time step
|
||||
simulation_dt: 0.002
|
||||
# Controller update frequency (meets the requirement of simulation_dt * controll_decimation=0.02; 50Hz)
|
||||
control_decimation: 10
|
||||
base_init_pos: [0.0, 0.0, 0.57]
|
||||
base_init_quat: [1.0, 0.0, 0.0, 0.0]
|
||||
|
||||
# For IsaacLab DelayedPDActuatorCfg, if not used, set all delay to 0.
|
||||
actuator_delay_min: 0
|
||||
actuator_delay_max: 0
|
||||
actuator_delay_seed: 0
|
||||
|
||||
kps: [20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0]
|
||||
kds: [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
|
||||
|
||||
default_angles: [0.1, 0.8, -1.5, -0.1, 0.8, -1.5,
|
||||
0.1, 1.0, -1.5, -0.1, 1.0, -1.5]
|
||||
|
||||
lin_vel_scale: 2.0
|
||||
ang_vel_scale: 0.25
|
||||
dof_pos_scale: 1.0
|
||||
dof_vel_scale: 0.05
|
||||
action_pos_scale: 0.25
|
||||
cmd_scale: [1.0, 1.0, 1.0]
|
||||
num_actions: 12
|
||||
num_obs: 45
|
||||
max_cmd: [1.0, 1.0, 1.0]
|
||||
|
||||
cmd_init: [1.0, 0.0, 0.0]
|
||||
history_len: 5
|
||||
|
||||
mujoco_joint_names: [
|
||||
"FL_hip_joint",
|
||||
"FL_thigh_joint",
|
||||
"FL_calf_joint",
|
||||
"FR_hip_joint",
|
||||
"FR_thigh_joint",
|
||||
"FR_calf_joint",
|
||||
"RL_hip_joint",
|
||||
"RL_thigh_joint",
|
||||
"RL_calf_joint",
|
||||
"RR_hip_joint",
|
||||
"RR_thigh_joint",
|
||||
"RR_calf_joint",
|
||||
]
|
||||
|
||||
model_joint_names: [
|
||||
"FL_hip_joint",
|
||||
"FL_thigh_joint",
|
||||
"FL_calf_joint",
|
||||
"FR_hip_joint",
|
||||
"FR_thigh_joint",
|
||||
"FR_calf_joint",
|
||||
"RL_hip_joint",
|
||||
"RL_thigh_joint",
|
||||
"RL_calf_joint",
|
||||
"RR_hip_joint",
|
||||
"RR_thigh_joint",
|
||||
"RR_calf_joint",
|
||||
]
|
||||
379
deploy/deploy_mujoco/deploy_go2.py
Normal file
379
deploy/deploy_mujoco/deploy_go2.py
Normal file
@@ -0,0 +1,379 @@
|
||||
"""CTS Policy deployment for Unitree Go2 in MuJoCo."""
|
||||
|
||||
import time
|
||||
from collections import deque
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import NamedTuple
|
||||
|
||||
import imageio
|
||||
import mujoco
|
||||
import mujoco.viewer
|
||||
import numpy as np
|
||||
import pygame
|
||||
import torch
|
||||
import yaml
|
||||
from argparse import ArgumentParser
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Types & Constants
|
||||
# ============================================================================
|
||||
|
||||
ROOT_DIR = str(Path(__file__).parent.parent.parent)
|
||||
CONFIG_DIR = f"{ROOT_DIR}/deploy/deploy_mujoco/configs"
|
||||
VIDEO_DIR = Path(__file__).parent / "videos"
|
||||
|
||||
class CTSPolicyInputs(NamedTuple):
|
||||
"""Input format for CTS policy."""
|
||||
policy: torch.Tensor
|
||||
single_obs: torch.Tensor
|
||||
|
||||
|
||||
@dataclass
|
||||
class ObsBlockCfg:
|
||||
"""Configuration for observation block."""
|
||||
name: str
|
||||
dim: int # Single frame dimension
|
||||
|
||||
|
||||
ACTUATOR_GROUPS = {
|
||||
"hip": [0, 3, 6, 9],
|
||||
"thigh": [1, 4, 7, 10],
|
||||
"calf": [2, 5, 8, 11],
|
||||
}
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Helper Functions
|
||||
# ============================================================================
|
||||
|
||||
def get_gravity_orientation(quaternion: np.ndarray) -> np.ndarray:
|
||||
"""Compute gravity vector in body frame from quaternion."""
|
||||
qw, qx, qy, qz = quaternion
|
||||
|
||||
gravity = np.zeros(3)
|
||||
gravity[0] = 2 * (-qz * qx + qw * qy)
|
||||
gravity[1] = -2 * (qz * qy + qw * qx)
|
||||
gravity[2] = 1 - 2 * (qw * qw + qz * qz)
|
||||
|
||||
return gravity
|
||||
|
||||
|
||||
def pd_control(target_q: np.ndarray, q: np.ndarray, kp: np.ndarray,
|
||||
target_dq: np.ndarray, dq: np.ndarray, kd: np.ndarray) -> np.ndarray:
|
||||
"""Compute PD control torques."""
|
||||
return (target_q - q) * kp + (target_dq - dq) * kd
|
||||
|
||||
|
||||
def get_joystick_command(joystick, max_cmd: np.ndarray) -> np.ndarray:
|
||||
"""Read command from Xbox controller."""
|
||||
pygame.event.pump()
|
||||
|
||||
dead_zone = 0.1
|
||||
axes = [joystick.get_axis(i) for i in [0, 1, 3]] # LX, LY, RX
|
||||
axes = [0 if abs(a) < dead_zone else a for a in axes]
|
||||
|
||||
cmd = np.array([-axes[1] * max_cmd[0], -axes[0] * max_cmd[1], -axes[2] * max_cmd[2]], dtype=np.float32)
|
||||
return cmd
|
||||
|
||||
|
||||
def load_config(config_file: str) -> dict:
|
||||
"""Load and parse YAML configuration."""
|
||||
with open(f"{CONFIG_DIR}/{config_file}", "r") as f:
|
||||
config = yaml.load(f, Loader=yaml.FullLoader)
|
||||
|
||||
# Replace path placeholders
|
||||
config["policy_path"] = config["policy_path"].replace("{ROOT_DIR}", ROOT_DIR)
|
||||
config["xml_path"] = config["xml_path"].replace("{ROOT_DIR}", ROOT_DIR)
|
||||
|
||||
return config
|
||||
|
||||
|
||||
def build_observation(obs: np.ndarray, features: dict, obs_cfg: list, history_len: int) -> None:
|
||||
"""Update stacked observation buffer with new frame features (in-place)."""
|
||||
ptr = 0
|
||||
for cfg in obs_cfg:
|
||||
dim = cfg.dim
|
||||
start, end = ptr, ptr + dim * history_len
|
||||
|
||||
# Roll history and insert new frame
|
||||
obs[start:end] = np.roll(obs[start:end], shift=-dim, axis=0)
|
||||
obs[end - dim:end] = features[cfg.name]
|
||||
|
||||
ptr = end
|
||||
|
||||
|
||||
def extract_single_obs(obs: np.ndarray, obs_cfg: list, history_len: int) -> np.ndarray:
|
||||
"""Extract most recent single-frame observation from stacked buffer."""
|
||||
single = []
|
||||
ptr = 0
|
||||
for cfg in obs_cfg:
|
||||
dim = cfg.dim
|
||||
block = obs[ptr:ptr + dim * history_len]
|
||||
single.append(block[-dim:]) # Get last dim elements (most recent frame)
|
||||
ptr += dim * history_len
|
||||
return np.concatenate(single, axis=0)
|
||||
|
||||
|
||||
def apply_action(action: np.ndarray, default_angles: np.ndarray,
|
||||
action_pos_scale: float) -> np.ndarray:
|
||||
"""Transform policy action to position targets."""
|
||||
return action * action_pos_scale + default_angles
|
||||
|
||||
|
||||
def set_initial_state(data: mujoco.MjData, base_pos: np.ndarray, base_quat: np.ndarray,
|
||||
joint_pos: np.ndarray) -> None:
|
||||
"""Apply the Isaac-style initial pose before the first mj_forward."""
|
||||
data.qpos[:] = 0.0
|
||||
data.qvel[:] = 0.0
|
||||
data.qpos[:3] = base_pos
|
||||
data.qpos[3:7] = base_quat
|
||||
data.qpos[7:] = joint_pos
|
||||
|
||||
|
||||
def build_delay_buffers(default_pos: np.ndarray, delay_max: int) -> deque:
|
||||
"""Create history buffers for delayed control targets."""
|
||||
history_len = delay_max + 1
|
||||
pos_history = deque((default_pos.copy() for _ in range(history_len)), maxlen=history_len)
|
||||
return pos_history
|
||||
|
||||
|
||||
def sample_delayed_targets(pos_history: deque, delay_min: int,
|
||||
delay_max: int, rng: np.random.Generator) -> np.ndarray:
|
||||
"""Apply per-actuator-group discrete control delays."""
|
||||
delayed_pos = pos_history[-1].copy()
|
||||
|
||||
for joint_ids in ACTUATOR_GROUPS.values():
|
||||
delay_steps = int(rng.integers(delay_min, delay_max + 1)) if delay_max > 0 else 0
|
||||
pos_source = pos_history[-1 - delay_steps]
|
||||
delayed_pos[joint_ids] = pos_source[joint_ids]
|
||||
|
||||
return delayed_pos
|
||||
|
||||
|
||||
def init_joystick() -> tuple:
|
||||
"""Initialize pygame and joystick if available."""
|
||||
pygame.init()
|
||||
|
||||
if pygame.joystick.get_count() > 0:
|
||||
joystick = pygame.joystick.Joystick(0)
|
||||
joystick.init()
|
||||
print(f"Detected Joystick: {joystick.get_name()}")
|
||||
return joystick, True
|
||||
|
||||
print("No Joystick detected. Using default commands from config.")
|
||||
return None, False
|
||||
|
||||
|
||||
def setup_viewer_camera(viewer) -> None:
|
||||
"""Configure tracking camera."""
|
||||
viewer.cam.type = mujoco.mjtCamera.mjCAMERA_TRACKING
|
||||
viewer.cam.trackbodyid = 1
|
||||
viewer.cam.distance = 3.0
|
||||
viewer.cam.elevation = -30.0
|
||||
viewer.cam.azimuth = 0.0
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Main
|
||||
# ============================================================================
|
||||
|
||||
def main():
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument("--save-video", action="store_true", help="Save video of simulation.")
|
||||
args = parser.parse_args()
|
||||
|
||||
# Configuration
|
||||
config_file = "go2.yaml"
|
||||
render_fps = 240
|
||||
|
||||
config = load_config(config_file)
|
||||
|
||||
# Extract config parameters
|
||||
sim_cfg = {
|
||||
"duration": config["simulation_duration"],
|
||||
"dt": config["simulation_dt"],
|
||||
"decimation": config["control_decimation"],
|
||||
}
|
||||
|
||||
# PD controller gains
|
||||
kps = np.array(config["kps"], dtype=np.float32)
|
||||
kds = np.array(config["kds"], dtype=np.float32)
|
||||
default_angles = np.array(config["default_angles"], dtype=np.float32)
|
||||
base_init_pos = np.array(config["base_init_pos"], dtype=np.float32)
|
||||
base_init_quat = np.array(config["base_init_quat"], dtype=np.float32)
|
||||
delay_min = int(config.get("actuator_delay_min", 0))
|
||||
delay_max = int(config.get("actuator_delay_max", 0))
|
||||
delay_seed = int(config.get("actuator_delay_seed", 0))
|
||||
if delay_min < 0 or delay_max < delay_min:
|
||||
raise ValueError(
|
||||
f"Invalid actuator delay range: min={delay_min}, max={delay_max}."
|
||||
)
|
||||
delay_rng = np.random.default_rng(delay_seed)
|
||||
|
||||
# Scaling factors
|
||||
scales = {
|
||||
"lin_vel": config["lin_vel_scale"],
|
||||
"ang_vel": config["ang_vel_scale"],
|
||||
"dof_pos": config["dof_pos_scale"],
|
||||
"dof_vel": config["dof_vel_scale"],
|
||||
"action_pos": config["action_pos_scale"],
|
||||
"cmd": np.array(config["cmd_scale"], dtype=np.float32),
|
||||
}
|
||||
|
||||
# Policy dimensions
|
||||
num_actions = config["num_actions"]
|
||||
num_obs = config["num_obs"]
|
||||
history_len = config.get("history_len", 1)
|
||||
max_cmd = np.array(config["max_cmd"], dtype=np.float32)
|
||||
cmd = np.array(config["cmd_init"], dtype=np.float32)
|
||||
|
||||
# Joint name mapping
|
||||
idx_model2mj = idx_mj2model = list(range(num_actions))
|
||||
if "mujoco_joint_names" in config and "model_joint_names" in config:
|
||||
mj_names = config["mujoco_joint_names"]
|
||||
model_names = config["model_joint_names"]
|
||||
idx_model2mj = [model_names.index(j) for j in mj_names]
|
||||
idx_mj2model = [mj_names.index(j) for j in model_names]
|
||||
|
||||
# Initialize joystick
|
||||
joystick, use_joystick = init_joystick()
|
||||
|
||||
# Prepare video output
|
||||
VIDEO_DIR.mkdir(parents=True, exist_ok=True)
|
||||
model_name = Path(config["policy_path"]).stem
|
||||
cmd_str = f"cmd_{cmd[0]}_{cmd[1]}_{cmd[2]}"
|
||||
|
||||
# Initialize state
|
||||
action = np.zeros(num_actions, dtype=np.float32)
|
||||
target_dof_pos = default_angles.copy()
|
||||
target_dof_vel = np.zeros(num_actions, dtype=np.float32)
|
||||
obs = np.zeros(num_obs * history_len, dtype=np.float32)
|
||||
pos_history = build_delay_buffers(target_dof_pos, delay_max)
|
||||
|
||||
# Build observation config dynamically
|
||||
num_joints = num_actions
|
||||
obs_cfg = [
|
||||
ObsBlockCfg("ang_vel", 3),
|
||||
ObsBlockCfg("gravity", 3),
|
||||
ObsBlockCfg("cmd", 3),
|
||||
ObsBlockCfg("joint_pos", num_joints),
|
||||
ObsBlockCfg("joint_vel", num_actions),
|
||||
ObsBlockCfg("last_action", num_actions),
|
||||
]
|
||||
|
||||
# Load MuJoCo model
|
||||
m = mujoco.MjModel.from_xml_path(config["xml_path"])
|
||||
d = mujoco.MjData(m)
|
||||
m.opt.timestep = sim_cfg["dt"]
|
||||
set_initial_state(d, base_init_pos, base_init_quat, default_angles)
|
||||
mujoco.mj_forward(m, d)
|
||||
|
||||
renderer = mujoco.Renderer(m, height=360, width=640)
|
||||
|
||||
# Load policy
|
||||
policy = torch.jit.load(config["policy_path"])
|
||||
|
||||
# Setup video recording
|
||||
writer = None
|
||||
if args.save_video:
|
||||
video_path = VIDEO_DIR / f"{model_name}_{cmd_str}.mp4"
|
||||
video_fps = 50
|
||||
sim_fps = 1.0 / sim_cfg["dt"]
|
||||
frame_skip = max(1, int(sim_fps / video_fps))
|
||||
writer = imageio.get_writer(video_path, fps=video_fps)
|
||||
print(f"Recording: {video_path} (Sim FPS: {sim_fps:.1f}, Video FPS: {video_fps})")
|
||||
|
||||
render_substeps = int((1.0 / render_fps) / sim_cfg["dt"])
|
||||
|
||||
# Run simulation
|
||||
with mujoco.viewer.launch_passive(m, d) as viewer:
|
||||
setup_viewer_camera(viewer)
|
||||
|
||||
start_time = time.time()
|
||||
counter = 0
|
||||
|
||||
while viewer.is_running() and time.time() - start_time < sim_cfg["duration"]:
|
||||
step_start = time.time()
|
||||
|
||||
# Update command from joystick
|
||||
if use_joystick and counter % sim_cfg["decimation"] == 0:
|
||||
cmd = get_joystick_command(joystick, max_cmd)
|
||||
|
||||
# Compute and apply control
|
||||
tau = pd_control(target_dof_pos, d.qpos[7:], kps, target_dof_vel, d.qvel[6:], kds)
|
||||
d.ctrl[:] = tau
|
||||
|
||||
mujoco.mj_step(m, d)
|
||||
|
||||
# Record frame
|
||||
if writer and counter % frame_skip == 0:
|
||||
try:
|
||||
renderer.update_scene(d, camera=viewer.cam)
|
||||
writer.append_data(renderer.render())
|
||||
except Exception as e:
|
||||
print(f"Render error: {e}")
|
||||
|
||||
counter += 1
|
||||
|
||||
# Policy update at control frequency
|
||||
if counter % sim_cfg["decimation"] == 0:
|
||||
# Extract sensor data
|
||||
qj = d.qpos[7:]
|
||||
dqj = d.qvel[6:]
|
||||
quat = d.qpos[3:7]
|
||||
ang_vel = d.qvel[3:6]
|
||||
|
||||
# Scale observations
|
||||
qj = (qj - default_angles) * scales["dof_pos"]
|
||||
dqj = dqj * scales["dof_vel"]
|
||||
ang_vel = ang_vel * scales["ang_vel"]
|
||||
|
||||
gravity = get_gravity_orientation(quat)
|
||||
|
||||
# Build observation features
|
||||
features = {
|
||||
"ang_vel": ang_vel,
|
||||
"gravity": gravity,
|
||||
"cmd": cmd * scales["cmd"],
|
||||
"joint_pos": qj[idx_mj2model],
|
||||
"joint_vel": dqj[idx_mj2model],
|
||||
"last_action": action[idx_mj2model],
|
||||
}
|
||||
|
||||
# Update stacked observation
|
||||
build_observation(obs, features, obs_cfg, history_len)
|
||||
|
||||
# Extract single-frame observation
|
||||
single_obs = extract_single_obs(obs, obs_cfg, history_len)
|
||||
|
||||
# Run policy
|
||||
obs_tensor = torch.from_numpy(obs).unsqueeze(0)
|
||||
single_tensor = torch.from_numpy(single_obs).unsqueeze(0)
|
||||
|
||||
result = policy(CTSPolicyInputs(policy=obs_tensor, single_obs=single_tensor))
|
||||
action = result.detach().cpu().numpy().squeeze()[idx_model2mj]
|
||||
|
||||
# Apply action
|
||||
latest_target_pos = apply_action(action, default_angles, scales["action_pos"])
|
||||
pos_history.append(latest_target_pos.copy())
|
||||
target_dof_pos = sample_delayed_targets(pos_history, delay_min, delay_max, delay_rng)
|
||||
|
||||
# Sync viewer
|
||||
if counter % render_substeps == 0:
|
||||
viewer.sync()
|
||||
|
||||
# Time management
|
||||
sleep_time = sim_cfg["dt"] - (time.time() - step_start) - 0.1
|
||||
if sleep_time > 0:
|
||||
time.sleep(sleep_time)
|
||||
|
||||
# Cleanup
|
||||
if writer:
|
||||
print(f"Video saved: {video_path}")
|
||||
writer.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
36346
resources/go2/assets/base_0.obj
Normal file
36346
resources/go2/assets/base_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
23131
resources/go2/assets/base_1.obj
Normal file
23131
resources/go2/assets/base_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
8367
resources/go2/assets/base_2.obj
Normal file
8367
resources/go2/assets/base_2.obj
Normal file
File diff suppressed because it is too large
Load Diff
10932
resources/go2/assets/base_3.obj
Normal file
10932
resources/go2/assets/base_3.obj
Normal file
File diff suppressed because it is too large
Load Diff
199205
resources/go2/assets/base_4.obj
Normal file
199205
resources/go2/assets/base_4.obj
Normal file
File diff suppressed because it is too large
Load Diff
24148
resources/go2/assets/calf_0.obj
Normal file
24148
resources/go2/assets/calf_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
9243
resources/go2/assets/calf_1.obj
Normal file
9243
resources/go2/assets/calf_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
24145
resources/go2/assets/calf_mirror_0.obj
Normal file
24145
resources/go2/assets/calf_mirror_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
9252
resources/go2/assets/calf_mirror_1.obj
Normal file
9252
resources/go2/assets/calf_mirror_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
30786
resources/go2/assets/foot.obj
Normal file
30786
resources/go2/assets/foot.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/go2/assets/height_field.png
Normal file
BIN
resources/go2/assets/height_field.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
76960
resources/go2/assets/hip_0.obj
Normal file
76960
resources/go2/assets/hip_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
73961
resources/go2/assets/hip_1.obj
Normal file
73961
resources/go2/assets/hip_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
75706
resources/go2/assets/thigh_0.obj
Normal file
75706
resources/go2/assets/thigh_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
40483
resources/go2/assets/thigh_1.obj
Normal file
40483
resources/go2/assets/thigh_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
75572
resources/go2/assets/thigh_mirror_0.obj
Normal file
75572
resources/go2/assets/thigh_mirror_0.obj
Normal file
File diff suppressed because it is too large
Load Diff
40450
resources/go2/assets/thigh_mirror_1.obj
Normal file
40450
resources/go2/assets/thigh_mirror_1.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/go2/assets/wood.png
Normal file
BIN
resources/go2/assets/wood.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 919 KiB |
696
resources/go2/boxes.xml
Normal file
696
resources/go2/boxes.xml
Normal file
@@ -0,0 +1,696 @@
|
||||
<mujoco model="boxes">
|
||||
<include file="go2.xml" />
|
||||
|
||||
<statistic center="0 0 0.1" extent="0.8" />
|
||||
|
||||
<visual>
|
||||
<headlight diffuse="0.6 0.6 0.6" ambient="0.3 0.3 0.3" specular="0 0 0" />
|
||||
<rgba haze="0.15 0.25 0.35 1" />
|
||||
<global azimuth="-130" elevation="-20" />
|
||||
</visual>
|
||||
|
||||
<asset>
|
||||
<texture type="skybox" builtin="gradient" rgb1="0.3 0.5 0.7" rgb2="0 0 0" width="512" height="3072" />
|
||||
<texture type="2d" name="groundplane" builtin="checker" mark="edge" rgb1="0.2 0.3 0.4" rgb2="0.1 0.2 0.3" markrgb="0.8 0.8 0.8" width="300" height="300" />
|
||||
<material name="groundplane" texture="groundplane" texuniform="true" texrepeat="5 5" reflectance="0.2" />
|
||||
</asset>
|
||||
|
||||
<worldbody>
|
||||
<light pos="0 0 1.5" dir="0 0 -1" directional="true" />
|
||||
<geom name="floor" size="0 0 0.05" type="plane" material="groundplane" />
|
||||
|
||||
<!-- Rough terrain: full coverage with dense bumps -->
|
||||
<geom pos="0.5 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="0.8 -2.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="1.1 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.4 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.7 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.0 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.3 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.6 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="2.9 -2.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="3.2 -2.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="3.5 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.8 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.1 -2.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="4.4 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.7 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.0 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.3 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.6 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.9 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.2 -2.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="6.5 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="7.1 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.4 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.7 -2.0 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="8.0 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.3 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.6 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.9 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.2 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="9.5 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.8 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="10.1 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="10.4 -2.0 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="10.7 -2.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.0 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.3 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.6 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.9 -2.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="12.2 -2.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.5 -2.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.8 -2.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="13.1 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.4 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.0 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.3 -2.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.6 -2.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="0.5 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="0.8 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.1 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.4 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.7 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.0 -1.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.3 -1.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.6 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.9 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.2 -1.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="3.5 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.8 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.1 -1.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="4.4 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.7 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.0 -1.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.3 -1.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.6 -1.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.9 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 -1.7 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="6.5 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.8 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.1 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.4 -1.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="7.7 -1.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="8.0 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.3 -1.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.6 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="8.9 -1.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.2 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.5 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.8 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.1 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="10.4 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.7 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.0 -1.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.3 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.6 -1.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.9 -1.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.2 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.5 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.8 -1.7 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="13.1 -1.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="13.4 -1.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="13.7 -1.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.0 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.3 -1.7 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="14.6 -1.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.5 -1.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="0.8 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="1.1 -1.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="1.4 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="1.7 -1.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="2.0 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.3 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.6 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.9 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.2 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.5 -1.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.8 -1.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.1 -1.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.4 -1.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="4.7 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.0 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.3 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.6 -1.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.2 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.5 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.8 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.1 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.4 -1.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.7 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.0 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.3 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.6 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.9 -1.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="9.2 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.5 -1.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="9.8 -1.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="10.1 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="10.4 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="10.7 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.0 -1.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="11.3 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.6 -1.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="11.9 -1.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.2 -1.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.5 -1.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="12.8 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.1 -1.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.4 -1.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="13.7 -1.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.0 -1.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="14.3 -1.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.6 -1.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="0.5 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.8 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.1 -1.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="1.4 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.7 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="2.0 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.3 -1.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.6 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.9 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="3.2 -1.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.5 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.8 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.1 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.4 -1.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.7 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.0 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.3 -1.1 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="5.6 -1.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.9 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 -1.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.5 -1.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 -1.1 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="7.1 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.4 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="7.7 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.0 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.3 -1.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="8.6 -1.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.9 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.2 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.5 -1.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.8 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="10.1 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="10.4 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.7 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.0 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.3 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.6 -1.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.9 -1.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.2 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.5 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.8 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.1 -1.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.4 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 -1.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.0 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.3 -1.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.6 -1.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="0.5 -0.8 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="0.8 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="1.1 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.4 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="1.7 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.0 -0.8 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="2.3 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.6 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.9 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="3.2 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="3.5 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="3.8 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.1 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.4 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.7 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="5.0 -0.8 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="5.3 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="5.6 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.9 -0.8 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 -0.8 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="6.5 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="6.8 -0.8 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="7.1 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="7.4 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="7.7 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.0 -0.8 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.3 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.6 -0.8 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.9 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="9.2 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="9.5 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="9.8 -0.8 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="10.1 -0.8 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="10.4 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="10.7 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.0 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.3 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.6 -0.8 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="11.9 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.2 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.5 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.8 -0.8 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.1 -0.8 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.4 -0.8 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="13.7 -0.8 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.0 -0.8 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.3 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="14.6 -0.8 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="0.5 -0.5 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.8 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="1.1 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="1.4 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="1.7 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="2.0 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.3 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.6 -0.5 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="2.9 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="3.2 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.5 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.8 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="4.1 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.4 -0.5 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.7 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.0 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.3 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.6 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="6.5 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="7.1 -0.5 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="7.4 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.7 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="8.0 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.3 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.6 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="8.9 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.2 -0.5 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="9.5 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.8 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.1 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="10.4 -0.5 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="10.7 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.0 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.3 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.6 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.9 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="12.2 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.5 -0.5 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.8 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="13.1 -0.5 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="13.4 -0.5 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 -0.5 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.0 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.3 -0.5 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.6 -0.5 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="0.5 -0.2 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.8 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.1 -0.2 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="1.4 -0.2 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.7 -0.2 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.0 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.3 -0.2 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.6 -0.2 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.9 -0.2 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="3.2 -0.2 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="3.5 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.8 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="4.1 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="4.4 -0.2 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.7 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.0 -0.2 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.3 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.6 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.5 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="7.1 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="7.4 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.7 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.0 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.3 -0.2 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.6 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="8.9 -0.2 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.2 -0.2 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="9.5 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="9.8 -0.2 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="10.1 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="10.4 -0.2 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="10.7 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.0 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.3 -0.2 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="11.6 -0.2 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.9 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="12.2 -0.2 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.5 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="12.8 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.1 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.4 -0.2 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.0 -0.2 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.3 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.6 -0.2 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="0.5 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="0.8 0.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="1.1 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.4 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.7 0.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.0 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.3 0.1 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="2.6 0.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="2.9 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.2 0.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="3.5 0.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="3.8 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.1 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.4 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.7 0.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.0 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.3 0.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.6 0.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 0.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="6.2 0.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="6.5 0.1 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="6.8 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.1 0.1 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.4 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="7.7 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.0 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.3 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.6 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.9 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.2 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="9.5 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.8 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="10.1 0.1 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="10.4 0.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="10.7 0.1 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.0 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.3 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.6 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.9 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.2 0.1 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="12.5 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.8 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.1 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.4 0.1 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.7 0.1 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.0 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.3 0.1 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.6 0.1 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.5 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.8 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.1 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.4 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.7 0.4 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.0 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.3 0.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.6 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.9 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.2 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.5 0.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="3.8 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.1 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.4 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.7 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.0 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="5.3 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="5.6 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="6.2 0.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.5 0.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.1 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.4 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.7 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.0 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.3 0.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="8.6 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.9 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.2 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.5 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="9.8 0.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="10.1 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.4 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.7 0.4 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.0 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.3 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.6 0.4 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.9 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.2 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.5 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.8 0.4 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.1 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.4 0.4 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="13.7 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.0 0.4 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.3 0.4 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.6 0.4 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.5 0.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="0.8 0.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="1.1 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="1.4 0.7 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="1.7 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.0 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.3 0.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="2.6 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.9 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="3.2 0.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="3.5 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.8 0.7 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="4.1 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="4.4 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.7 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.0 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.3 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.6 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.9 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.2 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="6.5 0.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="6.8 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.1 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.4 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.7 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.0 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.3 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.6 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="8.9 0.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="9.2 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.5 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="9.8 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.1 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="10.4 0.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="10.7 0.7 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.0 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.3 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.6 0.7 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="11.9 0.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.2 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.5 0.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.8 0.7 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="13.1 0.7 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="13.4 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.7 0.7 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="14.0 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.3 0.7 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="14.6 0.7 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="0.5 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="0.8 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="1.1 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.4 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.7 1.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.0 1.0 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.3 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="2.6 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.9 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.2 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.5 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.8 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.1 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.4 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="4.7 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.0 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.3 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="5.6 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.9 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="6.2 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="6.5 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="6.8 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="7.1 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="7.4 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.7 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="8.0 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.3 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.6 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="8.9 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="9.2 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.5 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="9.8 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.1 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="10.4 1.0 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.7 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.0 1.0 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.3 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.6 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.9 1.0 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="12.2 1.0 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.5 1.0 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.8 1.0 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.1 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.4 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.7 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.0 1.0 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.3 1.0 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="14.6 1.0 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="0.5 1.3 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="0.8 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.1 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.4 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.7 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.0 1.3 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.3 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.6 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.9 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.2 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="3.5 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="3.8 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.1 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="4.4 1.3 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="4.7 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.0 1.3 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="5.3 1.3 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.6 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="5.9 1.3 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="6.2 1.3 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="6.5 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="6.8 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="7.1 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="7.4 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.7 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.0 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.3 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="8.6 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="8.9 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="9.2 1.3 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="9.5 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.8 1.3 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.1 1.3 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.4 1.3 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.7 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.0 1.3 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.3 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.6 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="11.9 1.3 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.2 1.3 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.5 1.3 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.8 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.1 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.4 1.3 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="13.7 1.3 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="14.0 1.3 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="14.3 1.3 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.6 1.3 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="0.5 1.6 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="0.8 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.1 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="1.4 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.7 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="2.0 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.3 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="2.6 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="2.9 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="3.2 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.5 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="3.8 1.6 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="4.1 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="4.4 1.6 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="4.7 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.0 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.3 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="5.6 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="5.9 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="6.2 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.5 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="6.8 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="7.1 1.6 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="7.4 1.6 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="7.7 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.0 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.3 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="8.6 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="8.9 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.2 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="9.5 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.8 1.6 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="10.1 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="10.4 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="10.7 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="11.0 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.3 1.6 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.6 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="11.9 1.6 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="12.2 1.6 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="12.5 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.8 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.1 1.6 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="13.4 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 1.6 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="14.0 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.3 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="14.6 1.6 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="0.5 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="0.8 1.9 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="1.1 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="1.4 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="1.7 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="2.0 1.9 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="2.3 1.9 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="2.6 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="2.9 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="3.2 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.5 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="3.8 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="4.1 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="4.4 1.9 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="4.7 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.0 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="5.3 1.9 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="5.6 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="5.9 1.9 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="6.2 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="6.5 1.9 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="6.8 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="7.1 1.9 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="7.4 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="7.7 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="8.0 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="8.3 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="8.6 1.9 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="8.9 1.9 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="9.2 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="9.5 1.9 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="9.8 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="10.1 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="10.4 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="10.7 1.9 0.03" type="box" size="0.15 0.15 0.03" />
|
||||
<geom pos="11.0 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="11.3 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="11.6 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="11.9 1.9 0.1" type="box" size="0.15 0.15 0.1" />
|
||||
<geom pos="12.2 1.9 0.04" type="box" size="0.15 0.15 0.04" />
|
||||
<geom pos="12.5 1.9 0.08" type="box" size="0.15 0.15 0.08" />
|
||||
<geom pos="12.8 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="13.1 1.9 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
<geom pos="13.4 1.9 0.05" type="box" size="0.15 0.15 0.05" />
|
||||
<geom pos="13.7 1.9 0.07" type="box" size="0.15 0.15 0.07" />
|
||||
<geom pos="14.0 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.3 1.9 0.06" type="box" size="0.15 0.15 0.06" />
|
||||
<geom pos="14.6 1.9 0.09" type="box" size="0.15 0.15 0.09" />
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
22
resources/go2/flat.xml
Normal file
22
resources/go2/flat.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<mujoco model="flat">
|
||||
<include file="go2.xml"/>
|
||||
|
||||
<statistic center="1.0 0.7 1.0" extent="0.8"/>
|
||||
|
||||
<visual>
|
||||
<headlight diffuse="0.6 0.6 0.6" ambient="0.1 0.1 0.1" specular="0.9 0.9 0.9"/>
|
||||
<rgba haze="0.15 0.25 0.35 1"/>
|
||||
<global azimuth="-140" elevation="-20"/>
|
||||
</visual>
|
||||
|
||||
<asset>
|
||||
<texture type="skybox" builtin="flat" rgb1="0 0 0" rgb2="0 0 0" width="512" height="3072"/>
|
||||
<texture type="2d" name="groundplane" builtin="checker" mark="edge" rgb1="0.2 0.3 0.4" rgb2="0.1 0.2 0.3" markrgb="0.8 0.8 0.8" width="300" height="300"/>
|
||||
<material name="groundplane" texture="groundplane" texuniform="true" texrepeat="5 5" reflectance="0.2"/>
|
||||
</asset>
|
||||
|
||||
<worldbody>
|
||||
<light pos="1 0 3.5" dir="0 0 -1" directional="true"/>
|
||||
<geom name="floor" size="0 0 0.05" type="plane" material="groundplane"/>
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
183
resources/go2/go2.xml
Normal file
183
resources/go2/go2.xml
Normal file
@@ -0,0 +1,183 @@
|
||||
<mujoco model="go2_description">
|
||||
|
||||
<compiler angle="radian" meshdir="assets"/>
|
||||
|
||||
<statistic meansize="0.144785" extent="1.23314" center="0.025392 2.0634e-05 -0.245975"/>
|
||||
<default>
|
||||
<joint damping="0.001" armature="0.01" frictionloss="0.1"/>
|
||||
<default class="visual">
|
||||
<geom type="mesh" contype="0" conaffinity="0" group="2"/>
|
||||
</default>
|
||||
</default>
|
||||
|
||||
<asset>
|
||||
<material name="metal" rgba=".9 .95 .95 1" />
|
||||
<material name="black" rgba="0 0 0 1" />
|
||||
<material name="white" rgba="1 1 1 1" />
|
||||
<material name="gray" rgba="0.671705 0.692426 0.774270 1" />
|
||||
|
||||
<mesh file="base_0.obj" />
|
||||
<mesh file="base_1.obj" />
|
||||
<mesh file="base_2.obj" />
|
||||
<mesh file="base_3.obj" />
|
||||
<mesh file="base_4.obj" />
|
||||
<mesh file="hip_0.obj" />
|
||||
<mesh file="hip_1.obj" />
|
||||
<mesh file="thigh_0.obj" />
|
||||
<mesh file="thigh_1.obj" />
|
||||
<mesh file="thigh_mirror_0.obj" />
|
||||
<mesh file="thigh_mirror_1.obj" />
|
||||
<mesh file="calf_0.obj" />
|
||||
<mesh file="calf_1.obj" />
|
||||
<mesh file="calf_mirror_0.obj" />
|
||||
<mesh file="calf_mirror_1.obj" />
|
||||
<mesh file="foot.obj" />
|
||||
</asset>
|
||||
|
||||
|
||||
<worldbody>
|
||||
|
||||
<body name="base" pos="0 0 0.445">
|
||||
<!-- <body name="base" pos="-5 2 0.445"> -->
|
||||
<!-- <body name="base" pos="-5 2 0.30" quat="0 0 0.706 0.706"> -->
|
||||
<!-- <body name="base" pos="-5 2 0.445" quat="0 0 1 0"> -->
|
||||
<!-- <body name="base" pos="0 0 0.16" quat="0 0 0.706 0.706"> -->
|
||||
<!-- <body name="base" pos="0 0 0.1" quat="0 0 1 0"> -->
|
||||
<inertial pos="0.021112 0 -0.005366"
|
||||
mass="6.921"
|
||||
diaginertia="0.02448 0.098077 0.107" />
|
||||
<freejoint name="root"/>
|
||||
<geom mesh="base_0" material="black" class="visual" />
|
||||
<geom mesh="base_1" material="black" class="visual" />
|
||||
<geom mesh="base_2" material="black" class="visual" />
|
||||
<geom mesh="base_3" material="white" class="visual" />
|
||||
<geom mesh="base_4" material="gray" class="visual" />
|
||||
|
||||
<geom name="base_box" type="box" size="0.1881 0.04675 0.057"/>
|
||||
<geom name="base_cyl1" type="cylinder" size="0.05 0.045" pos="0.285 0 0.01"/>
|
||||
<geom name="base_sphere1" type="sphere" size="0.047" pos="0.293 0 -0.06"/>
|
||||
|
||||
<body name="FL_hip" pos="0.1934 0.0465 0">
|
||||
<inertial pos="-0.0054 0.00194 -0.000105" quat="0.497014 0.499245 0.505462 0.498237" mass="0.678" diaginertia="0.00088403 0.000596003 0.000479967"/>
|
||||
<joint name="FL_hip_joint" pos="0 0 0" axis="1 0 0" range="-1.0472 1.0472" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="hip_0" material="metal" class="visual" />
|
||||
<geom mesh="hip_1" material="gray" class="visual" />
|
||||
<geom size="0.046 0.02" pos="0 0.08 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
|
||||
<body name="FL_thigh" pos="0 0.0955 0">
|
||||
<inertial pos="-0.00374 -0.0223 -0.0327" quat="0.829533 0.0847635 -0.0200632 0.551623" mass="1.152" diaginertia="0.00594973 0.00584149 0.000878787"/>
|
||||
<joint name="FL_thigh_joint" pos="0 0 0" axis="0 1 0" range="-1.5708 3.4907" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="thigh_0" material="metal" class="visual" />
|
||||
<geom mesh="thigh_1" material="gray" class="visual" />
|
||||
<geom size="0.055 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="1 1 1 1"/>
|
||||
<body name="FL_calf" pos="0 0 -0.213">
|
||||
<inertial pos="0.00629595 -0.000622121 -0.141417" quat="0.710672 0.00154099 -0.00450087 0.703508" mass="0.241352" diaginertia="0.0014901 0.00146356 5.31397e-05"/>
|
||||
<joint name="FL_calf_joint" pos="0 0 0" axis="0 1 0" range="-2.7227 -0.83776" actuatorfrcrange="-35.55 35.55"/>
|
||||
<geom mesh="calf_0" material="gray" class="visual" />
|
||||
<geom mesh="calf_1" material="black" class="visual" />
|
||||
<geom size="0.012 0.06" pos="0.008 0 -0.06" quat="0.994493 0 -0.104807 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<geom size="0.011 0.0325" pos="0.02 0 -0.148" quat="0.999688 0 0.0249974 0" type="cylinder"/>
|
||||
<geom size="0.0155 0.015" pos="0.00801333 0 -0.18745" quat="0.965093 0 0.261909 0" type="cylinder"/>
|
||||
<geom pos="0 0 -0.213" mesh="foot" class="visual" material="black" />
|
||||
<geom size="0.022" pos="-0.002 0 -0.213" rgba="1 1 1 1"/>
|
||||
</body>
|
||||
</body>
|
||||
</body>
|
||||
<body name="FR_hip" pos="0.1934 -0.0465 0">
|
||||
<inertial pos="-0.0054 -0.00194 -0.000105" quat="0.498237 0.505462 0.499245 0.497014" mass="0.678" diaginertia="0.00088403 0.000596003 0.000479967"/>
|
||||
<joint name="FR_hip_joint" pos="0 0 0" axis="1 0 0" range="-1.0472 1.0472" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="hip_0" material="metal" class="visual" quat="4.63268e-05 1 0 0" />
|
||||
<geom mesh="hip_1" material="gray" class="visual" quat="4.63268e-05 1 0 0" />
|
||||
<geom size="0.046 0.02" pos="0 -0.08 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<body name="FR_thigh" pos="0 -0.0955 0">
|
||||
<inertial pos="-0.00374 0.0223 -0.0327" quat="0.551623 -0.0200632 0.0847635 0.829533" mass="1.152" diaginertia="0.00594973 0.00584149 0.000878787"/>
|
||||
<joint name="FR_thigh_joint" pos="0 0 0" axis="0 1 0" range="-1.5708 3.4907" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="thigh_mirror_0" material="metal" class="visual" />
|
||||
<geom mesh="thigh_mirror_1" material="gray" class="visual" />
|
||||
<geom size="0.055 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="1 1 1 1"/>
|
||||
<body name="FR_calf" pos="0 0 -0.213">
|
||||
<inertial pos="0.00629595 0.000622121 -0.141417" quat="0.703508 -0.00450087 0.00154099 0.710672" mass="0.241352" diaginertia="0.0014901 0.00146356 5.31397e-05"/>
|
||||
<joint name="FR_calf_joint" pos="0 0 0" axis="0 1 0" range="-2.7227 -0.83776" actuatorfrcrange="-35.55 35.55"/>
|
||||
<geom mesh="calf_mirror_0" material="gray" class="visual" />
|
||||
<geom mesh="calf_mirror_1" material="black" class="visual" />
|
||||
<geom size="0.013 0.06" pos="0.01 0 -0.06" quat="0.995004 0 -0.0998334 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<geom size="0.011 0.0325" pos="0.02 0 -0.148" quat="0.999688 0 0.0249974 0" type="cylinder"/>
|
||||
<geom size="0.0155 0.015" pos="0.00801333 0 -0.18745" quat="0.965093 0 0.261909 0" type="cylinder"/>
|
||||
<geom pos="0 0 -0.213" mesh="foot" class="visual" material="black" />
|
||||
<geom size="0.022" pos="-0.002 0 -0.213" rgba="1 1 1 1"/>
|
||||
</body>
|
||||
</body>
|
||||
</body>
|
||||
<body name="RL_hip" pos="-0.1934 0.0465 0">
|
||||
<inertial pos="0.0054 0.00194 -0.000105" quat="0.505462 0.498237 0.497014 0.499245" mass="0.678" diaginertia="0.00088403 0.000596003 0.000479967"/>
|
||||
<joint name="RL_hip_joint" pos="0 0 0" axis="1 0 0" range="-1.0472 1.0472" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="hip_0" material="metal" class="visual" quat="4.63268e-05 0 1 0" />
|
||||
<geom mesh="hip_1" material="gray" class="visual" quat="4.63268e-05 0 1 0" />
|
||||
<geom size="0.046 0.02" pos="0 0.08 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<body name="RL_thigh" pos="0 0.0955 0">
|
||||
<inertial pos="-0.00374 -0.0223 -0.0327" quat="0.829533 0.0847635 -0.0200632 0.551623" mass="1.152" diaginertia="0.00594973 0.00584149 0.000878787"/>
|
||||
<joint name="RL_thigh_joint" pos="0 0 0" axis="0 1 0" range="-0.5236 4.5379" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="thigh_0" material="metal" class="visual" />
|
||||
<geom mesh="thigh_1" material="gray" class="visual" />
|
||||
<geom size="0.055 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="1 1 1 1"/>
|
||||
<body name="RL_calf" pos="0 0 -0.213">
|
||||
<inertial pos="0.00629595 -0.000622121 -0.141417" quat="0.710672 0.00154099 -0.00450087 0.703508" mass="0.241352" diaginertia="0.0014901 0.00146356 5.31397e-05"/>
|
||||
<joint name="RL_calf_joint" pos="0 0 0" axis="0 1 0" range="-2.7227 -0.83776" actuatorfrcrange="-35.55 35.55"/>
|
||||
<geom mesh="calf_0" material="gray" class="visual" />
|
||||
<geom mesh="calf_1" material="black" class="visual" />
|
||||
<geom size="0.013 0.06" pos="0.01 0 -0.06" quat="0.995004 0 -0.0998334 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<geom size="0.011 0.0325" pos="0.02 0 -0.148" quat="0.999688 0 0.0249974 0" type="cylinder"/>
|
||||
<geom size="0.0155 0.015" pos="0.00801333 0 -0.18745" quat="0.965093 0 0.261909 0" type="cylinder"/>
|
||||
<geom pos="0 0 -0.213" mesh="foot" class="visual" material="black" />
|
||||
<geom size="0.022" pos="-0.002 0 -0.213" rgba="1 1 1 1"/>
|
||||
</body>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
<body name="RR_hip" pos="-0.1934 -0.0465 0">
|
||||
<inertial pos="0.0054 -0.00194 -0.000105" quat="0.499245 0.497014 0.498237 0.505462" mass="0.678" diaginertia="0.00088403 0.000596003 0.000479967"/>
|
||||
<joint name="RR_hip_joint" pos="0 0 0" axis="1 0 0" range="-1.0472 1.0472" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="hip_0" material="metal" class="visual"
|
||||
quat="2.14617e-09 4.63268e-05 4.63268e-05 -1" />
|
||||
<geom mesh="hip_1" material="gray" class="visual"
|
||||
quat="2.14617e-09 4.63268e-05 4.63268e-05 -1" />
|
||||
<geom size="0.046 0.02" pos="0 -0.08 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<body name="RR_thigh" pos="0 -0.0955 0">
|
||||
<inertial pos="-0.00374 0.0223 -0.0327" quat="0.551623 -0.0200632 0.0847635 0.829533" mass="1.152" diaginertia="0.00594973 0.00584149 0.000878787"/>
|
||||
<joint name="RR_thigh_joint" pos="0 0 0" axis="0 1 0" range="-0.5236 4.5379" actuatorfrcrange="-23.7 23.7"/>
|
||||
<geom mesh="thigh_mirror_0" material="metal" class="visual" />
|
||||
<geom mesh="thigh_mirror_1" material="gray" class="visual" />
|
||||
<geom size="0.055 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="1 1 1 1"/>
|
||||
<body name="RR_calf" pos="0 0 -0.213">
|
||||
<inertial pos="0.00629595 0.000622121 -0.141417" quat="0.703508 -0.00450087 0.00154099 0.710672" mass="0.241352" diaginertia="0.0014901 0.00146356 5.31397e-05"/>
|
||||
<joint name="RR_calf_joint" pos="0 0 0" axis="0 1 0" range="-2.7227 -0.83776" actuatorfrcrange="-35.55 35.55"/>
|
||||
<geom mesh="calf_mirror_0" material="gray" class="visual" />
|
||||
<geom mesh="calf_mirror_1" material="black" class="visual" />
|
||||
<geom size="0.013 0.06" pos="0.01 0 -0.06" quat="0.995004 0 -0.0998334 0" type="cylinder" rgba="1 1 1 1"/>
|
||||
<geom size="0.011 0.0325" pos="0.02 0 -0.148" quat="0.999688 0 0.0249974 0" type="cylinder"/>
|
||||
<geom size="0.0155 0.015" pos="0.00801333 0 -0.18745" quat="0.965093 0 0.261909 0" type="cylinder"/>
|
||||
<geom pos="0 0 -0.213" mesh="foot" class="visual" material="black" />
|
||||
<geom size="0.022" pos="-0.002 0 -0.213" rgba="1 1 1 1"/>
|
||||
</body>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
</body>
|
||||
</worldbody>
|
||||
|
||||
<actuator>
|
||||
<motor name="FL_hip" joint="FL_hip_joint"/>
|
||||
<motor name="FL_thigh" joint="FL_thigh_joint"/>
|
||||
<motor name="FL_calf" joint="FL_calf_joint"/>
|
||||
<motor name="FR_hip" joint="FR_hip_joint"/>
|
||||
<motor name="FR_thigh" joint="FR_thigh_joint"/>
|
||||
<motor name="FR_calf" joint="FR_calf_joint"/>
|
||||
<motor name="RL_hip" joint="RL_hip_joint"/>
|
||||
<motor name="RL_thigh" joint="RL_thigh_joint"/>
|
||||
<motor name="RL_calf" joint="RL_calf_joint"/>
|
||||
<motor name="RR_hip" joint="RR_hip_joint"/>
|
||||
<motor name="RR_thigh" joint="RR_thigh_joint"/>
|
||||
<motor name="RR_calf" joint="RR_calf_joint"/>
|
||||
</actuator>
|
||||
|
||||
</mujoco>
|
||||
217
resources/go2/meshes/base.dae
Normal file
217
resources/go2/meshes/base.dae
Normal file
File diff suppressed because one or more lines are too long
130
resources/go2/meshes/calf.dae
Normal file
130
resources/go2/meshes/calf.dae
Normal file
File diff suppressed because one or more lines are too long
130
resources/go2/meshes/calf_mirror.dae
Normal file
130
resources/go2/meshes/calf_mirror.dae
Normal file
File diff suppressed because one or more lines are too long
89
resources/go2/meshes/foot.dae
Normal file
89
resources/go2/meshes/foot.dae
Normal file
File diff suppressed because one or more lines are too long
130
resources/go2/meshes/hip.dae
Normal file
130
resources/go2/meshes/hip.dae
Normal file
File diff suppressed because one or more lines are too long
130
resources/go2/meshes/thigh.dae
Normal file
130
resources/go2/meshes/thigh.dae
Normal file
File diff suppressed because one or more lines are too long
130
resources/go2/meshes/thigh_mirror.dae
Normal file
130
resources/go2/meshes/thigh_mirror.dae
Normal file
File diff suppressed because one or more lines are too long
28
resources/go2/stairs.xml
Normal file
28
resources/go2/stairs.xml
Normal file
File diff suppressed because one or more lines are too long
761
resources/go2/urdf/go2.urdf
Normal file
761
resources/go2/urdf/go2.urdf
Normal file
@@ -0,0 +1,761 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<robot name="go2">
|
||||
<link name="base">
|
||||
<inertial>
|
||||
<origin xyz="0.021112 0 -0.005366" rpy="0 0 0" />
|
||||
<mass value="6.921" />
|
||||
<inertia ixx="0.02448" ixy="0.00012166" ixz="0.0014849" iyy="0.098077" iyz="-3.12E-05" izz="0.107" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/base.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_001-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="白色logo_001-effect"><color rgba="1 1 1 1" /></material><material name="黑色贴纸_007-effect"><color rgba="0.009018 0.009018 0.009018 1" /></material><material name="黑色金属_007-effect"><color rgba="0.01341 0.01341 0.01341 1" /></material><material name="黑色塑料_003-effect"><color rgba="0.023455 0.023455 0.023455 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<box size="0.3762 0.0935 0.114" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<link name="Head_upper">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.001" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.05" length="0.09" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="Head_upper_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0.285 0 0.01" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="Head_upper" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="Head_lower">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.001" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<sphere radius="0.047" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="Head_lower_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0.008 0 -0.07" rpy="0 0 0" />
|
||||
<parent link="Head_upper" />
|
||||
<child link="Head_lower" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FL_hip">
|
||||
<inertial>
|
||||
<origin xyz="-0.0054 0.00194 -0.000105" rpy="0 0 0" />
|
||||
<mass value="0.678" />
|
||||
<inertia ixx="0.00048" ixy="-3.01E-06" ixz="1.11E-06" iyy="0.000884" iyz="-1.42E-06" izz="0.000596" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/hip.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_001-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="1.5707963267948966 0 0" xyz="0 0.08 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.04" radius="0.046" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_hip_joint" type="revolute">
|
||||
<origin xyz="0.1934 0.0465 0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="FL_hip" />
|
||||
<axis xyz="1 0 0" />
|
||||
<limit lower="-1.0472" upper="1.0472" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="FL_hip_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000111842" ixy="0.0" ixz="0.0" iyy="0.000059647" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FL_hip_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.11215 0.04675 0" />
|
||||
<parent link="base" />
|
||||
<child link="FL_hip_rotor" />
|
||||
</joint>
|
||||
<link name="FL_thigh">
|
||||
<inertial>
|
||||
<origin xyz="-0.00374 -0.0223 -0.0327" rpy="0 0 0" />
|
||||
<mass value="1.152" />
|
||||
<inertia ixx="0.00584" ixy="8.72E-05" ixz="-0.000289" iyy="0.0058" iyz="0.000808" izz="0.00103" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/thigh.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_003-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material_009-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1065" />
|
||||
<geometry>
|
||||
<box size="0.213 0.0245 0.034" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_thigh_joint" type="revolute">
|
||||
<origin xyz="0 0.0955 0" rpy="0 0 0" />
|
||||
<parent link="FL_hip" />
|
||||
<child link="FL_thigh" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-1.5708" upper="3.4907" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="FL_thigh_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FL_thigh_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 -0.00015 0" />
|
||||
<parent link="FL_hip" />
|
||||
<child link="FL_thigh_rotor" />
|
||||
</joint>
|
||||
<link name="FL_calf">
|
||||
<inertial>
|
||||
<origin xyz="0.00548 -0.000975 -0.115" rpy="0 0 0" />
|
||||
<mass value="0.154" />
|
||||
<inertia ixx="0.00108" ixy="3.4E-07" ixz="1.72E-05" iyy="0.0011" iyz="8.28E-06" izz="3.29E-05" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/calf.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_005-effect"><color rgba="0 0 0 1" /></material><material name="深色橡胶_005-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 -0.21 0" xyz="0.008 0 -0.06" />
|
||||
<geometry>
|
||||
<cylinder length="0.12" radius="0.012" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_calf_joint" type="revolute">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="FL_thigh" />
|
||||
<child link="FL_calf" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-2.7227" upper="-0.83776" effort="45.43" velocity="15.70" />
|
||||
</joint>
|
||||
<link name="FL_calflower">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.065" radius="0.011" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_calflower_joint" type="fixed">
|
||||
<origin xyz="0.020 0 -0.148" rpy="0 0.05 0" />
|
||||
<parent link="FL_calf" />
|
||||
<child link="FL_calflower" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FL_calflower1">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.03" radius="0.0155" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_calflower1_joint" type="fixed">
|
||||
<origin xyz="-0.01 0 -0.04" rpy="0 0.48 0" />
|
||||
<parent link="FL_calflower" />
|
||||
<child link="FL_calflower1" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FL_calf_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FL_calf_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 -0.03235 0" />
|
||||
<parent link="FL_thigh" />
|
||||
<child link="FL_calf_rotor" />
|
||||
</joint>
|
||||
<link name="FL_foot">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.04" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/foot.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_007-effect"><color rgba="0 0 0 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.002 0 0" />
|
||||
<geometry>
|
||||
<sphere radius="0.022" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FL_foot_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="FL_calf" />
|
||||
<child link="FL_foot" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FR_hip">
|
||||
<inertial>
|
||||
<origin xyz="-0.0054 -0.00194 -0.000105" rpy="0 0 0" />
|
||||
<mass value="0.678" />
|
||||
<inertia ixx="0.00048" ixy="3.01E-06" ixz="1.11E-06" iyy="0.000884" iyz="1.42E-06" izz="0.000596" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="3.1415 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/hip.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_001-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="1.5707963267948966 0 0" xyz="0 -0.08 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.04" radius="0.046" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_hip_joint" type="revolute">
|
||||
<origin xyz="0.1934 -0.0465 0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="FR_hip" />
|
||||
<axis xyz="1 0 0" />
|
||||
<limit lower="-1.0472" upper="1.0472" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="FR_hip_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000111842" ixy="0.0" ixz="0.0" iyy="0.000059647" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FR_hip_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.11215 -0.04675 0" />
|
||||
<parent link="base" />
|
||||
<child link="FR_hip_rotor" />
|
||||
</joint>
|
||||
<link name="FR_thigh">
|
||||
<inertial>
|
||||
<origin xyz="-0.00374 0.0223 -0.0327" rpy="0 0 0" />
|
||||
<mass value="1.152" />
|
||||
<inertia ixx="0.00584" ixy="-8.72E-05" ixz="-0.000289" iyy="0.0058" iyz="-0.000808" izz="0.00103" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/thigh_mirror.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_012-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material_011-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1065" />
|
||||
<geometry>
|
||||
<box size="0.213 0.0245 0.034" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_thigh_joint" type="revolute">
|
||||
<origin xyz="0 -0.0955 0" rpy="0 0 0" />
|
||||
<parent link="FR_hip" />
|
||||
<child link="FR_thigh" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-1.5708" upper="3.4907" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="FR_thigh_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FR_thigh_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0.00015 0" />
|
||||
<parent link="FR_hip" />
|
||||
<child link="FR_thigh_rotor" />
|
||||
</joint>
|
||||
<link name="FR_calf">
|
||||
<inertial>
|
||||
<origin xyz="0.00548 0.000975 -0.115" rpy="0 0 0" />
|
||||
<mass value="0.154" />
|
||||
<inertia ixx="0.00108" ixy="-3.4E-07" ixz="1.72E-05" iyy="0.0011" iyz="-8.28E-06" izz="3.29E-05" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/calf_mirror.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_006-effect"><color rgba="0 0 0 1" /></material><material name="深色橡胶_007-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 -0.2 0" xyz="0.01 0 -0.06" />
|
||||
<geometry>
|
||||
<cylinder length="0.12" radius="0.013" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_calf_joint" type="revolute">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="FR_thigh" />
|
||||
<child link="FR_calf" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-2.7227" upper="-0.83776" effort="45.43" velocity="15.70" />
|
||||
</joint>
|
||||
<link name="FR_calflower">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.065" radius="0.011" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_calflower_joint" type="fixed">
|
||||
<origin xyz="0.020 0 -0.148" rpy="0 0.05 0" />
|
||||
<parent link="FR_calf" />
|
||||
<child link="FR_calflower" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FR_calflower1">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.03" radius="0.0155" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_calflower1_joint" type="fixed">
|
||||
<origin xyz="-0.01 0 -0.04" rpy="0 0.48 0" />
|
||||
<parent link="FR_calflower" />
|
||||
<child link="FR_calflower1" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="FR_calf_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="FR_calf_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0.03235 0" />
|
||||
<parent link="FR_thigh" />
|
||||
<child link="FR_calf_rotor" />
|
||||
</joint>
|
||||
<link name="FR_foot">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.04" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/foot.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_007-effect"><color rgba="0 0 0 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.002 0 0" />
|
||||
<geometry>
|
||||
<sphere radius="0.022" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="FR_foot_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="FR_calf" />
|
||||
<child link="FR_foot" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RL_hip">
|
||||
<inertial>
|
||||
<origin xyz="0.0054 0.00194 -0.000105" rpy="0 0 0" />
|
||||
<mass value="0.678" />
|
||||
<inertia ixx="0.00048" ixy="3.01E-06" ixz="-1.11E-06" iyy="0.000884" iyz="-1.42E-06" izz="0.000596" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 3.1415 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/hip.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_001-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="1.5707963267948966 0 0" xyz="0 0.08 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.04" radius="0.046" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_hip_joint" type="revolute">
|
||||
<origin xyz="-0.1934 0.0465 0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="RL_hip" />
|
||||
<axis xyz="1 0 0" />
|
||||
<limit lower="-1.0472" upper="1.0472" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="RL_hip_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000111842" ixy="0.0" ixz="0.0" iyy="0.000059647" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RL_hip_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="-0.11215 0.04675 0" />
|
||||
<parent link="base" />
|
||||
<child link="RL_hip_rotor" />
|
||||
</joint>
|
||||
<link name="RL_thigh">
|
||||
<inertial>
|
||||
<origin xyz="-0.00374 -0.0223 -0.0327" rpy="0 0 0" />
|
||||
<mass value="1.152" />
|
||||
<inertia ixx="0.00584" ixy="8.72E-05" ixz="-0.000289" iyy="0.0058" iyz="0.000808" izz="0.00103" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/thigh.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_003-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material_009-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1065" />
|
||||
<geometry>
|
||||
<box size="0.213 0.0245 0.034" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_thigh_joint" type="revolute">
|
||||
<origin xyz="0 0.0955 0" rpy="0 0 0" />
|
||||
<parent link="RL_hip" />
|
||||
<child link="RL_thigh" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-0.5236" upper="4.5379" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="RL_thigh_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RL_thigh_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 -0.00015 0" />
|
||||
<parent link="RL_hip" />
|
||||
<child link="RL_thigh_rotor" />
|
||||
</joint>
|
||||
<link name="RL_calf">
|
||||
<inertial>
|
||||
<origin xyz="0.00548 -0.000975 -0.115" rpy="0 0 0" />
|
||||
<mass value="0.154" />
|
||||
<inertia ixx="0.00108" ixy="3.4E-07" ixz="1.72E-05" iyy="0.0011" iyz="8.28E-06" izz="3.29E-05" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/calf.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_005-effect"><color rgba="0 0 0 1" /></material><material name="深色橡胶_005-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 -0.2 0" xyz="0.01 0 -0.06" />
|
||||
<geometry>
|
||||
<cylinder length="0.12" radius="0.013" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_calf_joint" type="revolute">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="RL_thigh" />
|
||||
<child link="RL_calf" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-2.7227" upper="-0.83776" effort="45.43" velocity="15.70" />
|
||||
</joint>
|
||||
<link name="RL_calflower">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.065" radius="0.011" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_calflower_joint" type="fixed">
|
||||
<origin xyz="0.020 0 -0.148" rpy="0 0.05 0" />
|
||||
<parent link="RL_calf" />
|
||||
<child link="RL_calflower" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RL_calflower1">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.03" radius="0.0155" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_calflower1_joint" type="fixed">
|
||||
<origin xyz="-0.01 0 -0.04" rpy="0 0.48 0" />
|
||||
<parent link="RL_calflower" />
|
||||
<child link="RL_calflower1" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RL_calf_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RL_calf_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 -0.03235 0" />
|
||||
<parent link="RL_thigh" />
|
||||
<child link="RL_calf_rotor" />
|
||||
</joint>
|
||||
<link name="RL_foot">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.04" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/foot.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_007-effect"><color rgba="0 0 0 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.002 0 0" />
|
||||
<geometry>
|
||||
<sphere radius="0.022" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RL_foot_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="RL_calf" />
|
||||
<child link="RL_foot" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RR_hip">
|
||||
<inertial>
|
||||
<origin xyz="0.0054 -0.00194 -0.000105" rpy="0 0 0" />
|
||||
<mass value="0.678" />
|
||||
<inertia ixx="0.00048" ixy="-3.01E-06" ixz="-1.11E-06" iyy="0.000884" iyz="1.42E-06" izz="0.000596" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="3.1415 3.1415 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/hip.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_001-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="1.5707963267948966 0 0" xyz="0 -0.08 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.04" radius="0.046" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_hip_joint" type="revolute">
|
||||
<origin xyz="-0.1934 -0.0465 0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="RR_hip" />
|
||||
<axis xyz="1 0 0" />
|
||||
<limit lower="-1.0472" upper="1.0472" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="RR_hip_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000111842" ixy="0.0" ixz="0.0" iyy="0.000059647" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RR_hip_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="-0.11215 -0.04675 0" />
|
||||
<parent link="base" />
|
||||
<child link="RR_hip_rotor" />
|
||||
</joint>
|
||||
<link name="RR_thigh">
|
||||
<inertial>
|
||||
<origin xyz="-0.00374 0.0223 -0.0327" rpy="0 0 0" />
|
||||
<mass value="1.152" />
|
||||
<inertia ixx="0.00584" ixy="-8.72E-05" ixz="-0.000289" iyy="0.0058" iyz="-0.000808" izz="0.00103" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/thigh_mirror.dae" />
|
||||
</geometry>
|
||||
<material name="深色橡胶_012-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material><material name="Material_011-effect"><color rgba="0.9 0.95 0.95 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1065" />
|
||||
<geometry>
|
||||
<box size="0.213 0.0245 0.034" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_thigh_joint" type="revolute">
|
||||
<origin xyz="0 -0.0955 0" rpy="0 0 0" />
|
||||
<parent link="RR_hip" />
|
||||
<child link="RR_thigh" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-0.5236" upper="4.5379" effort="23.7" velocity="30.1" />
|
||||
</joint>
|
||||
<link name="RR_thigh_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RR_thigh_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0.00015 0" />
|
||||
<parent link="RR_hip" />
|
||||
<child link="RR_thigh_rotor" />
|
||||
</joint>
|
||||
<link name="RR_calf">
|
||||
<inertial>
|
||||
<origin xyz="0.00548 0.000975 -0.115" rpy="0 0 0" />
|
||||
<mass value="0.154" />
|
||||
<inertia ixx="0.00108" ixy="-3.4E-07" ixz="1.72E-05" iyy="0.0011" iyz="-8.28E-06" izz="3.29E-05" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/calf_mirror.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_006-effect"><color rgba="0 0 0 1" /></material><material name="深色橡胶_007-effect"><color rgba="0.6717055 0.6924257 0.7742702 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 -0.2 0" xyz="0.01 0 -0.06" />
|
||||
<geometry>
|
||||
<cylinder length="0.12" radius="0.013" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_calf_joint" type="revolute">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="RR_thigh" />
|
||||
<child link="RR_calf" />
|
||||
<axis xyz="0 1 0" />
|
||||
<limit lower="-2.7227" upper="-0.83776" effort="45.43" velocity="15.70" />
|
||||
</joint>
|
||||
<link name="RR_calflower">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.065" radius="0.011" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_calflower_joint" type="fixed">
|
||||
<origin xyz="0.020 0 -0.148" rpy="0 0.05 0" />
|
||||
<parent link="RR_calf" />
|
||||
<child link="RR_calflower" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RR_calflower1">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="0.03" radius="0.0155" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_calflower1_joint" type="fixed">
|
||||
<origin xyz="-0.01 0 -0.04" rpy="0 0.48 0" />
|
||||
<parent link="RR_calflower" />
|
||||
<child link="RR_calflower1" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="RR_calf_rotor">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0" />
|
||||
<mass value="0.089" />
|
||||
<inertia ixx="0.000059647" ixy="0.0" ixz="0.0" iyy="0.000111842" iyz="0.0" izz="0.000059647" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="RR_calf_rotor_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0.03235 0" />
|
||||
<parent link="RR_thigh" />
|
||||
<child link="RR_calf_rotor" />
|
||||
</joint>
|
||||
<link name="RR_foot">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.04" />
|
||||
<inertia ixx="9.6e-06" ixy="0" ixz="0" iyy="9.6e-06" iyz="0" izz="9.6e-06" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://go2/meshes/foot.dae" />
|
||||
</geometry>
|
||||
<material name="黑色足端_007-effect"><color rgba="0 0 0 1" /></material></visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.002 0 0" />
|
||||
<geometry>
|
||||
<sphere radius="0.022" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="RR_foot_joint" type="fixed" dont_collapse="true">
|
||||
<origin xyz="0 0 -0.213" rpy="0 0 0" />
|
||||
<parent link="RR_calf" />
|
||||
<child link="RR_foot" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="imu">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0" />
|
||||
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="imu_joint" type="fixed">
|
||||
<origin xyz="-0.02557 0 0.04232" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="imu" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<link name="radar">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0" />
|
||||
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0" />
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="radar_joint" type="fixed">
|
||||
<origin xyz="0.28945 0 -0.046825" rpy="0 2.8782 0" />
|
||||
<parent link="base" />
|
||||
<child link="radar" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
<joint name="front_camera_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.32715 -0.00003 0.04297" />
|
||||
<parent link="base" />
|
||||
<child link="front_camera" />
|
||||
</joint>
|
||||
<link name="front_camera">
|
||||
</link>
|
||||
</robot>
|
||||
@@ -19,7 +19,7 @@ import toml
|
||||
ISAACLAB_ASSETS_EXT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))
|
||||
"""Path to the extension source directory."""
|
||||
|
||||
ISAACLAB_ASSETS_DATA_DIR = os.path.join(ISAACLAB_ASSETS_EXT_DIR, "data")
|
||||
ISAACLAB_ASSETS_DATA_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../../resources"))
|
||||
"""Path to the extension data directory."""
|
||||
|
||||
ISAACLAB_ASSETS_METADATA = toml.load(os.path.join(ISAACLAB_ASSETS_EXT_DIR, "config", "extension.toml"))
|
||||
|
||||
@@ -20,7 +20,7 @@ UNITREE_GO2_CFG = ArticulationCfg(
|
||||
fix_base=False,
|
||||
merge_fixed_joints=True,
|
||||
replace_cylinders_with_capsules=True,
|
||||
asset_path=f"{ISAACLAB_ASSETS_DATA_DIR}/Robots/unitree/go2_description/urdf/go2_description.urdf",
|
||||
asset_path=f"{ISAACLAB_ASSETS_DATA_DIR}/go2/urdf/go2.urdf",
|
||||
activate_contact_sensors=True,
|
||||
rigid_props=sim_utils.RigidBodyPropertiesCfg(
|
||||
disable_gravity=False,
|
||||
|
||||
Reference in New Issue
Block a user